{"version":3,"sources":["webpack:///./src/views/pages/financeiro/contrato/VisualizarContrato.vue?5d1d","webpack:///src/views/pages/financeiro/contrato/VisualizarContrato.vue","webpack:///./src/views/pages/financeiro/contrato/VisualizarContrato.vue?d6fd","webpack:///./src/views/pages/financeiro/contrato/VisualizarContrato.vue","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/acos.js","webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/equalText.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/arithmetic.js","webpack:///./node_modules/core-js/modules/es.string.trim-left.js","webpack:///./node_modules/lodash.isboolean/index.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/compareUnits.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFObject.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/typeOf.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/mathjs/lib/esm/error/DimensionError.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/unaryPlus.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/bitwise.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/fp-ts/es6/Filterable.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/pako/lib/zlib/trees.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/polynomialRoot.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/fp-ts/es6/internal.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/mathjs/lib/esm/function/logical/not.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/mathjs/lib/esm/function/string/hex.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/equal.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/getMatrixDataType.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/expm1.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./node_modules/jws/lib/tostring.js","webpack:///./node_modules/core-js/modules/web.dom-exception.constructor.js","webpack:///./node_modules/jsonwebtoken/verify.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./src/@core/components/banco/Banco.vue?8f1d","webpack:///./node_modules/fp-ts/es6/Option.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/mathjs/lib/esm/function/bitwise/useMatrixForArrayScalar.js","webpack:///./node_modules/seedrandom/lib/alea.js","webpack:///./node_modules/fp-ts/es6/Functor.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/multinomial.js","webpack:///./node_modules/mathjs/lib/esm/type/fraction/Fraction.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/round.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/matrixFromRows.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/function/matrix.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/jsonwebtoken/index.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./src/assets/images/logo/Novos/logoCliente.png","webpack:///./node_modules/mathjs/lib/esm/function/utils/hasNumericValue.js","webpack:///./node_modules/mathjs/lib/esm/utils/customs.js","webpack:///./node_modules/jws/lib/verify-stream.js","webpack:///./node_modules/mathjs/lib/esm/function/bitwise/rightLogShift.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/divide.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/identity.js","webpack:///./node_modules/fp-ts/es6/Ord.js","webpack:///./node_modules/mathjs/lib/esm/function/complex/im.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/decomposition/qr.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/reshape.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/xgcd.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/log10.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/acoth.js","webpack:///./node_modules/core-js/modules/es.string.trim-end.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/atanh.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/eigs/complexEigs.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/eigs/realSymetric.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/eigs.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/permutations.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/floor.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./node_modules/pbkdf2/lib/async.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/sin.js","webpack:///./node_modules/core-js/modules/es.typed-array.from.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/column.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/acot.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/factorial.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/utils.js","webpack:///./node_modules/mathjs/lib/esm/function/bitwise/bitAnd.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/solver/usolveAll.js","webpack:///./node_modules/jsonwebtoken/sign.js","webpack:///./node_modules/mathjs/lib/esm/utils/print.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/dot.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/vue-autosuggest/dist/vue-autosuggest.esm.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/jsonwebtoken/lib/JsonWebTokenError.js","webpack:///./node_modules/mathjs/lib/esm/function/bitwise/leftShift.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/probability.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/transpose.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/sinh.js","webpack:///./node_modules/parse-asn1/index.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/largerEq.js","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/combinationsWithRep.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/tan.js","webpack:///./node_modules/pako/lib/zlib/constants.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/subset.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sylvester.js","webpack:///./node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js","webpack:///./node_modules/vue-form-wizard/dist/vue-form-wizard.js","webpack:///./node_modules/mathjs/lib/esm/type/unit/function/createUnit.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/mathjs/lib/esm/error/ArgumentsError.js","webpack:///./node_modules/fp-ts/es6/Applicative.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/mean.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo04xSidSid.js","webpack:///./node_modules/jws/index.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/csc.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/dotMultiply.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/addScalar.js","webpack:///./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/ifft.js","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./node_modules/mathjs/lib/esm/function/bitwise/bitXor.js","webpack:///./node_modules/jsonwebtoken/decode.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/solver/lsolve.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo03xDSf.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/fp-ts/lib/function.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setSize.js","webpack:///./src/views/pages/propostaExterna/components/gerarPropostaExterna.vue?9f0a","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo02xDS0.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/mathjs/lib/esm/core/function/typed.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/SparseMatrix.js","webpack:///./node_modules/mathjs/lib/esm/utils/noop.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo10xSids.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csIpvec.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/solver/lusolve.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/pako/lib/deflate.js","webpack:///./node_modules/decimal.js/decimal.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/coth.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/asn1.js/lib/asn1/base/index.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/tanh.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/mathjs/lib/esm/entry/configReadonly.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/unaryMinus.js","webpack:///./node_modules/mathjs/lib/esm/utils/bignumber/constants.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/mathjs/lib/esm/type/complex/function/complex.js","webpack:///./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack:///./node_modules/@babel/runtime/helpers/esm/get.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/solver/lsolveAll.js","webpack:///./node_modules/mathjs/lib/esm/function/combinatorics/bellNumbers.js","webpack:///./node_modules/fp-ts/es6/function.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/trace.js","webpack:///./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/deepEqual.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/mathjs/lib/esm/type/unit/physicalConstants.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo01xDSid.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/diff.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/Range.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo06xS0S0.js","webpack:///./node_modules/heic2any/dist/heic2any.js","webpack:///./node_modules/core-js/modules/es.string.sub.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/sqrt.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/pow.js","webpack:///./node_modules/lodash.isinteger/index.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/add.js","webpack:///./node_modules/pako/lib/zlib/messages.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/trigUnit.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/ctranspose.js","webpack:///./node_modules/core-js/internals/object-is-extensible.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/compare.js","webpack:///./node_modules/mathjs/lib/esm/function/string/oct.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/random.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/larger.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo09xS0Sf.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isNaN.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/ones.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFHexString.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/divideScalar.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/mathjs/lib/esm/function/complex/conj.js","webpack:///./src/views/pages/propostaExterna/propostaExterna.vue?324d","webpack:///./node_modules/mathjs/lib/esm/utils/complex.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/equalScalar.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/row.js","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/min.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/corr.js","webpack:///./node_modules/core-js/modules/es.reflect.get.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/forEach.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/mathjs/lib/esm/function/string/format.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/subtract.js","webpack:///./node_modules/mathjs/lib/esm/utils/number.js","webpack:///./node_modules/mathjs/lib/esm/function/geometry/intersect.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/matrixFromFunction.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isZero.js","webpack:///./src/views/pages/propostaExterna/propostaExterna.vue?250e","webpack:///./src/views/pages/propostaExterna/components/gerarPropostaExterna.vue?5d09","webpack:///src/views/pages/propostaExterna/components/gerarPropostaExterna.vue","webpack:///./src/views/pages/propostaExterna/components/gerarPropostaExterna.vue?8af6","webpack:///./src/views/pages/propostaExterna/components/gerarPropostaExterna.vue","webpack:///./src/views/components/reconhecimentoFacial/documentosObrigatorios.vue?1485","webpack:///./src/views/components/reconhecimentoFacial/utils/reconhecimentoFacialAnexos.ts","webpack:///./src/views/components/reconhecimentoFacial/utils/readBase64.ts","webpack:///./src/views/components/reconhecimentoFacial/utils/convert-imagem/convert-jpeg.ts","webpack:///./src/views/components/reconhecimentoFacial/utils/compact-itens/compact-Imagem.ts","webpack:///./src/views/components/reconhecimentoFacial/utils/compact-itens/compact-PDF.ts","webpack:///./src/@core/mixins/ui/transition.js","webpack:///./src/views/components/reconhecimentoFacial/utils/getMediaError.ts","webpack:///src/views/components/reconhecimentoFacial/documentosObrigatorios.vue","webpack:///./src/views/components/reconhecimentoFacial/documentosObrigatorios.vue?2fa2","webpack:///./src/views/components/reconhecimentoFacial/documentosObrigatorios.vue","webpack:///./src/views/components/reconhecimentoFacial/selfie.vue?73ec","webpack:///src/views/components/reconhecimentoFacial/selfie.vue","webpack:///./src/views/components/reconhecimentoFacial/selfie.vue?012e","webpack:///./src/views/components/reconhecimentoFacial/selfie.vue","webpack:///./src/views/pages/propostaExterna/components/ListaDePropostas.vue?3c21","webpack:///src/views/pages/propostaExterna/components/ListaDePropostas.vue","webpack:///./src/views/pages/propostaExterna/components/ListaDePropostas.vue?2827","webpack:///./src/views/pages/propostaExterna/components/ListaDePropostas.vue","webpack:///./src/views/components/modalDetectaRosto.vue?52a5","webpack:///./src/config/api/base.ts","webpack:///./src/config/api/common.ts","webpack:///./src/config/api/clients/aws-api.ts","webpack:///./src/config/api/configuration.ts","webpack:///./src/config/api/fetcher.ts","webpack:///./src/views/components/compare-faces/CompareFaces.ts","webpack:///src/views/components/modalDetectaRosto.vue","webpack:///./src/views/components/modalDetectaRosto.vue?e66c","webpack:///./src/views/components/modalDetectaRosto.vue","webpack:///src/views/pages/propostaExterna/propostaExterna.vue","webpack:///./src/views/pages/propostaExterna/propostaExterna.vue?c8c3","webpack:///./src/views/pages/propostaExterna/propostaExterna.vue","webpack:///./node_modules/seedrandom/index.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/count.js","webpack:///./node_modules/fp-ts/es6/Eq.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setIntersect.js","webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///./node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setSymDifference.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/decomposition/schur.js","webpack:///./node_modules/mathjs/lib/esm/type/unit/Unit.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/clone.js","webpack:///./node_modules/core-js/internals/string-trim-start.js","webpack:///./node_modules/lodash.isnumber/index.js","webpack:///./node_modules/pako/lib/zlib/inftrees.js","webpack:///./node_modules/mathjs/lib/esm/type/resultset/ResultSet.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/cbrt.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/gamma.js","webpack:///./node_modules/jws/lib/sign-stream.js","webpack:///./node_modules/core-js/modules/es.global-this.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/cos.js","webpack:///./node_modules/pdf-lib/es/api/rotations.js","webpack:///./node_modules/pdf-lib/es/api/objects.js","webpack:///./node_modules/pdf-lib/es/api/operators.js","webpack:///./node_modules/pdf-lib/es/api/colors.js","webpack:///./node_modules/pdf-lib/es/api/text/alignment.js","webpack:///./node_modules/pdf-lib/es/api/svgPath.js","webpack:///./node_modules/pdf-lib/es/api/operations.js","webpack:///./node_modules/pdf-lib/es/api/errors.js","webpack:///./node_modules/pdf-lib/es/api/text/layout.js","webpack:///./node_modules/pdf-lib/es/api/image/alignment.js","webpack:///./node_modules/pdf-lib/es/api/form/appearances.js","webpack:///./node_modules/pdf-lib/es/api/PDFEmbeddedPage.js","webpack:///./node_modules/pdf-lib/es/api/PDFFont.js","webpack:///./node_modules/pdf-lib/es/api/PDFImage.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFField.js","webpack:///./node_modules/pdf-lib/es/api/StandardFonts.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFCheckBox.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFDropdown.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFOptionList.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFRadioGroup.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFSignature.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFTextField.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFForm.js","webpack:///./node_modules/pdf-lib/es/api/PDFDocumentOptions.js","webpack:///./node_modules/pdf-lib/es/api/sizes.js","webpack:///./node_modules/pdf-lib/es/api/PDFPageOptions.js","webpack:///./node_modules/pdf-lib/es/api/PDFEmbeddedFile.js","webpack:///./node_modules/pdf-lib/es/api/PDFJavaScript.js","webpack:///./node_modules/pdf-lib/es/core/embedders/JavaScriptEmbedder.js","webpack:///./node_modules/pdf-lib/es/api/PDFDocument.js","webpack:///./node_modules/pdf-lib/es/api/PDFPage.js","webpack:///./node_modules/pdf-lib/es/api/form/PDFButton.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/quantileSeq.js","webpack:///./node_modules/jsonwebtoken/lib/TokenExpiredError.js","webpack:///./node_modules/mathjs/lib/esm/function/bitwise/bitOr.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/mathjs/lib/esm/utils/product.js","webpack:///./node_modules/core-js/modules/es.map.constructor.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/sqrtm.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/inv.js","webpack:///./node_modules/pako/lib/inflate.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/randomfill/browser.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/fp-ts/es6/Predicate.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/det.js","webpack:///./node_modules/mathjs/lib/esm/utils/bignumber/nearlyEqual.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/compareText.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/compareNatural.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/mathjs/lib/esm/entry/pureFunctionsAny.generated.js","webpack:///./node_modules/mathjs/lib/esm/function/combinatorics/composition.js","webpack:///./node_modules/jwa/index.js","webpack:///./node_modules/miller-rabin/lib/mr.js","webpack:///./node_modules/seedrandom/lib/xor4096.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/ImmutableDenseMatrix.js","webpack:///./node_modules/pako/lib/utils/strings.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/asech.js","webpack:///./node_modules/core-js/internals/try-node-require.js","webpack:///./node_modules/pbkdf2/lib/precondition.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/max.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/concat.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/log2.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/pako/lib/zlib/inffast.js","webpack:///./node_modules/image-compressor/dist/image-compressor.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/asinh.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/subtractScalar.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/acsc.js","webpack:///./node_modules/asn1.js/lib/asn1.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFString.js","webpack:///./node_modules/pako/lib/zlib/gzheader.js","webpack:///./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-js/modules/web.atob.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/atan.js","webpack:///./node_modules/asn1.js/lib/asn1/base/node.js","webpack:///./node_modules/fp-ts/es6/ChainRec.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setUnion.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/mathjs/lib/esm/function/combinatorics/catalan.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/partitionSelect.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/DenseMatrix.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/exp.js","webpack:///./node_modules/lottie-web-vue/dist/lottie-web-vue.esm.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/mathjs/lib/esm/function/geometry/distance.js","webpack:///./node_modules/mathjs/lib/esm/type/boolean.js","webpack:///./node_modules/pako/lib/zlib/zstream.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/seedrandom/lib/tychei.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/unequal.js","webpack:///./node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack:///./node_modules/pbkdf2/lib/to-buffer.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/smaller.js","webpack:///./node_modules/fp-ts/es6/FromEither.js","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/mathjs/lib/esm/utils/object.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///./node_modules/mathjs/lib/esm/utils/switch.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/matrixFromColumns.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/csch.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/resize.js","webpack:///./node_modules/pdf-lib/es/core/errors.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/typed-function/lib/umd/typed-function.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/combinations.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/combinations.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo12xSfs.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/lottie-web/build/player/lottie.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/prod.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/fp-ts/es6/Witherable.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/fp-ts/es6/Separated.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/mathjs/lib/esm/error/IndexError.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/lyap.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/smallerEq.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/kron.js","webpack:///./node_modules/pdf-lib/es/utils/unicode.js","webpack:///./node_modules/fp-ts/es6/Apply.js","webpack:///./node_modules/@pdf-lib/standard-fonts/es/utils.js","webpack:///./node_modules/@pdf-lib/standard-fonts/es/Font.js","webpack:///./node_modules/@pdf-lib/standard-fonts/es/Encoding.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/mod.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/lodash.isstring/index.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/trigonometry.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/kldivergence.js","webpack:///./node_modules/lodash.includes/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/pako/lib/zlib/inflate.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/mode.js","webpack:///./node_modules/pbkdf2/lib/default-encoding.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isPositive.js","webpack:///./node_modules/pbkdf2/browser.js","webpack:///./node_modules/pako/lib/zlib/deflate.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/Matrix.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/cumsum.js","webpack:///./node_modules/jws/lib/data-stream.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/invmod.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/sign.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/numeric.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/sec.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isPrime.js","webpack:///./node_modules/fp-ts/es6/Either.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/mathjs/lib/esm/utils/is.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/function/sparse.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/randomInt.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/seedrandom/seedrandom.js","webpack:///./node_modules/seedrandom/lib/xorwow.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/mathjs/lib/esm/core/config.js","webpack:///./node_modules/mathjs/lib/esm/core/function/config.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo11xS0s.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/cross.js","webpack:///./node_modules/pdf-lib/es/core/embedders/FileEmbedder.js","webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/multiply.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/fp-ts/es6/Task.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/Spa.js","webpack:///./node_modules/core-js/internals/error-to-string.js","webpack:///./node_modules/mathjs/lib/esm/function/logical/and.js","webpack:///./node_modules/fp-ts/es6/FromTask.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/solver/usolve.js","webpack:///./node_modules/mathjs/lib/esm/function/special/erf.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/mathjs/lib/esm/function/signal/zpk2tf.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/pdf-lib/es/core/syntax/CharCodes.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/mathjs/lib/esm/json/replacer.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csPermute.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csTdfs.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csPost.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csEtree.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csFkeep.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csFlip.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csAmd.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csLeaf.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csCounts.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csSqr.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csMarked.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csMark.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csUnflip.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csDfs.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csReach.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csSpsolve.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csLu.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/decomposition/slu.js","webpack:///./node_modules/core-js/modules/es.object.seal.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/filter.js","webpack:///./node_modules/mathjs/lib/esm/function/combinatorics/stirlingS2.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/mathjs/lib/esm/function/bitwise/rightArithShift.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/buffer-equal-constant-time/index.js","webpack:///./node_modules/pdf-lib/es/core/document/PDFHeader.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFNumber.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFArray.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFBool.js","webpack:///./node_modules/pdf-lib/es/core/syntax/Delimiters.js","webpack:///./node_modules/pdf-lib/es/core/syntax/Whitespace.js","webpack:///./node_modules/pdf-lib/es/core/syntax/Irregular.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFName.js","webpack:///./node_modules/pdf-lib/es/core/operators/PDFOperatorNames.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFNull.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFDict.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFStream.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFRawStream.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFRef.js","webpack:///./node_modules/pdf-lib/es/core/operators/PDFOperator.js","webpack:///./node_modules/pdf-lib/es/core/structures/PDFCrossRefStream.js","webpack:///./node_modules/pdf-lib/es/core/structures/PDFFlateStream.js","webpack:///./node_modules/pdf-lib/es/core/structures/PDFContentStream.js","webpack:///./node_modules/pdf-lib/es/utils/rng.js","webpack:///./node_modules/pdf-lib/es/core/PDFContext.js","webpack:///./node_modules/pdf-lib/es/core/structures/PDFPageLeaf.js","webpack:///./node_modules/pdf-lib/es/core/PDFObjectCopier.js","webpack:///./node_modules/pdf-lib/es/core/document/PDFCrossRefSection.js","webpack:///./node_modules/pdf-lib/es/core/document/PDFTrailer.js","webpack:///./node_modules/pdf-lib/es/core/document/PDFTrailerDict.js","webpack:///./node_modules/pdf-lib/es/core/structures/PDFObjectStream.js","webpack:///./node_modules/pdf-lib/es/core/writers/PDFWriter.js","webpack:///./node_modules/pdf-lib/es/core/objects/PDFInvalidObject.js","webpack:///./node_modules/pdf-lib/es/core/embedders/JpegEmbedder.js","webpack:///./node_modules/pdf-lib/es/core/writers/PDFStreamWriter.js","webpack:///./node_modules/pdf-lib/es/core/embedders/StandardFontEmbedder.js","webpack:///./node_modules/pdf-lib/es/core/embedders/CMap.js","webpack:///./node_modules/pdf-lib/es/core/embedders/FontFlags.js","webpack:///./node_modules/pdf-lib/es/core/embedders/CustomFontEmbedder.js","webpack:///./node_modules/pdf-lib/es/core/embedders/CustomFontSubsetEmbedder.js","webpack:///./node_modules/@pdf-lib/upng/UPNG.js","webpack:///./node_modules/pdf-lib/es/utils/png.js","webpack:///./node_modules/pdf-lib/es/core/interactive/ViewerPreferences.js","webpack:///./node_modules/pdf-lib/es/core/embedders/PngEmbedder.js","webpack:///./node_modules/pdf-lib/es/core/streams/Stream.js","webpack:///./node_modules/pdf-lib/es/core/streams/DecodeStream.js","webpack:///./node_modules/pdf-lib/es/core/streams/Ascii85Stream.js","webpack:///./node_modules/pdf-lib/es/core/streams/AsciiHexStream.js","webpack:///./node_modules/pdf-lib/es/core/streams/FlateStream.js","webpack:///./node_modules/pdf-lib/es/core/streams/LZWStream.js","webpack:///./node_modules/pdf-lib/es/core/streams/RunLengthStream.js","webpack:///./node_modules/pdf-lib/es/core/streams/decode.js","webpack:///./node_modules/pdf-lib/es/core/embedders/PDFPageEmbedder.js","webpack:///./node_modules/pdf-lib/es/core/acroform/flags.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroField.js","webpack:///./node_modules/pdf-lib/es/core/annotation/BorderStyle.js","webpack:///./node_modules/pdf-lib/es/core/annotation/PDFAnnotation.js","webpack:///./node_modules/pdf-lib/es/core/annotation/AppearanceCharacteristics.js","webpack:///./node_modules/pdf-lib/es/core/annotation/PDFWidgetAnnotation.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroTerminal.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroButton.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroCheckBox.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroChoice.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroComboBox.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroNonTerminal.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroSignature.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroText.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroPushButton.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroRadioButton.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroListBox.js","webpack:///./node_modules/pdf-lib/es/core/acroform/utils.js","webpack:///./node_modules/pdf-lib/es/core/acroform/PDFAcroForm.js","webpack:///./node_modules/pdf-lib/es/core/structures/PDFCatalog.js","webpack:///./node_modules/pdf-lib/es/core/structures/PDFPageTree.js","webpack:///./node_modules/pdf-lib/es/core/syntax/Numeric.js","webpack:///./node_modules/pdf-lib/es/core/parser/BaseParser.js","webpack:///./node_modules/pdf-lib/es/core/annotation/flags.js","webpack:///./node_modules/pdf-lib/es/core/parser/ByteStream.js","webpack:///./node_modules/pdf-lib/es/core/syntax/Keywords.js","webpack:///./node_modules/pdf-lib/es/core/parser/PDFObjectParser.js","webpack:///./node_modules/pdf-lib/es/core/parser/PDFObjectStreamParser.js","webpack:///./node_modules/pdf-lib/es/core/parser/PDFXRefStreamParser.js","webpack:///./node_modules/pdf-lib/es/core/parser/PDFParser.js","webpack:///./node_modules/mathjs/lib/esm/type/number.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/std.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/core-js/modules/web.dom-exception.stack.js","webpack:///./node_modules/pdf-lib/es/utils/base64.js","webpack:///./node_modules/pdf-lib/es/utils/pdfDocEncoding.js","webpack:///./node_modules/pdf-lib/es/utils/arrays.js","webpack:///./node_modules/pdf-lib/es/utils/async.js","webpack:///./node_modules/pdf-lib/es/utils/numbers.js","webpack:///./node_modules/pdf-lib/es/utils/errors.js","webpack:///./node_modules/pdf-lib/es/utils/objects.js","webpack:///./node_modules/pdf-lib/es/utils/validators.js","webpack:///./node_modules/pdf-lib/es/utils/Cache.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/seedrandom/lib/xor128.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/atan2.js","webpack:///./node_modules/mathjs/lib/esm/type/bignumber/function/bignumber.js","webpack:///./node_modules/core-js/internals/base64-map.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/range.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/pickRandom.js","webpack:///./node_modules/fp-ts/es6/Semigroup.js","webpack:///./node_modules/mathjs/lib/esm/type/unit/function/splitUnit.js","webpack:///./node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/mathjs/lib/esm/utils/factory.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/expm.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/solver/utils/solveValidation.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setDifference.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/pako/lib/utils/common.js","webpack:///./node_modules/jsonwebtoken/node_modules/semver/semver.js","webpack:///./node_modules/node-libs-browser/node_modules/isarray/index.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/FibonacciHeap.js","webpack:///./node_modules/mathjs/lib/esm/function/string/bin.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setPowerset.js","webpack:///./node_modules/mathjs/lib/esm/function/unit/to.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/utils/improveErrorMessage.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/rotationMatrix.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isInteger.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/zeros.js","webpack:///./node_modules/mathjs/lib/esm/function/signal/freqz.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/pinv.js","webpack:///./node_modules/safer-buffer/safer.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/diag.js","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./node_modules/core-js/internals/is-data-descriptor.js","webpack:///./node_modules/fp-ts/es6/TaskEither.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/ceil.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo07xSSf.js","webpack:///./node_modules/core-js/modules/web.self.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/pako/lib/zlib/adler32.js","webpack:///./node_modules/mathjs/lib/esm/function/bitwise/bitNot.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/fix.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isNumeric.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/multiplyScalar.js","webpack:///./src/views/components/reconhecimentoFacial/selfie.vue?e757","webpack:///./node_modules/mathjs/lib/esm/plain/number/logical.js","webpack:///./node_modules/fp-ts/es6/Compactable.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/MatrixIndex.js","webpack:///./node_modules/mathjs/lib/esm/function/logical/xor.js","webpack:///./node_modules/core-js/modules/es.string.trim-right.js","webpack:///./node_modules/seedrandom/lib/xorshift7.js","webpack:///./node_modules/mathjs/lib/esm/function/special/zeta.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/internals/string-trim-end.js","webpack:///./node_modules/mathjs/lib/esm/function/complex/re.js","webpack:///./node_modules/mathjs/lib/esm/utils/bignumber/bitwise.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/hypot.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/apply.js","webpack:///./node_modules/lodash.isplainobject/index.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo08xS0Sid.js","webpack:///./node_modules/fp-ts/es6/FromIO.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/sum.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/nthRoots.js","webpack:///./node_modules/core-js/internals/dom-exception-constants.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/nthRoot.js","webpack:///./node_modules/pdf-lib/es/utils/strings.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/variance.js","webpack:///./node_modules/mathjs/lib/esm/type/complex/Complex.js","webpack:///./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/abs.js","webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/util/randomMatrix.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setDistinct.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/fft.js","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/mathjs/lib/esm/function/complex/arg.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo14xDs.js","webpack:///./node_modules/mathjs/lib/esm/version.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/constants.js","webpack:///./node_modules/mathjs/lib/esm/constants.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/fraction.js/fraction.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/size.js","webpack:///./node_modules/pako/index.js","webpack:///./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack:///./node_modules/readable-stream/node_modules/isarray/index.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/asec.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo13xDD.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/broadcast.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/square.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/mathjs/lib/esm/type/string.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/core-js/modules/es.object.freeze.js","webpack:///./node_modules/mathjs/lib/esm/utils/lruQueue.js","webpack:///./node_modules/mathjs/lib/esm/utils/function.js","webpack:///./src/views/components/tasks.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/median.js","webpack:///./node_modules/mathjs/lib/esm/type/unit/function/unit.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/cot.js","webpack:///./node_modules/fp-ts/es6/Magma.js","webpack:///./node_modules/pbkdf2/lib/sync-browser.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/log.js","webpack:///./node_modules/pdf-lib/es/index.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/util/seededRNG.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/lcm.js","webpack:///./node_modules/core-js/modules/es.object.is-frozen.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/squeeze.js","webpack:///./node_modules/mathjs/lib/esm/utils/applyCallback.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo05xSfSf.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/asin.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/sech.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/sort.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/cosh.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/lgamma.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/map.js","webpack:///./node_modules/fp-ts/es6/Zero.js","webpack:///./node_modules/javascript-natural-sort/naturalSort.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/acosh.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setCartesian.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/cube.js","webpack:///./node_modules/lodash.once/index.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/rotate.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/gcd.js","webpack:///./node_modules/mathjs/lib/esm/type/fraction/function/fraction.js","webpack:///./node_modules/pdf-lib/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/complex.js/complex.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/mathjs/lib/esm/utils/map.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/decomposition/lup.js","webpack:///./node_modules/pako/lib/zlib/crc32.js","webpack:///./node_modules/core-js/modules/es.string.trim-start.js","webpack:///./node_modules/jsonwebtoken/lib/psSupported.js","webpack:///./src/views/components/reconhecimentoFacial/documentosObrigatorios.vue?26ea","webpack:///./node_modules/asn1.js/lib/asn1/api.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/function/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isNegative.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/mathjs/lib/esm/function/string/print.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/flatten.js","webpack:///./src/@core/components/banco/Banco.vue?de9e","webpack:///src/@core/components/banco/Banco.vue","webpack:///./src/@core/components/banco/Banco.vue?656c","webpack:///./src/@core/components/banco/Banco.vue","webpack:///./node_modules/fp-ts/es6/EitherT.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/dotPow.js","webpack:///./node_modules/jsonwebtoken/lib/NotBeforeError.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/norm.js","webpack:///./node_modules/fp-ts/es6/Chain.js","webpack:///./node_modules/public-encrypt/mgf.js","webpack:///./node_modules/core-js/modules/es.array.reduce-right.js","webpack:///./node_modules/jsonwebtoken/lib/timespan.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/dotDivide.js","webpack:///./node_modules/mathjs/lib/esm/function/numeric/solveODE.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/mathjs/lib/esm/utils/bignumber/formatter.js","webpack:///./node_modules/mathjs/lib/esm/utils/string.js","webpack:///./node_modules/mathjs/lib/esm/utils/array.js","webpack:///./node_modules/mathjs/lib/esm/utils/collection.js","webpack:///./node_modules/mathjs/lib/esm/type/bignumber/BigNumber.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setMultiplicity.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/mad.js","webpack:///./src/views/components/modalDetectaRosto.vue?1b6a","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/mathjs/lib/esm/function/set/setIsSubset.js","webpack:///./node_modules/mathjs/lib/esm/function/logical/or.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/log1p.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/brorand/index.js","webpack:///./node_modules/mathjs/lib/esm/function/trigonometry/acsch.js","webpack:///./node_modules/cleave.js/dist/addons/cleave-phone.br.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","_v","staticRenderFns","props","token","type","String","required","data","mounted","_process$env$JWT_SECR","jwt","process","JWT_SECRET","algorithms","component","name","dependencies","createAcos","_ref","typed","config","Complex","number","x","predictable","Math","acos","BigNumber","primes","DH","getDiffieHellman","mod","prime","Buffer","gen","ENCODINGS","createDiffieHellman","enc","generator","genc","isBuffer","undefined","generatePrime","exports","DiffieHellmanGroup","createDiffieHellmanGroup","DiffieHellman","assert","val","msg","Error","inherits","ctor","superCtor","super_","TempCtor","prototype","constructor","BN","base","endian","isBN","negative","words","length","red","_init","module","wordSize","window","e","parseHex4Bits","string","index","c","charCodeAt","parseHexByte","lowerBound","r","parseBase","str","start","end","mul","len","min","i","num","Array","isArray","max","left","right","cmp","_initNumber","_initArray","toString","replace","_parseHex","_parseBase","toArray","ceil","j","w","off","strip","parseLength","limbLen","limbPow","total","word","imuln","_iaddn","pow","copy","dest","clone","_expand","size","_normSign","inspect","zeros","groupSizes","groupBases","toBitArray","bitLength","bit","wbit","smallMulTo","self","out","a","b","lo","carry","k","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modn","idivn","toNumber","ret","toJSON","toBuffer","toArrayLike","ArrayType","byteLength","reqLength","littleEndian","res","q","andln","iushrn","clz32","_countBits","t","_zeroBits","hi","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","iadd","isub","add","sub","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","imul","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","mulp","y","mulTo","makeRBT","N","l","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","s","rtwdf","cos","PI","itwdf","sin","p","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","n","m","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","iushln","bits","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","mode","bhi","bhiBits","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","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","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","call","P224","P192","P25519","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","z","inv","windowSize","wnd","current","currentLen","mont","u","encrypt","block","_cipher","encryptBlock","decrypt","decryptBlock","Cipher","options","blockSize","buffer","bufferOff","update","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","_update","inputOff","outputOff","count","final","first","last","_finalEncrypt","_finalDecrypt","concat","_pad","_unpad","equal","constants","_reverse","map","Object","keys","forEach","key","value","der","createEqualText","compareText","n1","n2","absNumber","addNumber","subtractNumber","multiplyNumber","divideNumber","unaryMinusNumber","unaryPlusNumber","cbrtNumber","cubeNumber","expNumber","exp","expm1Number","gcdNumber","lcmNumber","prod","logNumber","log","log10Number","log2Number","log1pNumber","modNumber","floor","nthRootNumber","root","arguments","Infinity","isFinite","signNumber","sqrtNumber","squareNumber","xgcdNumber","lastx","lasty","powNumber","roundNumber","decimals","parseFloat","normNumber","signature","$","trimStart","target","proto","forced","trimLeft","boolTag","objectProto","objectToString","isBoolean","isObjectLike","createCompareUnits","referToSelf","equalBase","find","valueType","PDFObject","_context","sizeInBytes","copyBytesInto","_offset","createTypeOf","any","ERR_INVALID_OPT_VALUE","codes","highWaterMarkFrom","isDuplex","duplexKey","highWaterMark","getHighWaterMark","state","hwm","objectMode","DimensionError","actual","expected","relation","SyntaxError","message","join","stack","RangeError","isDimensionError","createUnaryPlus","Fraction","Unit","bitAndNumber","bitNotNumber","bitOrNumber","bitXorNumber","leftShiftNumber","rightArithShiftNumber","rightLogShiftNumber","$values","values","stat","O","filter","F","G","predicate","fga","ga","filterMap","f","partition","_filter","fgb","partitionMap","_filterMap","utils","SHA256","SHA224","outSize","hmacStrength","padLength","_digest","toHex32","slice","split32","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","zero","buf","STORED_BLOCK","STATIC_TREES","DYN_TREES","MIN_MATCH","MAX_MATCH","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","code","bi_flush","gen_bitlen","desc","xbits","stree","extra","overflow","bl_count","heap","heap_max","opt_len","static_len","gen_codes","next_code","tr_static_init","init_block","dyn_ltree","dyn_dtree","bl_tree","last_lit","matches","bi_windup","copy_block","header","arraySet","smaller","depth","_n2","_m2","pqdownheap","v","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","node","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","l_desc","d_desc","bl_desc","send_all_trees","lcodes","dcodes","blcodes","rank","detect_data_type","black_mask","static_init_done","_tr_init","_tr_stored_block","stored_len","_tr_align","_tr_flush_block","opt_lenb","static_lenb","level","strm","data_type","strategy","_tr_tally","lit_bufsize","Hash","K","W","Sha","init","_w","rotl5","rotl30","ft","d","_a","_b","_d","_e","M","readInt32BE","_hash","H","allocUnsafe","writeInt32BE","createPolynomialRoot","equalScalar","subtract","multiply","divide","unaryMinus","cbrt","typeOf","constant","restCoeffs","coeffs","pop","denom","d1","d2","discriminant","_denom","D0_1","D0_2","D1_1","D1_2","Ccubed","Delta0","Delta1","discriminant1","discriminant2","allRoots","rawRoots","Transform","_require$codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","Duplex","afterTransform","er","ts","_transformState","transforming","cb","writecb","emit","writechunk","push","rs","_readableState","reading","needReadable","_read","bind","needTransform","writeencoding","sync","_transform","flush","_flush","on","prefinish","_this","destroyed","done","stream","_writableState","chunk","encoding","_write","_destroy","err","err2","aes","StreamCipher","iv","AES","_prev","from","_cache","_secCache","_decrypt","_mode","_final","scrub","isNone","fa","_tag","isSome","none","some","isLeft","ma","isRight","singleton","isNonEmpty","as","head","tail","emptyReadonlyArray","emptyRecord","has","hasOwnProperty","liftNullable","onNullable","_i","apply","fromEither","liftOption","onNone","flatMapNullable","flatMap","flatMapOption","flatMapEither","flatMapIO","fromIO","flatMapTask","fromTask","PassThrough","createNot","isNaN","des","des3","createHex","format","notation","createEqual","matrix","DenseMatrix","matAlgo03xDSf","matAlgo07xSSf","matAlgo12xSfs","matrixAlgorithmSuite","createEqualNumber","elop","SS","DS","Ss","_ref2","createGetMatrixDataType","Matrix","getDataType","pre","curves","hash","curve","PresetCurve","short","edwards","validate","isInfinity","defineCurve","defineProperty","configurable","enumerable","get","sha256","gRed","sha384","sha512","beta","lambda","basis","createExpm1","_Complex","minus","CBCState","instantiate","Base","CBC","_cbcInit","create","_cbcState","inp","inOff","outOff","superProto","obj","JSON","stringify","tryNodeRequire","getBuiltIn","fails","createPropertyDescriptor","defineBuiltIn","defineBuiltInAccessor","hasOwn","anInstance","anObject","errorToString","normalizeStringArgument","DOMExceptionConstants","clearErrorStack","InternalStateModule","DESCRIPTORS","IS_PURE","DOM_EXCEPTION","DATA_CLONE_ERR","NativeDOMException","MessageChannel","port1","postMessage","WeakMap","error","NativeDOMExceptionPrototype","ErrorPrototype","setInternalState","set","getInternalState","getterFor","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","argumentsLength","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_TO_STRING","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","global","DOMException","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constantName","descriptor","JsonWebTokenError","NotBeforeError","TokenExpiredError","decode","timespan","PS_SUPPORTED","jws","PUB_KEY_ALGS","RSA_KEY_ALGS","HS_ALGS","splice","jwtString","secretOrPublicKey","callback","assign","clockTimestamp","nonce","trim","Date","now","decodedToken","parts","complete","getSecret","secretCallback","valid","hasSignature","indexOf","alg","verify","payload","nbf","ignoreNotBefore","clockTolerance","ignoreExpiration","audience","audiences","aud","match","targetAudience","RegExp","test","issuer","invalid_issuer","iss","subject","jwtid","jti","maxAge","iat","maxAgeTimestamp","parseKeys","mgf","crt","createHash","withPublic","oaep","modulus","iHash","alloc","digest","hLen","maskedSeed","maskedDb","seed","db","compare","pkcs1","reverse","p1","status","ps","dif","privateKey","zBuffer","getLeft","getRight","_map","_ap","fab","ap","URI","Functor","of","Chain","chain","extend","that","wa","FromEither","matchW","onSome","ApT","traverseReadonlyNonEmptyArrayWithIndex","o_1","traverseReadonlyArrayWithIndex","traverseArray","MAX_BYTES","MAX_UINT32","oldBrowser","crypto","msCrypto","randomBytes","bytes","generated","getRandomValues","nextTick","createUseMatrixForArrayScalar","referTo","selfDn","valueOf","selfDB","selfnD","selfBD","define","Alea","me","mash","Mash","s0","s1","s2","impl","opts","xg","prng","int32","double","quick","alea","flap","bindTo","let_","getFunctorComposition","asUnit","asM","uncurryThis","fixRegExpWellKnownSymbolLogic","isNullOrUndefined","isRegExp","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","getMethod","arraySlice","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","$push","exec","stringSlice","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","result","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","lim","lastIndex","lastLength","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","splitter","S","unicodeMatching","is","createMultinomial","factorial","isInteger","isPositive","sum","ai","TypeError","createFractionClass","isFraction","mathjs","fromJSON","json","isClass","NO_INT","createRound","matAlgo11xS0s","matAlgo14xDs","toDecimalPlaces","_n","storage","createMatrixFromRows","flatten","arr","_createArray","checkVectorTypeAndReturnLength","row","rowLength","vec","$reduce","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","CHROME_BUG","FORCED","reduce","callbackfn","createMatrix","SparseMatrix","_create","datatype","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","parse","toLowerCase","fmtShort","ms","msAbs","fmtLong","plural","isPlural","long","sign","DES","EDE","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","createHasNumericValue","isNumeric","boolean","Number","getSafeProperty","object","prop","isPlainObject","isSafeProperty","isSafeMethod","setSafeProperty","hasSafeProperty","safeNativeProperties","Function","getSafeMethod","method","getPrototypeOf","safeNativeMethods","toLocaleString","DataStream","jwa","Stream","util","JWS_REGEX","isObject","thing","safeJsonParse","headerFromJWS","jwsSig","encodedHeader","securedInputFromJWS","signatureFromJWS","payloadFromJWS","isValidJws","jwsVerify","algorithm","secretOrKey","securedInput","algo","jwsDecode","typ","VerifyStream","secret","publicKey","secretStream","readable","once","writable","isValid","createRightLogShift","matAlgo01xDSid","matAlgo02xDS0","matAlgo08xS0Sid","matAlgo10xSids","useMatrixForArrayScalar","SD","CorkedRequest","entry","finish","onCorkedFinish","Writable","WritableState","internalUtil","deprecate","OurUint8Array","Uint8Array","_uint8ArrayToBuffer","_isUint8Array","realHasInstance","destroyImpl","_require","ERR_INVALID_ARG_TYPE","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","writableObjectMode","finalCalled","needDrain","ending","ended","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","write","writev","_writev","destroy","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","rState","endEmitted","endWritable","corkReq","getBuffer","Symbol","hasInstance","pipe","cork","uncork","setDefaultEncoding","_undestroy","undestroy","Legacy","md5","RIPEMD160","sha","ZEROS","Hmac","blocksize","_alg","_key","ipad","_ipad","opad","_opad","createDivide","divideScalar","signatures","createIdentity","rows","_identity","cols","_identityVector","Big","defaultValue","diagonal","minimum","second","equals","createIm","createQr","identity","conj","addScalar","multiplyScalar","subtractScalar","complex","_denseQR","_sparseQR","Q","R","_denseQRimpl","_size","Qdata","_data","Rdata","pivot","sgn","conjSgn","alphaSquared","alpha","u1","tau","createReshape","sizes","reshape","createXgcd","_xgcdBigNumber","isInt","times","base64","ieee754","typedArraySupport","__proto__","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","arg","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","fill","checked","isEncoding","fromArrayLike","array","byteOffset","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","list","pos","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","includes","_arr","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","toHex","checkOffset","ext","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","toByteArray","src","dst","rng","pseudoRandomBytes","createHmac","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers","dh","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","createLog10","LN10","isNegative","createAcoth","_BigNumber","acoth","atanh","trimEnd","CipherBase","modes","modeName","_des","createAtanh","createComplexEigs","bignumber","diag","qr","usolve","usolveAll","larger","matrixFromColumns","dot","complexEigs","prec","findVectors","balance","reduceToHessenberg","vectors","iterateUntilTriangular","findEigenvectors","Rdiag","big","cplx","realzero","realone","radix","radixSq","colNorm","rowNorm","rowDivRadix","rowMulRadix","condition","_j","maxIndex","el","tmp1","_j2","tmp2","tmp3","_j3","_k","_k2","lambdas","Sdiag","Qtotal","Qpartial","lastConvergenceBefore","unshift","inflateMatrix","_i2","ll","eigenvalues2x2","jordanBase2x2","_i3","sort","blockDiag","Cinv","U","uniqueValues","multiplicities","λ","E","failedLambdas","_loop","_i4","solutions","approxVec","inverseIterate","correction","trA","detA","l1","l2","na","nb","nc","nd","_i5","I","_i6","fn","orthog","largeNum","randomOrthogonalVector","norm","orthogonalComplement","normalize","random","createRealSymmetric","atan","main","epsilon","diagBig","precision","psi","e0","Sij","createArray","Vab","getAij","getTheta","Sij1","Ei","sorting","getAijBig","getThetaBig","x1Big","Sij1Big","aii","ajj","aij","theta","Ski","Skj","Hij","c2","Aki","Akj","csHij","Aii","Ajj","_k3","_k4","Mij","maxMij","maxIJ","minID","minE","_k5","createEigs","factory","column","doRealSymetric","doComplexEigs","mat","computeValuesAndVectors","isReal","coerceReal","isSymmetric","_type","coerceTypes","hasNumber","hasBig","hasComplex","console","warn","createPermutations","isPositiveInteger","plus","createFloorNumber","exponent","createFloor","floorNumber","ROUND_FLOOR","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","EDEState","k1","k2","k3","ciphers","_edeState","ZERO_BUF","checkParameters","subtle","toBrowser","sha1","checks","checkNative","browser","Promise","resolve","importKey","deriveBits","prom","browserPbkdf2","then","catch","getNextTick","queueMicrotask","setImmediate","setTimeout","password","salt","iterations","resolvePromise","promise","keylen","resp","createSin","trigUnit","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","exportTypedArrayStaticMethod","typedArrayFrom","createColumn","Index","range","_column","rowRange","subset","createAcot","acot","decoders","pem","inner","outer","createFactorial","gamma","isIntegerNumber","isNegativeNumber","isPositiveNumber","isZeroNumber","isNaNNumber","createBitAnd","matAlgo06xS0S0","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_classCallCheck","instance","Constructor","_defineProperties","_createClass","protoProps","staticProps","_toPrimitive","prim","toPrimitive","_require2","custom","copyBuffer","BufferList","hasStrings","_getString","_getBuffer","customInspect","createUsolveAll","solveValidation","_sparseBackwardSubstitution","_denseBackwardSubstitution","b_","columns","L","bNew","_values","_index","ptr","_ptr","iValues","iIndices","firstIndex","Mii","J","_lastIndex2","_J2","_lastIndex","_J","isNumber","isString","SUPPORTED_ALGS","sign_options_schema","expiresIn","notBefore","noTimestamp","keyid","mutatePayload","registered_claims_schema","schema","allowUnknown","parameterName","validator","validateOptions","validatePayload","options_to_payload","options_for_objects","secretOrPrivateKey","isObjectPayload","kid","failure","invalid_options","opt","timestamp","claim","printTemplate","createDot","_denseDot","_sparseDot","_validateDim","xLen","yLen","xSize","ySize","adata","adt","_datatype","bdata","bdt","aIsColumn","bIsColumn","dt","_c2","_c3","xindex","xvalues","yindex","yvalues","_this2","DefaultSection","section","currentIndex","default","renderSuggestion","normalizeItemFunction","componentAttrPrefix","componentAttrIdAutosuggest","_currentIndex","computed","methods","getItemIndex","start_index","getItemByIndex","onMouseEnter","currentTarget","getAttribute","$emit","onMouseLeave","beforeSection","$scopedSlots","afterSectionDefault","afterSectionNamed","className","attrs","role","label","class","ulClass","id","liClass","liAttributes","mouseenter","mouseleave","suggestion","hasClass","addClass","removeClass","classList","remove","INDEX_IS_FOCUSED_ON_INPUT","defaultSectionConfig","VueAutosuggest","_t","isOpen","_g","internal_inputProps","autocomplete","domProps","internalValue","inputHandler","keydown","handleKeyStroke","listeners","_componentAttrClassAutosuggestResultsContainer","_componentAttrClassAutosuggestResults","_l","computedSections","getSectionRef","ref","refInFor","tag","normalizeItem","updateCurrentIndex","scopedSlots","_u","_s","item","components","inputProps","suggestions","getSuggestionValue","shouldRenderSuggestions","sectionConfigs","onSelected","componentAttrClassAutosuggestResultsContainer","componentAttrClassAutosuggestResults","searchInputOriginal","currentItem","loading","didSelectFromOptions","defaultInputProps","clientXMouseDownInitial","$listeners","click","$nextTick","ensureItemVisible","selected","setChangeItem","totalResults","end_index","watch","handler","immediate","created","document","addEventListener","onDocumentMouseUp","onDocumentMouseDown","beforeDestroy","removeEventListener","$refs","keyCode","preventDefault","setCurrentIndex","$el","querySelector","clientHeight","scrollTop","offsetTop","clickedOnScrollbar","clientWidth","tagName","getBoundingClientRect","clientX","contains","VueAutosuggestPlugin","install","Vue","use","captureStackTrace","createLeftShift","gammaNumber","NaN","twoN","threeN","fourN","fiveN","gammaP","gammaG","lnSqrt2PI","lgammaG","lgammaN","lgammaSeries","lgammaNumber","createTranspose","transposeMatrix","_denseTranspose","_sparseTranspose","transposedRow","transposed","createDenseMatrix","cvalues","cindex","cptr","k0","createSparseMatrix","createSinh","sinh","asn1","aesid","fixProc","compat","passphrase","subtype","ndata","stripped","certificate","tbsCertificate","subjectPublicKeyInfo","PublicKey","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","kde","kdeparams","iters","cipher","cipherText","createLargerEq","compareUnits","createLargerEqNumber","MISSED_STICKY","classof","RegExpPrototype","$TypeError","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","startsWith","searchString","search","createCombinationsWithRep","_prodrange","prodrange","nMinusOne","dividedBy","createTan","tan","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_DEFAULT_STRATEGY","Z_DEFLATED","createSubset","subsetRef","subsetResult","isScalar","_getObjectProperty","_getSubstring","replacement","_broadcastReplacement","isMatrix","_setSubstring","_setObjectProperty","_isScalar","every","dimension","charAt","isIndex","chars","_len","updated","createSylvester","schur","transpose","lusolve","_sylvester","sA","T","sB","V","all","hc","vc","RHS","gkk","gmk","gkm","gmm","LHS","yAux","_RHS","_gkk","_LHS","Y","X","getParamSize","keySize","paramBytesForAlg","ES256","ES384","ES512","getParamBytesForAlg","paramBytes","__esModule","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","WizardButton","WizardStep","title","subtitle","nextButtonText","backButtonText","finishButtonText","hideButtons","Boolean","validateOnBack","color","errorColor","shape","layout","stepsClasses","stepSize","transition","startIndex","provide","addTab","removeTab","activeTabIndex","currentPercentage","maxStep","tabs","slotProps","nextTab","prevTab","isLastStep","fillButtonStyle","tabCount","isVertical","displayPrevButton","stepPercentage","progressBarStyle","backgroundColor","progress","borderColor","emitTabChange","$slots","tabId","changeTab","reset","navigateToTab","activateAll","beforeTabChange","afterTabChange","setValidationError","focusNextTab","focusPrevTab","setLoading","validationError","validateBeforeChange","executeBeforeChange","beforeChange","afterChange","active","activateTabAndCheckStep","tryChangeRoute","$router","route","checkRouteChange","deactivateTabs","activateTab","initializeTabs","tab","iconActiveStyle","stepCheckedStyle","errorStyle","stepTitleStyle","isStepSquare","isTabShape","icon","additionalInfo","inject","$parent","parentNode","removeChild","staticClass","tabindex","disabled","href","square_shape","tab_shape","style","has_error","activeElement","findIndex","getElementById","focus","vertical","keyup","button","nativeOn","directives","rawName","expression","createCreateUnit","createUnit","def","descriptors","formatRegExp","objects","args","isNull","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","seen","stylize","stylizeNoColor","colors","showHidden","_extend","isUndefined","stylizeWithColor","formatValue","styleType","styles","arrayToHash","idx","recurseTimes","isFunction","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError","isDate","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","line","cur","numLinesEst","ar","isSymbol","isPrimitive","pad","debuglog","NODE_DEBUG","toUpperCase","pid","months","time","getHours","getMinutes","getSeconds","getDate","getMonth","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","callbackify","original","callbackified","maybeCb","rej","setPrototypeOf","promisify","promiseResolve","promiseReject","reject","ArgumentsError","isArgumentsError","getApplicativeMonoid","empty","ShortCurve","conf","tinv","two","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","BasePoint","inf","JPoint","zOne","betas","_getEndoRoots","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","c1","p2","q1","q2","pointFromX","point","ax","rhs","_endoWnafMulAdd","points","jacobianResult","npoints","ncoeffs","_getBeta","_wnafMulAdd","pointFromJSON","precomputed","endoMul","naf","doubles","step","obj2point","dbl","nx","ny","ys1","dyinv","getX","getY","_hasDoubles","_fixedNafMul","_wnafMul","mulAdd","jmulAdd","_precompute","negate","toJ","jpoint","toP","zinv","zinv2","ay","pz2","z2","u2","h2","h3","nz","mixedAdd","dblp","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","zs","xc","redN","elliptic","version","rand","ec","eddsa","Readable","pipeline","createMean","_mean","_nmeanDim","dim","createMatAlgo04xSidSid","avalues","aindex","aptr","asize","bvalues","bindex","bptr","bsize","cf","convert","xa","xb","wb","mark","SignStream","ALGORITHMS","encoders","encryptStart","createCsc","csc","createDotMultiply","matAlgo09xS0Sf","Node","DEREncoder","entity","DERNode","body","encodeTag","cls","reporter","tagByName","tagClassByName","encode","_encode","_encodeComposite","content","encodedTag","_createEncoderBuffer","lenOctets","_encodeStr","unused","_isNumstr","_isPrintstr","_encodeObjid","relative","ident","objid","_encodeTime","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","_encodeNull","_encodeInt","numArray","_encodeBool","_use","_getEncoder","_skipDefault","dataBuffer","_baseState","defaultBuffer","_encodeValue","createAddScalar","fixPrefix","parseBytes","cachedProperty","KeyPair","_secret","isPoint","pub","_pub","_pubBytes","fromPublic","fromSecret","encodePoint","decodePoint","priv","lastIx","encodingLength","decodeInt","privBytes","sig","getPublic","pubBytes","createIfft","fft","dotDivide","curr","repeat","createBitXor","decoded","move","_move","for","modrn","allocate","postfix","_toArrayLikeLE","position","_toArrayLikeBE","isNegNum","createLsolve","_sparseForwardSubstitution","_denseForwardSubstitution","mdata","bj","xj","vjj","jValues","jIndices","asUInt32Array","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s3","ksRow","RCON","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","_reset","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","m1","createMatAlgo03xDSf","denseMatrix","sparseMatrix","inverse","cdata","__spreadArray","to","pack","dual","getEndomorphismMonoid","not","SK","hole","untupled","tupled","absurd","decrement","increment","tuple","flow","flip","constVoid","constUndefined","constNull","constFalse","constTrue","unsafeCoerce","getRing","getSemiring","getMonoid","getSemigroup","getBooleanAlgebra","meet","implies","getSemigroupM","ab","bc","cd","de","ef","fg","gh","ij","arity","isDataFirst","createSetSize","compareNatural","unique","__webpack_amd_options__","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","other","createMatAlgo02xDS0","cij","ZEROES","fromArray","GHASH","cache","ghash","_multiply","lsbVi","Vi","Zi","abl","bl","_createTyped2","createTyped","clear","addTypes","addConversions","throwNoBignumber","throwNoComplex","throwNoFraction","throwNoMatrix","onMismatch","usualError","createError","category","createSparseMatrixClass","_createFromMatrix","_createFromArray","_getsubset","ii","kk","mvalues","mindex","mptr","pv","_setsubset","submatrix","sSize","iSize","dataIndex","subIndex","firstDimensionRange","secondDimensionRange","firstDataIndex","firstSubIndex","secondDataIndex","secondSubIndex","_getValueIndex","top","bottom","_remove","_insert","_resize","ins","minRow","maxRow","minColumn","maxColumn","skipZeros","invoke","_toArray","isSparseMatrix","density","resize","sizeArray","currentLength","newLength","colIndex","rowIndex","r1","flat","_i7","iterator","kSuper","kSub","_value","swapRows","_swapRows","_forEachRow","kx","ky","vx","vy","noBignumber","noFraction","noMatrix","createMatAlgo10xSids","csIpvec","createLusolve","lup","slu","lsolve","_lusolve","order","threshold","_toMatrix","seq","int","AlgorithmIdentifier","bitstr","null_","optional","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","explicit","ECParameters","choice","namedCurve","zlib_deflate","strings","ZStream","Deflate","chunkSize","windowBits","memLevel","raw","gzip","chunks","avail_out","deflateInit2","deflateSetHeader","dictionary","dict","string2buf","deflateSetDictionary","_dict_set","deflate","deflator","deflateRaw","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","DEFAULTS","rounding","modulo","toExpNeg","toExpPos","maxE","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathfloor","mathpow","isBinary","isHex","isOctal","isDecimal","BASE","LOG_BASE","MAX_SAFE_INTEGER","LN10_PRECISION","PI_PRECISION","P","toStringTag","digitsToString","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","cosine","Ctor","tinyPow","taylorSeries","cos2x","absoluteValue","finalise","clampedTo","clamp","comparedTo","xdL","ydL","xd","yd","xs","ys","pr","sd","toLessThanHalfPi","cubeRoot","rep","t3plusx","toExponential","decimalPlaces","dp","dividedToIntegerBy","divToInt","greaterThan","greaterThanOrEqualTo","hyperbolicCosine","cosh","cosh2_x","d8","hyperbolicSine","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","halfPi","getPi","asin","inverseHyperbolicCosine","acosh","ln","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","wpr","xsd","inverseSine","inverseTangent","px","isPos","lessThan","lessThanOrEqualTo","logarithm","isBase10","denominator","guard","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","naturalExponential","negated","getPrecision","sine","squareRoot","tangent","rL","toBinary","toStringBinary","toDP","finiteToString","toFixed","toFraction","maxD","d0","n0","toHexadecimal","toNearest","toOctal","toPower","yn","intPow","toPrecision","toSignificantDigits","toSD","truncated","trunc","multiplyInteger","temp","aL","bL","logBase","more","prodL","qd","rem","remL","rem0","xL","yd0","yL","yz","isTruncated","digits","roundUp","xdi","isExp","nonFiniteToString","truncate","maxOrMin","ltgt","c0","numerator","parseDecimal","substring","parseOther","divisor","isFloat","sin2_x","isHyperbolic","pi","atan2","useDefaults","defaults","isDecimalInstance","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","hypot","log10","log2","Uint32Array","createCoth","coth","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","wrapForNext","lastPromise","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","asyncIterator","createReadableStreamAsyncIterator","_Object$create","Reporter","DecoderBuffer","EncoderBuffer","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","unpad","padded","suite","setAutoPadding","setTo","autoPadding","createTanh","ReadableState","EventEmitter","EElistenerCount","emitter","debug","debugUtil","StringDecoder","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","event","_events","readableObjectMode","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","maybeReadMore_","pipeOnDrain","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","pause","dests","ev","addListener","removeAllListeners","wrap","_fromList","iterable","ERR_STREAM_PREMATURE_CLOSE","called","noop","isRequest","setHeader","abort","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","req","freeze","MATRIX_OPTIONS","NUMBER_OPTIONS","createUnaryMinus","createBigNumberE","hasher","createBigNumberPhi","createBigNumberPi","createBigNumberTau","Signature","_R","_S","_Rencoded","Rencoded","_Sencoded","Sencoded","encodeInt","toBytes","createComplex","ZERO","null","_superPropBase","property","_get","Reflect","receiver","superPropBase","pna","readableDestroyed","writableDestroyed","emitErrorNT","createLsolveAll","createBellNumbers","stirlingS2","createTrace","_denseTrace","_sparseTrace","createDeepEqual","_deepEqual","emitCloseNT","emitErrorAndCloseNT","createSpeedOfLight","unitFactory","createGravitationConstant","createPlanckConstant","createReducedPlanckConstant","createMagneticConstant","createElectricConstant","createVacuumImpedance","createCoulomb","createElementaryCharge","createBohrMagneton","createConductanceQuantum","createInverseConductanceQuantum","createMagneticFluxQuantum","createNuclearMagneton","createKlitzing","createBohrRadius","createClassicalElectronRadius","createElectronMass","createFermiCoupling","createFineStructure","numberFactory","createHartreeEnergy","createProtonMass","createDeuteronMass","createNeutronMass","createQuantumOfCirculation","createRydberg","createThomsonCrossSection","createWeakMixingAngle","createEfimovFactor","createAtomicMass","createAvogadro","createBoltzmann","createFaraday","createFirstRadiation","createLoschmidt","createGasConstant","createMolarPlanckConstant","createMolarVolume","createSackurTetrode","createSecondRadiation","createStefanBoltzmann","createWienDisplacement","createMolarMass","createMolarMassC12","createGravity","createPlanckLength","createPlanckMass","createPlanckTime","createPlanckCharge","createPlanckTemperature","valueStr","unitStr","unit","createMatAlgo01xDSid","createDiff","_diff","_recursive","selfAn","selfMn","element","_ElementDiff","obj1","obj2","obj1IsArray","obj2IsArray","_ArrayDiff","arr1","arr2","createRangeClass","Range","hasStart","hasEnd","hasStep","isRange","nums","invalid","createMatAlgo06xS0S0","getUserMedia","each","isSupported","videoCodecs","m$1","onmessage","gifshot","run","dataToRGB","componentizedPaletteToArray","processFrameWithQuantizer","pixels","palette","height","sampleInterval","loop","addFrame","delay","disposal","transparent","getBase64GIF","errorCode","errorMsg","image","text","img","images","imagesLength","isElement","crossOrigin","Image","onload","removeElement","setCSSAttr","opacity","appendChild","stopVideoStreaming","video","gifWidth","gifHeight","numFrames","cameraStream","videoElement","videoWidth","videoHeight","getCropDimensions","crop","webcamVideoElement","play","getGIF","existingVideo","getExtension","messages","Blob","startStreaming","completed","lastCameraStream","savedRenderingContexts","startVideoStreaming","mergeOptions","interval","URL","webkitURL","mozURL","msURL","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","requestAnimFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","requestTimeout","getTime","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","btoa","isEmptyObject","nodeType","canvas","createElement","getContext","webworkers","Worker","blob","mp4","h264","ogv","ogg","webm","canPlayType","createWebWorker","createObjectURL","objectUrl","worker","getFontSize","resizeFont","fontSize","minFontSize","setAttribute","innerHTML","textIndent","visibility","offsetWidth","webWorkerError","validators","numWorkers","frameDuration","keepCameraOn","fontWeight","fontFamily","fontColor","textAlign","textBaseline","textXCoordinate","textYCoordinate","progressCallback","completeCallback","saveRenderingContexts","showFrameText","waterMark","waterMarkHeight","waterMarkWidth","waterMarkXCoordinate","waterMarkYCoordinate","frames","numRenderedFrames","onRenderCompleteCallback","onRenderProgressCallback","workers","availableWorkers","generatingGIF","initializeWebWorkers","workerMethods","workerError","getWorker","freeWorker","byteMap","bufferToString","onFrameFinished","beingProcessed","generateGIF","processNextFrame","processFrame","startRendering","setRepeat","drawImage","font","fillStyle","fillText","getImageData","addFrameImageData","dithering","onRenderProgress","isRendering","destroyWorkers","terminate","revokeObjectURL","scaledWidth","scaledHeight","putImageData","currentTime","loadedData","defaultVideoDimensions","findVideoSize","attempts","completedCallback","onStreamingTimeout","streamedCallback","mozSrcObject","srcObject","a$1","streamed","autoplay","muted","timeout","clearTimeout","getTracks","stop","defaultOptions","createGIF","takeSnapShot","isWebCamGIFSupported","isExistingVideoGIFSupported","isExistingImagesGIFSupported","VERSION","navigator","workerString","__heic2any__worker","supportedMIMETypes","blobToDataURL","reader","FileReader","readAsDataURL","dataURItoBlob","dataURI","byteString","atob","mimeString","ia","imageDataToBlob","imageData","toType","quality","toBlob","imagesToGif","otherImageType","headers","decodeBuffer","imageDataArr","heic2any","gifInterval","multiple","blobs","dataURIs","resultingGif","readAsArrayBuffer","createHTML","forcedStringHTMLMethod","createSqrt","_sqrtNumber","isForced","inheritIfRequired","createNonEnumerableProperty","isPrototypeOf","getRegExpFlags","proxyAccessor","enforceInternalState","enforce","setSpecies","wellKnownSymbol","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","MATCH","NativeRegExp","stringIndexOf","IS_NCG","re1","re2","CORRECT_NEW","BASE_FORCED","handleDotAll","chr","brackets","handleNCG","named","names","ncg","groupid","groupname","RegExpWrapper","pattern","rawFlags","dotAll","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","groups","rawPattern","createPow","fraction","_pow","_powArray","_powMatrix","yFrac","yNum","ex","INFINITY","MAX_INTEGER","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toInteger","toFinite","remainder","createAdd","matAlgo04xSidSid","rest","2","1","0","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","lStart","rStart","keyL","keyR","expand","substitute","rip","aCallable","toObject","lengthOfArrayLike","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","getSortCompare","comparefn","itemsLength","items","arrayLength","createTrigUnit","hasBase","BASE_UNITS","ANGLE","createCtranspose","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","isExtensible","FAILS_ON_PRIMITIVES","it","Sha512","Ch","maj","sigma0","xl","sigma1","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","ch","eh","fh","hh","al","cl","dl","fl","gl","hl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","createCompare","matAlgo05xSfSf","createCompareNumber","createOct","createRandom","randomSeed","_random","_randomMatrix","getBlock","createLarger","createLargerNumber","encryptByte","byteParam","shiftIn","paddedMsg","publicExponent","createMatAlgo09xS0Sf","vb","createIsNaN","createOnes","_ones","hasBigNumbers","_normalize","_validate","PDFHexString","_super","asBytes","hex","hexLength","hexOffset","bytesOffset","byte","decodeText","decodeDate","asString","LessThan","GreaterThan","fromText","encoded","MillerRabin","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","setPublicKey","setPrivateKey","_priv","primeCache","checkPrime","simpleSieve","fermatTest","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","bn","__gen","generateKeys","_gen","getPublicKey","computeSecret","getPrime","front","getPrivateKey","getGenerator","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","TBSCertificate","implicit","X509Certificate","createDivideScalar","numeric","divideInto","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","sha224","createConj","complexEquals","createEqualScalar","MD5","createRow","_row","columnRange","isCallable","getSubstitution","REPLACE","searchValue","fromIndex","replaceAll","replaceValue","IS_REG_EXP","replacer","functionalReplace","searchLength","advanceBy","endOfLastMatch","createMin","_min","_smallest","createCorr","_corr","correlations","correlation","sumX","sumY","sumXY","sumXSquare","sumYSquare","isDataDescriptor","getOwnPropertyDescriptorModule","propertyKey","createForEach","_forEach","recurse","child","createFormat","objectKeys","allowHalfOpen","onEndNT","inL","inR","outL","outR","pc2table","sTable","sb","permuteTable","padSplit","group","createSubtract","sS","LN2","log1p","expm1","formatNumberToBase","prefixes","8","16","prefix","suffix","toEngineering","splitNumber","coefficients","rounded","roundDigits","newExp","missingZeros","expDiff","decimalIdx","decimalVal","splitValue","pp","lowerExp","upperExp","removed","DBL_EPSILON","EPSILON","nearlyEqual","copysign","signx","signy","createIntersect","_AAA","_AAAA","plane","_coerceArr","_3d","_4d","_intersectLinePlane","_2d","_intersect2d","_intersect3d","p1a","p1b","p2a","p2b","o1","o2","det","d20o11","d21o10","d20o21","d21o20","_intersect3dHelper","add1","add2","add3","z1","x3","y3","y4","z4","d1343","d4321","d1321","d4343","d2121","ta","tb","pax","pay","paz","pbx","pby","pbz","x1x","x2x","y1y","y2y","z1z","z2z","py","pz","createMatrixFromFunction","createIsZero","chaveVerificada","sigla","mostraMenu","mostraProposta","mostraListaDePropostas","parametroSimulacaoProposta","acessaReconhecimentoFacial","mostraTelaInicial","apresentaDocumentosObrigatorios","habilitaAplicativo","reconhecimentoDocumento","validarEnvioDocumentos","documentosValidados","mostraSelfie","termosCondicoes","model","$$v","termosDoContrato","abrirModalContrato","politicaDePrivacidade","termosPoliticaDePrivacidade","abrirModalPrivacidade","reconhecimentoFacial","finalizarProposta","apresentaSelfie","validarReconhecimentoFacial","mostraDeteccao","retornaReconhecimentoFacial","apresentaDeteccao","selfieCapturada","$event","setUserWaved","deteccaoMovimentos","retornaDeteccao","apresentaMenu","ok","textoTermosCondicoes","textoPoliticaPrivacidade","textoBotaoFinalizar","verificaSalvarProposta","calcular","parametro","habilitaReconhecimentoFacialOuDocumentacao","habilitarBotaoProximoCalcular","retornarAbaInicial","origemAplicativo","validationDadosSegurado","errors","placeholder","fetchResults","tomador","foto","nomeCompleto","cpf","situacaoPrevidenciaria","matricula","proposta","$set","segurado","staticStyle","validationTipoCalculo","ariaDescribedby","statusTipoCalculo","buscarTipoDeCalculo","optionsFormaCalculo","validationDadosConsignacao","valor","valorMaximoGeral","valor_minimo","formatarParaNumber","parametroValorMinimoEmprestimo","formaCalculo","formatarValor","parcela","parcelaMaxima","tamanho","regex","tipoCalculo","valorMaximoPrimeiraParcela","parametroValorMinimoParcela","valorDaDivida","formatarParseFloat","cleaveDate","userData","Instituto","calculandoParcela","calculandoEmprestimo","banco","option","validationTabelaParcelas","perPageParcelas","currentPageParcelas","itemsParcelas","fieldsParcelas","sortByParcelas","sortDescParcelas","sortDirectionParcelas","isBusy","tipoIndiceSelecionado","formatarData","vencimento","proxy","valorTotalParcelas","totalRowsParcelas","Banco","ValidationProvider","ValidationObserver","Cleave","FormWizard","TabContent","calcularIdade","Ripple","origem","dadosParaSalvar","isBusySegurado","calculou","$jwtDecode","localStorage","getItem","cadastroFinalizado","itemChange","bancoId","valorComIOF","parcelaComIOF","valorIOF","taxaIOF","compraDeDivida","valorTotal","debounceMilliseconds","exibeDadosSegurado","vinculoOpcoesCalculo","cleaveCurrency","numeral","numeralThousandsGroupStyle","delimiter","numeralDecimalMark","numeralDecimalScale","cleaveCPF","delimiters","blocks","datePattern","dados","pesquisar","tipoOpcoes","descricao","perPage","currentPage","statusOpcoes","_asyncToGenerator","_regeneratorRuntime","_callee","preparaComponenteParaAplicativo","_callee2","_context2","institutoSelecionado","valorMinimoEmprestimo","valorMinimoParcela","utilizaIOF","utilizaFloatFinanceiro","carregarBancos","aba","findClosestValue","closest","parcelaReal","recalcular","_this3","_callee3","iof","float","_yield$_this3$gerarPa","primeiraParcela","valorDaProposta","_valorTotal","_context3","calcularIOF","sent","formatarValorReais","valorPrimeiraParcela","quantidadeDiasIOF","valorBaseCalculo","valorDiarioIOF","valorEfetivoIOF","taxaDiariaIOF","taxaEfetivaIOF","valorTotalIOF","calcularFloat","valorComFloat","parcelaComFloat","valorDoFloat","gerarParcelas","valorFloat","_this4","_callee4","_context4","useJwt","response","codigo","nome","validarCalculoParcelas","parcelas","$message","_this5","_callee5","_this5$proposta$parce","valorDaParcela","resposta","_context5","abrupt","post","idSegurado","campo","mensagem","valorDoEmprestimo","formatarValorToText","valorEfetivo","taxa","toISOString","valorParcela","taxaEmprestimoMensal","mesVencimento","diaDeRepasse","diaFechamentoFolha","calcularValorMaisProximoParcela","_this6","_callee6","_yield$_this6$gerarPa","_context6","iofDiario","iofEfetivo","_this7","seguradoSelecionado","_this8","_callee7","_context7","opcoes","quantidadeDeOpcoes","tipoCalculoSAC","tipoCalculoPrice","tipoCalculoPosFixado","GetPesquisarIdadeCriteriosElegibilidade","_this9","_callee8","_context8","institutoId","categoria","idade","dataNascimento","_response$data","idadePermitida","_this10","_callee9","_context9","grupoFolhaId","$swal","customClass","confirmButton","buttonsStyling","grupoFolha","campoSeguradoSelecionado","nomeSocial","remuneracaoProventos","remuneracao","margemUtilizada","margemDisponivel","_this11","_callee11","_context11","tomRules","_ref3","_callee10","success","_this11$segurado","_context10","msgError","_x3","_x","_x2","_this12","_ref4","_callee12","_context12","tipRules","dadosRules","_x4","_x5","_this13","_ref5","_callee13","_context13","_valorDigitado$replac","valorDigitado","valorMaximo","valorDigitadoFloat","_x6","_x7","validationDadosIOF","_this14","_ref6","_callee14","_context14","dadosIofRules","emprestimoComIOF","emprestimoMaximo","_x8","_x9","_this15","_ref7","_callee15","_context15","bankRules","_x10","_x11","_this16","_callee16","_this16$itemsParcelas","saldoDevedor","_iterator","_step","_parcela$taxaindiceIn","_parcela$taxajurosAtu","_parcela$taxafundoGar","_parcela$taxataxaAdmi","_parcela$taxaindiceIn2","_parcela$taxajurosAtu2","_parcela$taxafundoGar2","_parcela$taxataxaAdmi2","initialValue","_context16","_createForOfIteratorHelper","taxaindiceInflacionarioPosFixado","taxajurosAtuariaisPosFixado","taxafundoGarantidorPosFixado","taxataxaAdministrativaPosFixado","accumulator","currentValue","Title","$toast","ToastificationContent","variant","msgSuccess","_this17","_callee17","_context17","preparaDadosParaSalvar","salvarContratoExterno","_this18","_callee18","navegadorUtilizado","dataToSave","_dataToSave","_context18","buscaCompetenciaTaxa","detectarNavegador","math","taxaDaCompetencia","competenciaDaTaxa","seguradoId","tipoDeCalculoUtilizado","indiceUtilizado","_excluded","_this19","_callee19","_context19","_this20","_callee21","_context21","_ref8","_callee20","_context20","competencia","_x12","_x13","_this21","_callee22","parametros","calculoIOf","_context22","aliquotaDiariaIOF","aliquotaEfetivaIOF","taxaSpreadPosFixado","quantidadeDias","_this22","_callee23","parametroFloat","_context23","instituto","tipoVencimentoParcela","diaFixoVencimentoParcela","valorString","_this23","nomeTomador","documentsListIsZero","tiposDocumentosFiltrados","modifiers","tirarFotoDoc","selecionarArquivo","getFileDoc","refInputEl","repeateAgain","removeItem","showFotoPreview","stopCameraStream","canvasWidth","canvasHeight","isCameraOpen","capture","checkTwoConfirm","toggleCamera","titlePreviewModal","closeModalPreviewAnexoDoc","imagemPreviewModal","createAnexoRegistroReconhecimentoFacial","tipo","registroReconhecimentoFacialId","anexoReconhecimentoFacialId","ocr","lixeira","origemDocumento","deleteAnexoRegistroReconhecimentoFacial","delete","getReconhecimentoFacial","includeAnexo","createRegistroReconhecimentoFacial","VerificaRostoDocumentoAnexadoAWS","VerificaRostoImagem","dataUrl","fileToBase64","file","convertHeicToJpeg","imagem","arquivo","imagemConvertidaBlobArray","imagemConvertidaBlob","resultado","File","compactImagem","handleFileChange","fileConverted","compressFile","compressedFile","compressImage","maxWidth","maxHeight","compactPDF","compressPDF","arrayBuffer","pdfData","load","pdfDoc","save","compressedPdfData","compressedPdfBlob","compressedData","compressedBlob","compressedPdfUrl","open","heightTransition","trHeight","trAddHeight","heightValue","trTrimHeight","trSetHeight","getMediaError","BForm","BFormGroup","BFormInput","BFormSelect","BButton","BRow","BCol","BCard","BDropdown","BDropdownItem","BModal","BSpinner","BFormFile","VBModal","mixins","fileIndividual","anexoRegistro","docAnexados","tiposDocumentos","showBotaRecad","iniciarReconhecimentoFacial","sweetAlert","Swal","fire","timer","timerProgressBar","didOpen","showLoading","willClose","clearInterval","allowOutsideClick","dadosSegurado","reconhecimentoFacialPost","selfie","addAppendices","_reconhecimentoFacial","carregarListaOpcoesDocumentos","anexoRegistroReconhecimentoFacial","doc","_this3$tiposDocumento","tDoc","_this3$docAnexados","annex","readFileAsync","checkDocSize","anexo","extensao","_anexo","info","convertDocument","_anexo2","refCanvasEl","toDataURL","clearRect","createAnexoRegistro","aux","_res$data$msg","_res$data","close","validFaceInDocument","erro","_arguments","webcam","delayed","_this9$userData$insti","_this9$userData","_this9$dados","nomeArquivo","idTiposDocumentos","isDocumentFront","files","tipoDocumento","ele","hide","removerTipoDocumentoFiltrado","s3url","openModalPreviewFoto","cabecalho","openPdfWindow","show","pdfWindow","encodeURI","offsetHeight","showCancelButton","confirmButtonText","cancelButtonText","cancelButton","isConfirmed","childNodes","startCameraStream","constraints","audio","mediaDevices","camera","erroMensage","tracks","track","FLASH_TIMEOUT","context","_e$target","extensoesPermitidas","dataURLtoFile","dataurl","filename","bstr","u8arr","novo","atual","hasSelfie","showRemoveSelfieButton","capturarFoto","limparFoto","_this$selfie","passaSelfie","modalSelfie","addSelfie","clearSelfie","finally","innerWidth","checkFileExtension","confirmarFoto","sendPhotoExtensionHeic","sendPhoto","dontPassSelfie","validFaceInSelfie","warning","_this11$userData$inst","_this11$userData","_this11$dados","listaDePropostas","fields","sortBy","sortDesc","sortDirection","statusFinanceiro","VisualizarContrato","positionFixed","visualizarProposta","formatarStatus","pageOptions","parcelasPropostas","fieldsParcelasContrato","FeatherIcon","totalRows","sortable","formatter","formatarValorPorcentagem","Pendente","PendenteDePagamento","PendenteDeDocumento","Consolidado","Quitado","Cancelado","Renegociada","buscarParcelas","retornarAbaMenu","filtros","showImage","videoPrint","finalizaEvent","videoLoaded","messageStart","animationJSON","showOlheBaixo","showOlheCima","showOlheDireita","showOlheEsquerda","handleVideoLoaded","webcamRunning","enableCam","BASE_PATH","configuration","basePath","axios","field","DUMMY_BASE_URL","assertParamExists","functionName","paramName","paramValue","RequiredError","setSearchParams","url","searchParams","URLSearchParams","append","serializeDataIfNeeded","requestOptions","nonString","needsSerialization","isJsonMime","toPathString","pathname","createRequestFunction","axiosArgs","globalAxios","axiosRequestArgs","request","AwsApiAxiosParamCreator","compareFaces","awsCompareFaces","localVarPath","localVarUrlObj","baseOptions","localVarRequestOptions","localVarHeaderParameter","localVarQueryParameter","headersFromBaseOptions","AwsApiFp","localVarAxiosParamCreator","localVarAxiosArgs","AwsApiFactory","localVarFp","param","apiKey","username","accessToken","formDataCtor","mime","jsonMime","Configuration","getToken","fetcherFactory","func","axiosIns","faces","awsFactory","faceNotFound","tooManyFaces","notTheSameFace","eitherFaces","Either","unmatchedFaces","quota","face","similarity","confidence","validations","FaceLandmarker","vision","FilesetResolver","DrawingUtils","LottieAnimation","posicionouQueixo","modalShow","faceLandmarker","demosSection","imageBlendShapes","videoBlendShapes","runningMode","enableWebcamButton","sorriu","levantou","piscou","abaixou","rotacionouDireito","rotacionouEsquerdo","faceAproved","lastVideoTime","predictWebcam","lottieOptions","path","autoPlay","loopDelayMin","loopDelayMax","speed","canvasElement","canvasCtx","hasGetUserMedia","disableCam","results","drawingUtils","_predictWebcam","toast","downloadAndConvertToBase64","_downloadAndConvertToBase","detectaAcao","_detectaAcao","drawBlendShapes","blendShapes","landmarks","categories","htmlMaker","shapes","pontoQueixo","ladoEsquerdo","ladoDireito","_component$selfie","_component$selfie2","_canvasElement","videoCaptured","fotoSelfie","inAws","_faces$validations","validateFaces","TaskEither","resetProcess","base64Data","require","responseType","radio","startTimeMs","setOptions","performance","detectForVideo","faceLandmarks","drawConnectors","FACE_LANDMARKS_TESSELATION","lineWidth","FACE_LANDMARKS_RIGHT_EYE","FACE_LANDMARKS_RIGHT_EYEBROW","FACE_LANDMARKS_LEFT_EYE","FACE_LANDMARKS_LEFT_EYEBROW","FACE_LANDMARKS_FACE_OVAL","FACE_LANDMARKS_LIPS","FACE_LANDMARKS_RIGHT_IRIS","FACE_LANDMARKS_LEFT_IRIS","faceBlendshapes","createFaceLandmarker","eyeBlinkLeft","categoryName","eyeBlinkRight","mouthSmileLeft","mouthSmileRight","score","innerText","filesetResolver","forVisionTasks","createFromOptions","modelAssetPath","delegate","outputFaceBlendshapes","numFaces","acao","showConfirmButton","GerarPropostaExterna","DocumentosObrigatorios","Selfie","modalDetectaRosto","habilitaAplicativoReconhecimentoFacial","habilitaAplicativoReconhecimentoDocumento","dadosProposta","idRegistroReconhecimentoFacial","apresentaTelaInicial","apresentaProposta","apresentaListaDePropostas","autenticando","isActiveTermosCondicoes","isActivePoliticaPrivacidade","selfieValidada","autenticarTomador","$bvModal","location","GetloginTomador","chave","_this2$userData","_this2$userData2","_this2$userData3","_this2$userData4","_this2$userData5","_this2$userData6","setToken","setRefreshToken","refreshToken","setItem","$ability","ability","habilitaAplicativoTermosCondicoes","TextoAplicativoTermosCondicoes","habilitaAplicativoPoliticaPrivacidade","TextoAplicativoPoliticaPrivacidade","mostraDocumentosObrigatorios","skipDocs","xor128","xorwow","xorshift7","xor4096","tychei","sr","createCount","eqStrict","createSetIntersect","identifier","isEncoderBuffer","isDecoderBuffer","isCompatible","restore","isEmpty","skip","fail","_reporterState","copyProps","SafeBuffer","webpackPolyfill","paths","children","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","getAuthTag","setAuthTag","setAAD","fin","createSetSymDifference","setDifference","defineBuiltIns","iterate","defineIterator","createIterResultObject","fastKey","internalStateGetterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","Prototype","AS_ENTRIES","previous","getEntry","boundFunction","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","createSchur","_schur","A0","QR","createUnitClass","fix","_number","_Fraction","valuelessUnit","skipAutomaticSimplification","dimensions","BASE_DIMENSIONS","skipWhitespace","isDigitDot","isDigit","revert","oldIndex","parseNumber","tentativeNumber","tentativeIndex","parseUnit","unitName","isValidAlpha","firstC","parseCharacter","toFind","isUnit","powerMultiplierCurrent","expectingUnit","powerMultiplierStack","powerMultiplierStackProduct","uStr","oldC","_findUnit","power","baseDim","UNIT_SYSTEMS","auto","allowNoUnits","_isDerived","_getNumberConverter","unitValue","unitPrefixValue","unitPower","_denormalize","prefixValue","UNITS","_name","_unit","prefixLen","prefixName","_prefix","getNumericIfUnitless","NONE","isValuelessUnit","_other","inverted","valThis","valOther","_numberConverter","nominalOffset","unitOffset","thisUnitValue","thisNominalOffset","thisUnitOffset","otherUnitValue","otherNominalOffset","otherUnitOffset","toNumeric","formatUnits","simplify","matchingBase","matchingUnit","proposedUnitList","currentUnitSystem","missingBaseDim","toSI","si","strNum","strDen","nNum","nDen","simp","isImaginary","VAR","VA","_bestPrefix","absValue","absUnitValue","bestPrefix","bestDiff","scientific","splitUnit","xNumeric","xRounded","xFixed","isNearlyEqual","testSum","PREFIXES","SHORT","da","Z","LONG","deca","hecto","kilo","mega","giga","tera","peta","exa","zetta","yotta","deci","centi","milli","micro","nano","pico","femto","atto","zepto","yocto","SQUARED","CUBIC","BINARY_SHORT_SI","BINARY_SHORT_IEC","Ki","Mi","Gi","Ti","Pi","Yi","BINARY_LONG_SI","BINARY_LONG_IEC","kibi","mebi","gibi","tebi","pebi","exi","zebi","yobi","BTU","MM","SHORTLONG","BINARY_SHORT","BINARY_LONG","MASS","LENGTH","TIME","CURRENT","TEMPERATURE","LUMINOUS_INTENSITY","AMOUNT_OF_SUBSTANCE","FORCE","SURFACE","VOLUME","ENERGY","POWER","PRESSURE","ELECTRIC_CHARGE","ELECTRIC_CAPACITANCE","ELECTRIC_POTENTIAL","ELECTRIC_RESISTANCE","ELECTRIC_INDUCTANCE","ELECTRIC_CONDUCTANCE","MAGNETIC_FLUX","MAGNETIC_FLUX_DENSITY","FREQUENCY","BIT","BASE_UNIT_NONE","UNIT_NONE","meter","inch","foot","yard","mile","link","rod","angstrom","in","mi","li","mil","m2","sqin","sqft","sqyd","sqmi","sqrd","sqch","sqmil","acre","hectare","m3","litre","cuin","cuft","cuyd","teaspoon","tablespoon","drop","gtt","minim","fluiddram","fluidounce","gill","cc","cup","pint","quart","gallon","beerbarrel","oilbarrel","hogshead","fldr","floz","gi","cp","pt","qt","gal","bbl","obl","gram","ton","tonne","grain","dram","ounce","poundmass","hundredweight","stick","stone","gr","dr","oz","lbm","cwt","sec","minute","hour","day","week","month","year","decade","century","millennium","hertz","reciprocal","Hz","rad","radian","deg","degree","grad","gradian","cycle","arcsec","arcmin","ampere","degC","degF","degR","kelvin","celsius","fahrenheit","rankine","mol","mole","candela","newton","dyn","dyne","lbf","poundforce","kip","kilogramforce","joule","erg","Wh","eV","electronvolt","watt","hp","Pa","atm","bar","torr","mmHg","mmH2O","cmH2O","coulomb","farad","volt","ohm","henry","siemens","weber","Wb","tesla","ALIASES","meters","inches","feet","yards","miles","links","rods","chains","angstroms","litres","liter","liters","teaspoons","tablespoons","minims","fluiddrams","fluidounces","gills","cups","pints","quarts","gallons","beerbarrels","oilbarrels","hogsheads","gtts","grams","tons","tonnes","grains","drams","ounces","poundmasses","hundredweights","sticks","lb","lbs","kips","kgf","acres","hectares","sqfeet","sqyard","sqmile","sqmiles","mmhg","mmh2o","cmh2o","seconds","secs","minutes","mins","hours","hr","hrs","days","weeks","years","decades","centuries","millennia","radians","degrees","gradians","cycles","arcsecond","arcseconds","arcminute","arcminutes","BTUs","watts","joules","amperes","amps","amp","coulombs","volts","ohms","farads","webers","teslas","electronvolts","moles","calculateAngleValues","cgs","us","_key2","setUnitSystem","getUnitSystem","typeConverters","_name2","_unit2","alias","_key3","assertUnitNameIsValid","override","_key4","deleteUnit","aliases","lastUnit","_key5","createUnitSingle","definition","baseName","defUnit","newUnit","anyMatch","_newBaseUnit","newBaseUnit","_i8","aliasName","_alias","_key6","MontCurve","i4","a24","precompute","aa","bb","diffAdd","jumlAdd","createClone","$trimStart","forcedStringTrimMethod","numberTag","MAXBITS","ENOUGH_LENS","ENOUGH_DISTS","CODES","LENS","DISTS","lbase","lext","dbase","dext","lens_index","table","table_index","work","incr","low","here_bits","here_op","here_val","used","huff","base_index","Buf16","offs","extra_index","createResultSet","ResultSet","entries","isResultSet","Algorithm","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","entropy","entropyEnc","nonceEnc","pers","persEnc","_hmac","hmac","kmac","reseed","addEnc","generate","incr32","chunkNum","createCbrt","_cbrtComplex","_cbrtUnit","arg3","principal","third","_result","createGamma","gammaComplex","gammaPval","twoPiSqrt","tpow","expt","bigFactorial","base64url","jwsSecuredInput","encodedPayload","jwsSign","globalThis","createCos","RotationTypes","asPDFName","asPDFNumber","asNumber","LineCapStyle","degreeAngle","Degrees","angle","Radians","degreesToRadians","radiansToDegrees","toRadians","rotation","toDegrees","reduceRotation","quadrants","adjustDimsForRotation","dims","rotateRectangle","rectangle","borderWidth","clip","ClipNonZero","concatTransformationMatrix","ConcatTransformationMatrix","translate","xPos","yPos","rotateRadians","rotateDegrees","skewRadians","xSkewAngle","ySkewAngle","setDashPattern","dashArray","dashPhase","SetLineDashPattern","LineJoinStyle","setLineCap","SetLineCapStyle","TextRenderingMode","setGraphicsState","SetGraphicsStateParams","pushGraphicsState","PushGraphicsState","popGraphicsState","PopGraphicsState","setLineWidth","SetLineWidth","appendBezierCurve","AppendBezierCurve","appendQuadraticCurve","CurveToReplicateInitialPoint","closePath","ClosePath","moveTo","MoveTo","lineTo","LineTo","stroke","StrokePath","FillNonZero","fillAndStroke","FillNonZeroAndStroke","endPath","EndPath","nextLine","NextLine","showText","ShowText","beginText","BeginText","endText","EndText","setFontAndSize","SetFontAndSize","setLineHeight","lineHeight","SetTextLineHeight","ColorTypes","setTextMatrix","SetTextMatrix","rotateAndSkewTextRadiansAndTranslate","rotationAngle","drawObject","DrawObject","setFillingGrayscaleColor","gray","NonStrokingColorGray","setStrokingGrayscaleColor","StrokingColorGray","setFillingRgbColor","green","blue","NonStrokingColorRgb","setStrokingRgbColor","StrokingColorRgb","setFillingCmykColor","cyan","magenta","yellow","NonStrokingColorCmyk","setStrokingCmykColor","StrokingColorCmyk","beginMarkedContent","BeginMarkedContent","endMarkedContent","EndMarkedContent","TextAlignment","grayscale","Grayscale","rgb","RGB","cmyk","CMYK","setFillingColor","setStrokingColor","componentsToColor","comps","scale","colorToComponents","cx","cy","sy","Map","cmd","curArg","foundDecimal","path_1","commands","cmds","runners","solveArc","coords","ry","rot","large","sweep","ey","segs","arcToSegments","segs_1","seg","bez","segmentToBezier","rotateX","ox","oy","th","sinTh","cosTh","pl","a00","a01","a10","a11","x0","y0","sfactorSq","sfactor","yc","th0","th1","thArc","segments","th2","th3","cx1","cy1","thHalf","svgPathToOperators","drawLinesOfText","lines","operators","graphicsState","rotate","xSkew","ySkew","drawPage","xScale","yScale","drawLine","thickness","lineCap","drawRectangle","borderLineCap","borderDashArray","borderDashPhase","KAPPA","drawEllipsePath","ye","xm","ym","drawEllipseCurves","centerX","centerY","drawEllipse","drawSvgPath","drawCheckMark","p2x","p2y","p3y","p3x","p1x","p1y","rotateInPlace","drawCheckBox","outline","filled","checkMarkSize","checkMark","markColor","drawRadioButton","outlineScale","dotColor","drawButton","background","drawTextLines","textLines","textColor","drawTextField","clipX","clipY","clipWidth","clipHeight","clippingArea","markedContent","drawOptionList","highlights","selectedLines","selectedColor","EncryptedPDFError","FontkitNotRegisteredError","ForeignPageError","RemovePageFromEmptyDocumentError","NoSuchFieldError","UnexpectedFieldTypeError","expectedType","actualType","MissingOnValueCheckError","onValue","FieldAlreadyExistsError","InvalidFieldNamePartError","namePart","FieldExistsAsNonTerminalError","RichTextFieldReadError","fieldName","CombedTextLayoutError","lineLength","cellCount","ExceededMaxLengthError","textLength","maxLength","InvalidMaxLengthError","ImageAlignment","MIN_FONT_SIZE","MAX_FONT_SIZE","computeFontSize","bounds","linesUsed","lineIdx","lineLen","spaceInLineRemaining","isLastWord","widthOfWord","widthOfTextAtSize","heightAtSize","totalHeight","computeCombedFontSize","cellWidth","cellHeight","tooLong","descender","lastIndexOfWhitespace","splitOutLines","lastWhitespaceIdx","encodeText","layoutMultilineText","alignment","minX","minY","maxX","maxY","prevRemainder","Left","Center","Right","layoutCombedText","cells","cellOffset","charOffset","char","charLength","cellCenter","layoutSinglelineText","normalizeAppearance","appearance","normal","tfRegex","getDefaultFontSize","getDefaultAppearance","daMatch","defaultFontSize","colorRegex","getDefaultColor","c3","c4","colorSpace","updateDefaultAppearance","setDefaultAppearance","defaultCheckBoxAppearanceProvider","checkBox","widget","widgetColor","fieldColor","acroField","getRectangle","getAppearanceCharacteristics","bs","getBorderStyle","getWidth","getRotation","black","getBorderColor","normalBackgroundColor","getBackgroundColor","downBackgroundColor","down","defaultRadioGroupAppearanceProvider","radioGroup","defaultButtonAppearanceProvider","widgetFontSize","fieldFontSize","captions","getCaptions","normalText","downText","_f","normalLayout","downLayout","defaultTextFieldAppearanceProvider","textField","getText","isCombed","isMultiline","getAlignment","getMaxLength","defaultDropdownAppearanceProvider","dropdown","getSelected","defaultOptionListAppearanceProvider","optionList","getOptions","isSorted","PDFEmbeddedPage","embedder","alreadyEmbedded","factor","embed","embedIntoContext","PDFFont","modified","fontName","heightOfFontAtSize","sizeAtHeight","sizeOfFontAtHeight","getCharacterSet","supportedCodePoints","characterSet","PDFImage","scaleToFit","imgWidthScale","imgHeightScale","embedTask","StandardFonts","assertFieldAppearanceOptions","PDFField","getName","getFullyQualifiedName","isReadOnly","hasFlag","ReadOnly","enableReadOnly","setFlagTo","disableReadOnly","isRequired","Required","enableRequired","disableRequired","isExported","NoExport","enableExporting","disableExporting","needsAppearancesUpdate","defaultUpdateAppearances","_font","markAsDirty","getForm","markFieldAsDirty","markAsClean","markFieldAsClean","isDirty","fieldIsDirty","createWidget","degreesAngle","caption","hidden","pageRef","page","rect","setRectangle","setP","ac","getOrCreateAppearanceCharacteristics","setBackgroundColor","setRotation","setCaptions","setBorderColor","getOrCreateBorderStyle","setWidth","Print","Hidden","Invisible","newDa","updateWidgetAppearanceWithFont","rollover","updateWidgetAppearances","createAppearanceStream","updateOnOffWidgetAppearance","createAppearanceDict","setNormalAppearance","setRolloverAppearance","removeRolloverAppearance","setDownAppearance","removeDownAppearance","Resources","Font","formXObject","BBox","streamRef","register","createImageAppearanceStream","adj","imageDims","imageName","addRandomSuffix","XObject","onStreamRef","offStreamRef","appearanceDict","PDFCheckBox","acroCheckBox","check","getOnValue","setValue","uncheck","isChecked","getValue","addToPage","widgetRef","addWidget","setAppearanceState","updateWidgetAppearance","addAnnot","widgets","getWidgets","getAppearanceState","getAppearances","updateAppearances","provider","apProvider","appearances","PDFDropdown","acroComboBox","rawOptions","display","getValues","optionObjects","addOptions","optionsArr","existingOptions","newOptions","select","merge","validOptions","hasCustomOption","enableEditing","enableMultiselect","existingValues","setValues","setFontSize","isEditable","Edit","disableEditing","Sort","enableSorting","disableSorting","isMultiselect","MultiSelect","disableMultiselect","isSpellChecked","DoNotSpellCheck","enableSpellChecking","disableSpellChecking","isSelectOnClick","CommitOnSelChange","enableSelectOnClick","disableSelectOnClick","getDefaultFont","hasAppearances","PDFOptionList","acroListBox","PDFRadioGroup","acroRadioButton","exportValues","getExportValues","exportOptions","onValues","getOnValues","onOptions","isOffToggleable","NoToggleToOff","enableOffToggling","disableOffToggling","isMutuallyExclusive","RadiosInUnison","enableMutualExclusion","disableMutualExclusion","addOptionToPage","apStateValue","addWidgetWithOpt","PDFSignature","acroSignature","PDFTextField","acroText","isRichFormatted","setText","disableRichFormatting","removeValue","quadding","getQuadding","setAlignment","setQuadding","setMaxLength","removeMaxLength","setImage","fieldAlignment","Multiline","enableMultiline","disableMultiline","isPassword","Password","enablePassword","disablePassword","isFileSelector","FileSelect","enableFileSelection","disableFileSelection","isScrollable","DoNotScroll","enableScrolling","disableScrolling","Comb","enableCombing","disableCombing","RichText","enableRichFormatting","ParseSpeeds","PDFForm","acroForm","embedDefaultFont","embedStandardFont","Helvetica","dirtyFields","Set","defaultFontCache","populatedBy","hasXFA","deleteXFA","getFields","allFields","getAllFields","convertToPDFField","getFieldMaybe","getField","getButton","getCheckBox","getDropdown","getOptionList","getRadioGroup","getSignature","getTextField","createButton","nameParts","splitFieldName","findOrCreateNonTerminals","nonTerminal","setPartialName","terminal","addFieldToParent","createCheckBox","createDropdown","comboBox","createOptionList","listBox","createRadioGroup","radioButton","createTextField","updateFieldAppearances","lenFields","lenWidgets","findWidgetPage","findWidgetAppearanceRef","xObjectKey","newXObject","pushOperators","removeField","pages","removeAnnot","fieldKids","normalizedEntries","Kids","kidsCount","childIndex","fieldRef","access","getPages","getObjectRef","findPageForAnnotationRef","refOrDict","getNormalAppearance","name_1","partialNames","parent_1","parentRef","findNonTerminal","setParent","nodeRef","addField","partialName","getPartialName","fullyQualifiedName","Fields","PageSizes","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C0","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","RA0","RA1","RA2","RA3","RA4","SRA0","SRA1","SRA2","SRA3","SRA4","Executive","Folio","Legal","Letter","Tabloid","BlendMode","PDFEmbeddedFile","Names","EmbeddedFiles","EFNames","AF","catalog","fileName","PDFJavaScript","Javascript","JSNames","scriptName","JavaScriptEmbedder","script","jsActionDict","Type","JS","PDFDocument","ignoreEncryption","updateMetadata","defaultWordBreaks","computePages","Pages","traverse","pageMap","getOrCreateForm","getOrCreateAcroForm","trailerInfo","Root","isEncrypted","Encrypt","pageCache","formCache","fonts","embeddedPages","embeddedFiles","javaScripts","updateInfoDict","pdf","parseSpeed","throwOnInvalidObject","capNumbers","Slow","forBytesWithOptions","parseDocument","pageTree","pageTreeRef","withContext","withContextAndPages","registerFontkit","fontkit","form","getTitle","getInfoDict","assertIsLiteralOrHexString","getAuthor","author","Author","getSubject","Subject","getKeywords","keywords","Keywords","getCreator","creator","Creator","getProducer","producer","Producer","getCreationDate","creationDate","CreationDate","getModificationDate","modificationDate","ModDate","setTitle","showInWindowTitleBar","prefs","getOrCreateViewerPreferences","setDisplayDocTitle","setAuthor","setSubject","setKeywords","setCreator","setProducer","setLanguage","language","setCreationDate","fromDate","setModificationDate","getPageCount","pageCount","getPage","getPageIndices","removePage","removeLeafNode","addPage","insertPage","setSize","insertLeafNode","invalidate","copyPages","srcDoc","indices","copier","srcPages","copiedPages","srcPage","copiedPage","pdfCopy","contentPages","addJavaScript","nextRef","javaScript","attach","attachment","embeddedFile","mimeType","description","afRelationship","FileEmbedder","embedFont","customName","features","pdfFont","assertFontkit","embedJpg","jpg","pdfImage","embedPng","png","embedPdf","embedPages","embedPage","boundingBox","transformationMatrix","embeddedPage","boundingBoxes","transformationMatrices","currPage","nextPage","maybeCopyPage","box","embedAll","useObjectStreams","addDefaultPage","objectsPerTick","Writer","forContext","serializeToBuffer","saveAsBase64","dataUri","otherOptions","annotations","Annots","embeddables","pdfLib","existingInfo","Info","newInfo","pdfObject","PDFPage","leafNode","Rotate","mediaBox","getMediaBox","setMediaBox","cropBox","getCropBox","bleedBox","getBleedBox","trimBox","getTrimBox","artBox","getArtBox","hasCropBox","CropBox","hasBleedBox","BleedBox","hasTrimBox","TrimBox","hasArtBox","ArtBox","setCropBox","setBleedBox","setTrimBox","setArtBox","getSize","setHeight","MediaBox","getHeight","asRectangle","translateContent","getContentStream","createContentStream","startRef","endRef","wrapContentStreams","scaleContent","scaleAnnotations","annots","annot","scaleAnnot","resetPosition","setFont","fontKey","newFontDictionary","setFontColor","getPosition","moveDown","yDecrease","moveUp","yIncrease","moveLeft","xDecrease","moveRight","xIncrease","operator","contentStream","drawText","wordBreaks","blendMode","setOrEmbedFont","oldFont","newFont","newFontKey","textWidth","encodedLines","graphicsStateKey","maybeEmbedGraphicsState","resetFont","borderOpacity","_m","_o","drawSquare","drawCircle","oldFontKey","getFont","useExisting","contentStreamRef","addContentStream","ca","CA","BM","newExtGState","selectors","scalePDFNumbers","inkLists","dummyRef","pageLeaf","withContextAndParent","PDFButton","acroPushButton","InternalMetadataModule","checkCorrectnessOfIteration","setToStringTag","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","enable","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","createQuantileSeq","partitionSelect","smallerEq","_quantileSeqProbNumber","prob","_quantileSeqDim","sorted","_quantileSeqProbCollection","probOrN","probArr","dataArr","_quantileSeq","nPlusOne","probOrNArr","integerPart","fracPart","expiredAt","createBitOr","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","product","collection","collectionStrong","EC","RSA_PKCS1_PADDING","hashType","signType","ecSign","dsaSign","curveId","keyFromPrivate","toDER","bits2int","kv","getKey","makeKey","makeR","hlen","hbits","bits2octets","obits","_typeof","createSqrtm","_maxIterations","_tolerance","_denmanBeavers","Yk","createInv","_inv","ABig","rBig","Ac","Bc","Ar","Br","zlib_inflate","GZheader","Inflate","inflateInit2","inflateGetHeader","inflateSetDictionary","inflate","inflator","inflateRaw","next_out_utf8","utf8str","allowBufError","binstring2buf","utf8border","buf2string","inflateEnd","ungzip","Sha256","Sha224","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","zero2","createDet","_det","rowIndices","k_","piv","piv_","i_","createCompareText","Ds","createCompareNatural","compareBooleans","_compareNatural","typeX","typeY","matTypes","compareMatricesAndArrays","compareComplexNumbers","compareArrays","compareObjects","keysX","keysY","_false","fineStructure","_Infinity","LOG10E","_NaN","_null","phi","SQRT1_2","sackurTetrode","_true","efimovFactor","SQRT2","unaryPlus","weakMixingAngle","acsc","asech","bitNot","combinations","cot","cube","erf","getMatrixDataType","LOG2E","lgamma","oct","pickRandom","print","square","acsch","asec","bin","combinationsWithRep","csch","isPrime","randomInt","sech","sparse","matrixFromFunction","squeeze","xgcd","ctranspose","hasNumericValue","kron","largerEq","leftShift","nthRoot","ones","rightArithShift","unequal","bitAnd","bitXor","catalan","cumsum","deepEqual","distance","equalText","ImmutableDenseMatrix","lsolveAll","matrixFromRows","nthRoots","rightLogShift","zpk2tf","bitOr","composition","cross","dotMultiply","FibonacciHeap","intersect","invmod","lcm","setCartesian","setDistinct","setIsSubset","setPowerset","setMultiplicity","setSymDifference","Spa","pinv","setIntersect","setUnion","sqrtm","vacuumImpedance","wienDisplacement","atomicMass","bohrMagneton","boltzmann","conductanceQuantum","deuteronMass","dotPow","electricConstant","elementaryCharge","expm","faraday","gravitationConstant","hartreeEnergy","ifft","klitzing","loschmidt","magneticConstant","molarMass","molarPlanckConstant","neutronMass","nuclearMagneton","planckCharge","planckLength","planckTemperature","protonMass","quantumOfCirculation","reducedPlanckConstant","rydberg","secondRadiation","speedOfLight","stefanBoltzmann","thomsonCrossSection","avogadro","bohrRadius","electronMass","firstRadiation","gravity","inverseConductanceQuantum","magneticFluxQuantum","molarMassC12","multinomial","permutations","planckMass","polynomialRoot","solveODE","bellNumbers","eigs","fermiCoupling","gasConstant","mean","molarVolume","planckConstant","quantileSeq","variance","classicalElectronRadius","median","corr","freqz","mad","std","zeta","rotationMatrix","kldivergence","planckTime","sylvester","lyap","createComposition","bufferEqual","formatEcdsa","MSG_INVALID_ALGORITHM","MSG_INVALID_SECRET","MSG_INVALID_VERIFIER_KEY","MSG_INVALID_SIGNER_KEY","supportsKeyObjects","createPublicKey","checkIsPublicKey","typeError","asymmetricKeyType","export","checkIsPrivateKey","checkIsSecretKey","fromBase64","toBase64","template","errMsg","bufferOrString","normalizeInput","createHmacSigner","createHmacVerifier","computedSig","createKeySigner","signer","createKeyVerifier","verifier","createPSSKeySigner","RSA_PKCS1_PSS_PADDING","saltLength","RSA_PSS_SALTLEN_DIGEST","createPSSKeyVerifier","createECDSASigner","derToJose","createECDSAVerifer","joseToDer","createNoneSigner","createNoneVerifier","signerFactories","hs","es","verifierFactories","brorand","Rand","_randbelow","min_bytes","_randrange","rone","rn1","getDivisor","XorGen","bot","createImmutableDenseMatrixClass","_max","isImmutableDenseMatrix","STR_APPLY_OK","STR_APPLY_UIA_OK","__","_utf8len","m_pos","str_len","buf_len","c_len","utf16buf","createAsech","xInv","MAX_ALLOC","createMax","_largest","_normalizeEncoding","retried","normalizeEncoding","nenc","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","utf8End","createConcat","prevDim","asMatrix","matrices","ripemd","ripemd160","$find","addToUnscopables","FIND","SKIPS_HOLES","createLog2","_log2Complex","newX","Sha1","rotl1","BAD","TYPE","_in","_out","beg","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","toWidth","toHeight","grayScale","sepia","vReverse","hReverse","settings","listenEvents","imageLoaded","imageFault","checkSizes","compress","imageReceiver","compressWithQuality","compressAddOn","naturalAR","naturalWidth","naturalHeight","compressedAR","fillRect","strictResize","stretchResize","imageFilters","imageReverse","compressedCanv","firstCompress","compressedW","compressedH","fitWidth","fitHeight","createImageData","ImageCompressor","createAsinh","createSubtractScalar","createAcsc","bignum","PDFString","octal","escaped","pushByte","nextChar","Newline","CarriageReturn","Tab","Backspace","FormFeed","LeftParen","RightParen","BackSlash","Zero","Seven","xflags","os","extra_len","comment","hcrc","validateArgumentsLength","c2i","disallowed","whitespaces","finalEq","$atob","BASIC","NO_SPACES_IGNORE","NO_ENCODING_CHECK","NO_ARG_RECEIVING_CHECK","WRONG_ARITY","xorTest","calcIv","ck","_finID","toPad","ivBits","_ghash","_alen","_authTag","_called","rump","createAtan","tags","overrided","reverseArgs","useDecoder","_wrap","stateProps","cstate","_useArgs","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_encodeChoice","_encodePrimitive","tailRec","startWith","createSetUnion","sameValue","regExpExec","SEARCH","nativeSearch","regexp","searcher","previousLastIndex","createCatalan","createPartitionSelect","asc","_partitionSelect","quickSelect","quot","attribute","createDenseMatrixClass","preprocess","_getSubmatrix","_set","_unused","_fit","_setSubmatrix","newSize","changed","isDenseMatrix","indexI","col","vi","PEMEncoder","createExp","animationData","renderer","anim","this$1","container","animation","loadAnimation","normalizeComponent","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","$root","$options","shadowRoot","originalRender","existing","__vue_script__","__vue_render__","__vue_staticRenderFns__","_withStripped","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_component__","installed","plugin","GlobalVue","createDistance","xCoeff","yCoeff","_distancePointLine2D","_objectToArray","lineTwoPtY","lineOnePtY","lineOnePtX","lineTwoPtX","pointX","pointY","_parametricLine","_distancePointLine3D","_containsOnlyNumbers","_euclideanDistance","xCoeffLine","yCoeffLine","pointZ","z0","pointOneX","pointOneY","pointTwoX","pointTwoY","pointOneZ","pointTwoZ","_pairwise","_distancePairwise","_isNumber","aI","den","vectorSize","pointA","pointB","createBoolean","lcase","total_in","total_out","adler","PADDING","padBuff","strseed","createUnequal","createUnequalNumber","_unequal","MAX_OCTET","CLASS_UNIVERSAL","PRIMITIVE_BIT","TAG_SEQ","TAG_INT","ENCODED_TAG_SEQ","ENCODED_TAG_INT","base64Url","signatureAsBuffer","maxEncodedParamLength","inputLength","seqLength","rLength","rOffset","sLength","sOffset","rPadding","sPadding","countPadding","needsSign","signatureBytes","rsBytes","shortLength","createTypedArrayConstructor","endsWith","endPosition","tagClass","3","SHA512","SHA384","createSmaller","createSmallerNumber","fromOption","fromPredicate","onFalse","fromOptionK","fromOptionF","chainOptionK","fromOptionKF","fromEitherK","chainEitherK","fromEitherKF","filterOrElse","tapEither","tapM","mapObject","deepExtend","deepStrictEqual","deepFlatten","nestedObject","flattenedObject","_deepFlatten","lazy","valueResolver","_uninitialized","isLegacyFactory","pickShallow","properties","DERDecoder","PEMDecoder","_switch","createMatrixFromColumns","colLength","createCsch","createResize","_resizeString","defaultChar","MethodNotImplementedError","methodName","PrivateConstructorError","UnexpectedObjectTypeError","expectedTypes","UnsupportedEncodingError","ReparseError","MissingPageContentsEmbeddingError","MissingCatalogError","UnrecognizedStreamTypeError","streamType","contructor","PageEmbeddingMismatchedContextError","PDFArrayIsNotRectangleError","InvalidPDFDateStringError","InvalidTargetIndexError","targetIndex","Count","CorruptPageTreeError","operation","IndexOutOfBoundsError","InvalidAcroFieldValueError","MultiSelectValueError","MissingDAEntryError","MissingTfOperatorError","NumberParsingError","PDFParsingError","details","NextByteAssertionError","expectedByte","actualByte","PDFObjectParsingError","PDFInvalidObjectParsingError","PDFStreamParsingError","UnbalancedParenthesisError","StalledParserError","MissingPDFHeaderError","MissingKeywordError","keyword","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","notOk","undef","NOT_TYPED_FUNCTION","_types","anyType","isAny","typeMap","typeList","nConversions","findType","typeName","otherName","types","beforeSpec","beforeIndex","newTypes","conversionsTo","affectedTypes","clearConversions","findTypeNames","isTypedFunction","findSignature","exact","stringSignature","parseSignature","canonicalSignature","stringifyParams","_typedFunctionData","signatureMap","nParams","remainingSignatures","candidate","want","filteredSignatures","possibility","have","getParamAtIndex","restParam","hasAny","haveTypes","paramTypeSet","wtype","implementation","conversions","fromType","parseParam","typeDefs","exactTypes","typeIndex","conversion","conversionIndex","hasConversion","expandParam","typeNames","matchingConversions","availableConversions","newName","convertibleTypes","typeSet","rawSignature","rawParams","parsedParam","hasRestParam","compileTest","test0","test1","tests","compileTests","initial","varIndex","lastTest","testRestParam","getTypeSetAtIndex","isExactType","mergeExpectedParams","paramSet","matchingSignatures","nextMatchingDefs","actualTypes","lengths","expectedLength","argTypes","getLowestTypeIndex","getLowestConversionIndex","compareParams","param1","param2","typeDiff","convDiff","compareSignatures","signature1","signature2","pars1","pars2","last1","last2","hasRest1","hasRest2","par","any1","conv1","any2","conv2","lengthCriterion","comparisons","tc","thisComparison","knownTypes","newMatch","compileArgsPreprocessing","fnConvert","compiledConversions","compileArgConversion","fnPreprocess","conversion0","conversion1","splitParams","_splitParams","paramsSoFar","resultingParams","nextParam","conflicting","params1","params2","typeSet1","typeSet2","overlap","restParam1","restParam2","clearResolutions","functionList","isReferToSelf","isReferTo","makeReferTo","references","collectResolutions","resolvedReferences","reference","resolution","resolveReferences","resolvedFunctions","isResolved","leftUnresolved","nothingResolved","validateDeprecatedThis","signaturesMap","deprecatedThisRegex","createTypedFunction","rawSignaturesMap","warnAgainstDeprecatedThis","parsedParams","originalFunctions","preliminarySignatures","functionIndex","conversionParams","sp","spName","theTypedFn","internalSignatureMap","ok0","ok1","ok2","ok3","ok4","ok5","allOk","test00","test10","test20","test30","test40","test50","test01","test11","test21","test31","test41","test51","fn0","fn1","fn2","fn3","fn4","fn5","len0","len3","len4","len5","iStart","iEnd","fns","generic","arg0","arg1","_onMismatch","findInArray","objectOrFn","checkName","nameSoFar","getObjectName","mergeSignatures","sourceFunction","destFunction","saveTyped","_validateConversion","maybeName","allSignatures","thisName","theseSignatures","argument","throwMismatchError","_findType","addType","beforeObjectTest","before","addConversion","removeConversion","existingConversion","tf","argList","sigs","typedFunction","combinationsNumber","nMinusk","answer","firstnumerator","nextdivisor","lastdivisor","nextnumerator","createCombinations","createMatAlgo12xSfs","throwIfNotStringOrBuffer","HashBase","_block","_blockSize","_blockOffset","_length","_finalized","EDDSA","pointClass","keyFromSecret","hashInt","messagePrefix","s_","makeSignature","keyFromPublic","SG","RplusAh","intFromLE","normed","xIsOdd","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","createTypedArrayFactory","Float32Array","Int16Array","Uint8ClampedArray","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","userAgent","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","tOfVal","absArr","defaultCurveSegments","degToRads","roundCorner","roundValues","bmRnd","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","_workerSelf","createWorker","setupWorker","dataFunctionManager","completeLayers","layers","layerData","jLen","kLen","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","completeText","completeChars","assets","findComp","comp","__used","ks","checkVersion","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","checkChars","charData","st","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","completeData","__complete","moduleOb","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseText","loadAsset","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","send","onComplete","onError","createProcess","processId","loadData","completeAnimation","ImagePreloader","proxyImage","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","setInterval","getBBox","_imageLoaded","ob","setAttributeNS","_elementHelper","createImgData","createFootageData","footageData","_footageLoaded","loadAssets","_createImageData","setPath","setAssetsPath","getAsset","loadedImages","loadedFootages","setCacheType","elementHelper","ImagePreloaderFactory","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","keysCount","_markers","markers","_marker","markerData","tm","duration","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","_width","_height","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","animItem","subtractPlayingCount","registerAnimation","elem","getRegisteredAnimations","lenAnims","animations","addPlayingCount","activate","nowTime","elapsedTime","searchAnimations","standalone","animElements","getElementsByClassName","getElementsByTagName","unfreeze","BezierFactory","getBezierEasing","beziers","bezEasing","BezierEasing","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","_p","_mSampleValues","_precomputed","mY1","mY2","_getTForX","_calcSampleValues","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","pooling","_double","poolFactory","initialLength","_release","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","segmentsLengthPool","totalLength","bezFunction","pointOnLine2D","det1","pointOnLine3D","diffDist","dist1","dist2","dist3","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","getPointInSegment","percent","ptX","ptY","bezierSegmentPoints","getNewSegment","startPerc","endPerc","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quatStart","createQuaternion","quatEnd","quaternionToEuler","slerp","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","quat","qx","qy","qz","qw","heading","attitude","bank","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shapesEqual","shape1","shape2","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","_cw","StarShapeProperty","StarShapePropertyFactory","ir","convertToPath","convertStarToPath","convertPolygonToPath","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","getShapeProp","dataProp","getConstructorFunction","getKeyframedConstructorFunction","_cos","_sin","_tan","_rnd","mCos","mSin","rotateY","rotateZ","shear","skew","skewFromAxis","sz","setTransform","tx","tz","e2","f2","g2","i2","j2","_identityCalculated","e1","f1","g1","h1","i1","j1","matrixProps","isIdentity","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","bodymovin","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShapeInCollection","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","applyToMatrix","rz","forceRender","_isDirty","precalculateMatrix","appliedTransformations","autoOriented","getValueAtTime","autoOrient","_addDynamicProperty","TransformProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","splitData","boxIntersect","intersectsImpl","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rotatedVector","getProjectingAngle","prevIndex","nextIndex","prevPoint","nextPoint","pVector","zigZagCorner","frequency","pointType","prevDist","nextDist","zigZagSegment","normalAngle","linearOffset","offsetSegment","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styleName","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","ix","reloadShapes","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","currentV","currentI","currentO","closerV","newPosPerc","derivative","tcusp","p10","p11","p20","p21","shapeSegmentInverted","pointsType","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","maxWaitingTime","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","CANCEL_TAG_CODE_POINT","A_TAG_CODE_POINT","Z_TAG_CODE_POINT","VARIATION_SELECTOR_16_CODE_POINT","ZERO_WIDTH_JOINER_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","trimFontOptions","familyArray","enabledFamilies","setUpNode","family","fontVariant","fontStyle","letterSpacing","checkLoadedFonts","loadedCount","loaded","fOrigin","monoCase","sansCase","checkLoadedFontsBinded","setIsLoadedBinded","createHelper","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measure","getComputedTextLength","measureText","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","fPath","querySelectorAll","rel","sc","getCharData","_char","_warned","_char2","getFontByName","doubleSize","singleSize","fName","getCodePoint","isModifier","firstCharCode","secondCharCode","isZeroWidthJoiner","charCode","isVariationSelector","isRegionalCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","setIsLoaded","typekitLoaded","fontPrototype","SlotManager","slotFactory","RenderableElement","slots","initRenderable","isInRange","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","4","5","6","7","9","10","11","12","13","14","15","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","expansor","feMorph","currentMasks","maskType","maskRef","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","hd","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","_prototype","createContent","renderInnerContent","innerElem","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","shouldBreakProcess","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","ost","buildShapeString","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","renderNoop","styleData","itemData","pathStringTransformed","redraw","lLen","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","GradientConstructor","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","animatorData","letterData","based","animators","indexes","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","ne","sm","getTextSelectorProp","getMult","textProperty","easer","tot","smoothness","newCharsFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","pathInfo","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","animatorSelector","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","createLumaSvgFilter","_svg","loadLuma","getLuma","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","bezierCurveTo","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","CVContextData","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","globalCompositeOperation","hideElement","showElement","prepareLayer","bufferCtx","getTransform","exitLayer","forceRealStack","transformHelper","dashResetter","preTransforms","co","wi","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","duplicate","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","shapeStyle","shapeTransform","compW","compH","innerElemStyle","strokeWidth","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","tmpDOMElement","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","rngname","startdenom","significance","seedrandom","shortseed","mixkey","tostring","autoseed","arc4","ARC4","pass","is_math_call","smear","stringseed","plugins","screen","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","fetch","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","radians_to_degrees","degrees_to_radians","helperLengthArray","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","rndm","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","wiggle","freq","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","yaw","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","MaskManagerInterface","MaskInterface","_mask","MaskManager","_masksInterfaces","maskFunction","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","arrValue","defaultGetter","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","propMatrix","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","_registerMaskInterface","_registerEffectsInterface","anchorPointDescriptor","anchor_point","startTime","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","_propertyGroup","effectsData","createGroupInterface","groupInterface","mn","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","contentsInterfaceFactory","interfaces","transformInterfaceFactory","cix","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","parentGroupWrapper","_sourceText","sourceText","stringValue","fillColor","outlineInterfaceFactory","currentPropertyName","currentProperty","propertyNameIndex","dataInterfaceFactory","outlineInterface","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","endFrame","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","getShapeValueAtTime","shapeValue","lastTime","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","unitVector","tangentOnPath","normalOnPath","propertyGetShapeProp","trims","initialize$1","addDecorator","calculateExpression","getExpressionValue","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","removeAttribute","pathMasker","dasharrayValue","getTotalLength","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","outputBlack","outputWhite","colorValue","outputDelta","inputDelta","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","kBlurrinessToSigma","sigma","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","toPropertyKey","createProd","_prod","aesModes","desModes","keyLen","ivLen","wiltDefault","traverseF","separate","witherDefault","compact","arg2","separated","IndexError","isIndexError","createLyap","createSmallerEq","createSmallerEqNumber","createKron","_kron","ByteOrder","utf16Encode","byteOrderMark","codePointAt","highSurrogate","lowSurrogate","Uint16Array","isWithinBMP","hasSurrogates","REPLACEMENT","utf16Decode","fromCodePoint","byteOrder","readBOM","BigEndian","decodeValues","isHighSurrogate","isLowSurrogate","LittleEndian","hasUtf16BigEndianBOM","hasUtf16LittleEndianBOM","hasUtf16BOM","gab","apFirst","apSecond","apS","getApplySemigroup","FontNames","decodeFromBase64","encoded1","encoded2","encoded3","encoded4","bufferLength","arrayToString","decompressJson","compressedJson","padStart","padChar","compressedJsonForFontName","fontCache","getWidthOfGlyph","glyphName","CharWidths","getXAxisKerningForPair","leftGlyphName","rightGlyphName","KernPairXAmounts","cachedFont","CharMetrics","metric","WX","KernPairs","name1","name2","decompressedEncodings","allUnicodeMappings","Encoding","unicodeMappings","canEncodeUnicodeCodePoint","encodeUnicodeCodePoint","mapped","hexCode","Encodings","ZapfDingbats","zapfdingbats","WinAnsi","win1252","ecVerify","dsaVerify","padNum","pubkey","unpacked","checkValue","montp","createMod","_modNumber","stringTag","acosNumber","acoshNumber","acotNumber","acothNumber","acscNumber","acschNumber","asecNumber","asechNumber","asinNumber","asinhNumber","atanNumber","atan2Number","atanhNumber","cosNumber","coshNumber","cotNumber","cothNumber","cscNumber","cschNumber","POSITIVE_INFINITY","secNumber","sechNumber","sinNumber","sinhNumber","tanNumber","tanhNumber","createKldivergence","_kldiv","plength","qlength","sumq","sump","qnorm","pnorm","argsTag","funcTag","genTag","reIsUint","arrayMap","iteratee","baseFindIndex","fromRight","baseIndexOf","baseIsNaN","baseTimes","baseValues","overArg","nativeKeys","nativeMax","arrayLikeKeys","inherited","isArguments","skipIndexes","baseKeys","isPrototype","isArrayLike","isArrayLikeObject","isLength","_inheritsLoose","subClass","superClass","createErrorType","getMessage","NodeError","_Base","oneOf","this_len","determiner","adler32","crc32","inflate_fast","inflate_table","Z_MEM_ERROR","HEAD","FLAGS","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","LIT","CHECK","DONE","MEM","SYNC","MAX_WBITS","DEF_WBITS","zswap32","InflateState","havedict","wbits","ncode","nlen","ndist","lendyn","distdyn","back","was","inflateResetKeep","Buf32","inflateReset","inflateReset2","inflateInit","lenfix","distfix","virgin","fixedtables","updatewindow","put","last_bits","last_op","last_val","hbuf","inf_leave","dictid","dictLength","inflateInfo","createMode","pVersionMajor","createIsPositive","configuration_table","trees","MAX_MEM_LEVEL","DEF_MEM_LEVEL","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","flush_pending","pending_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","window_size","hash_size","insert","ins_h","hash_shift","hash_mask","deflate_stored","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","max_lazy_match","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","deflateResetKeep","deflateReset","deflateInit","old_flush","level_flags","bstate","avail","tmpDict","deflateInfo","createMatrixClass","createCumSum","_cumsum","_ncumSumDim","_cumsummap","sums","_cumsumDimensional","tran","createInvmod","createNumeric","validInputTypes","validOutputTypes","outputType","inputType","createSec","createIsPrime","modPow","bases","adn","_reduce","_foldMap","foldMapM","foldMap","_reduceRight","reduceRight","_traverse","_bimap","bimap","_mapLeft","mapLeft","_alt","alt","_chainRec","getShow","SE","SA","getEq","EL","EA","getCompactable","_E","getFilterable","getWitherable","F_","wither","Traversable","wilt","getApplicativeValidation","getAltValidation","ea","Pointed","apW","Apply","Applicative","Monad","Foldable","Bifunctor","altW","Alt","Extend","ChainRec","chainRec","throwError","MonadThrow","onLeft","onRight","foldW","fold","getOrElseW","getOrElse","apFirstW","apSecondW","tap","flattenW","chainOptionKW","_FromEither","_FlatMap","filterOrElseW","orElseW","orElse","fromNullable","tryCatch","onThrow","tryCatchK","fromNullableK","chainNullableK","toUnion","toError","elemE_1","exists","Do","bindW","apSW","e_1","traverseArrayWithIndex","sequenceArray","chainW","chainFirst","chainFirstW","parseJSON","stringifyJSON","either","getApplyMonoid","getValidationSemigroup","getValidationMonoid","MA","getValidation","isBigNumber","isComplex","isCollection","isHelp","isAccessorNode","isNode","isArrayNode","isAssignmentNode","isBlockNode","isConditionalNode","isConstantNode","rule2Node","isOperatorNode","isFunctionAssignmentNode","isFunctionNode","isIndexNode","isObjectNode","isParenthesisNode","isRangeNode","isRelationalNode","isSymbolNode","isChain","createSparse","createRandomInt","_randomInt","_randomIntMatrix","toAbsoluteIndex","toIntegerOrInfinity","setArrayLength","doesNotExceedSafeInteger","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","deleteCount","insertCount","actualDeleteCount","actualStart","_extends","DEFAULT_CONFIG","configFactory","_config","validateOption","changes","createMatAlgo11xS0s","createCross","_cross","highestDimension","AFRelationship","fileData","embeddedFileStream","embeddedFileStreamRef","fileSpecDict","flateStream","Subtype","Params","Size","UF","EF","Desc","createMultiply","_validateMatrixDimensions","size1","size2","_multiplyVectorVector","_multiplyVectorMatrix","_multiplyVectorDenseMatrix","alength","bcolumns","af","mf","_multiplyMatrixVector","_multiplyDenseMatrixVector","_multiplySparseMatrixVector","_multiplyMatrixMatrix","_multiplyDenseMatrixDenseMatrix","_multiplyDenseMatrixSparseMatrix","_multiplySparseMatrixDenseMatrix","_multiplySparseMatrixSparseMatrix","arows","acolumns","jb","kb0","kb1","kb","ib","brows","vbi","ka0","ka1","ka","ic","vbij","selfMM","xsize","ysize","blind","getr","blinder","unblinder","prime1","prime2","blinds","blinded","qinv","coefficient","exponent1","exponent2","_apPar","_apSeq","ApplyPar","ApplicativePar","ApplySeq","FromIO","_FromIO","traverseReadonlyNonEmptyArrayWithIndexSeq","traverseReadonlyArrayWithIndexSeq","traverseSeqArray","createSpaClass","_heap","isSpa","accumulate","extractMinimum","nodei","nodej","nativeErrorToString","createAnd","fromTaskK","tapTask","rotr32","p32","createUsolve","createErf","MAX_NUM","THRESH","erf1","erfc2","erfc3","ysq","xnum","xden","del","SQRPI","ERR_MISSING_ARGS","destroyer","popCallback","streams","destroys","createZpk2tf","_zpk2tf","pole","hLen2","dblen","nonZero","CharCodes","readableHwm","readableHighWaterMark","defaultHwm","needMoreData","fromListPartial","copyFromBufferString","copyFromBuffer","increasedAwaitDrain","EVP_BytesToKey","keyBits","keyStart","ivStart","createReplacer","METHOD_NAME","csPermute","csTdfs","csPost","csEtree","ata","inext","ancestor","csFkeep","csFlip","createCsAmd","lemax","dense","_createTargetMatrix","_diag","pj","nvi","pk","eln","pn","cnz","nv","elen","hhead","_initializeQuotientGraph","nel","_initializeDegreeLists","mindeg","elenk","nvk","dk","pk1","pk2","_wclear","wnvi","nvj","jlast","at","tindex","tptr","csLeaf","maxfirst","prevleaf","sparent","jleaf","jprev","createCsCounts","colcount","createCsSqr","csAmd","csCounts","_vcount","unz","lnz","leftmost","nque","pa","csMarked","csMark","csUnflip","csDfs","jnew","csReach","gptr","gsize","createCsSpsolve","gvalues","gindex","createCsLu","csSpsolve","tol","lvalues","lindex","lptr","uvalues","uindex","uptr","ipiv","xabs","createSlu","csSqr","csLu","onFreeze","FREEZING","$seal","seal","sham","_filterCallback","createStirlingS2","smallCache","bigCache","make","nn","nk","createRightArithShift","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","c0_hi","c1_hi","c2_hi","s0_512_lo","c0_lo","c1_lo","c2_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","ARRAY16","zr","sl","rotl","br","cr","tl","bufferEq","origBufEqual","origSlowBufEqual","PDFHeader","major","minor","initialOffset","Percent","Dash","Period","forVersion","PDFNumber","numberValue","PDFArray","lookupMaybe","lowerLeftX","lowerLeftY","upperRightX","upperRightY","asArray","arrayString","LeftSquareBracket","Space","RightSquareBracket","ENFORCER","PDFBool","enforcer","asBoolean","True","False","IsDelimiter","LeftCurly","RightCurly","ForwardSlash","IsWhitespace","Null","IsIrregular","PDFOperatorNames","decodeName","isRegularChar","ExclamationPoint","Tilde","PDFName","encodedName","character","Nine","decodedValue","Length","FlateDecode","ExtGState","Contents","Parent","Page","PDFNull","asNull","PDFDict","preservePDFNull","asMap","uniqueKey","existingKeys","dictString","fromMapWithContext","PDFStream","getContentsString","getContents","getContentsSize","updateDict","contentsSize","streamString","contents","PDFRawStream","asUint8Array","PDFRef","objectNumber","generationNumber","PDFOperator","EntryType","PDFFlateStream","computeContents","unencodedContents","getUnencodedContents","contentsCache","PDFContentStream","getUnencodedContentsSize","SimpleRNG","nextInt","withSeed","byAscendingObjectNumber","PDFContext","largestObjectNumber","indirectObjects","enumerateIndirectObjects","literal","Filter","getPushGraphicsStateContentStream","pushGraphicsStateContentStreamRef","getPopGraphicsStateContentStream","popGraphicsStateContentStreamRef","suffixLength","PDFPageLeaf","autoNormalizeCTM","normalized","dictOrRef","getInheritableAttribute","arrayOrRef","numberOrRef","ascend","startStream","endStream","annotRef","setFontDictionary","fontDictRef","newFontDictionaryKey","setXObject","xObjectRef","newXObjectKey","setExtGState","extGStateRef","newExtGStateKey","visitor","contentsRef","InheritableEntries","PDFObjectCopier","traversedObjects","copyPDFPage","copyPDFDict","copyPDFArray","copyPDFStream","copyPDFIndirectObject","originalPage","clonedPage","originalDict","clonedDict","originalArray","clonedArray","originalStream","clonedStream","alreadyMapped","newRef","dereferencedValue","PDFCrossRefSection","firstEntry","subsections","chunkIdx","chunkLength","addEntry","deleted","addDeletedEntry","nextFreeObjectNumber","rangeIdx","rangeLen","entryIdx","entryLen","subsection","subsectionLength","copySubsectionsIntoBuffer","firstObjectNumber","rangeLength","copyEntriesIntoBuffer","entryOffset","entryGen","currEntry","prevEntry","createEmpty","PDFTrailer","lastXRefOffset","forLastCrossRefSectionOffset","PDFTrailerDict","PDFObjectStream","offsets","computeObjectOffsets","offsetsString","computeOffsetsString","getObjectsCount","withContextAndObjects","PDFWriter","parsedObjects","shouldWaitForTick","xref","trailerDict","trailer","computeBufferSize","computeIndirectObjectSize","refSize","objectSize","createTrailerDict","ID","indirectObject","xrefOffset","PDFInvalidObject","ColorSpace","PDFCrossRefStream","computeIndex","computeEntryTuples","entryTuples","Deleted","Uncompressed","Compressed","objectStreamRef","computeMaxEntryByteWidths","entryTuplesCache","widths","firstSize","secondSize","thirdSize","maxByteWidthsCache","indexCache","addUncompressedEntry","addCompressedEntry","byteWidths","entriesLen","firstBytes","secondBytes","thirdBytes","entryWidth","PDFStreamWriter","encodeStreams","objectsPerStream","xrefStream","uncompressedObjects","compressedObjects","objectStreamRefs","shouldNotCompress","objectStream","xrefStreamRef","StandardFontEmbedder","FontName","glyphs","encodeTextAsGlyphs","hexCodes","totalWidth","kernAmount","widthOfGlyph","Ascender","Descender","FontBBox","yTop","yBottom","fontDict","BaseFont","createCmap","glyphId","bfChars","cmapHexFormat","cmapHexString","cmapCodePointFormat","fillCmapTemplate","makeFontFlags","flipBit","fixedPitch","serif","symbolic","nonsymbolic","italic","allCap","smallCap","forceBold","deriveFontFlags","familyClass","sFamilyClass","isFixedPitch","macStyle","CustomFontEmbedder","fontFeatures","allGlyphsInFontSortedById","glyphForCodePoint","unitsPerEm","postscriptName","baseFontName","glyphCache","advanceWidth","descent","embedFontDict","cidFontDictRef","unicodeCMapRef","embedCIDFontDict","embedUnicodeCmap","DescendantFonts","ToUnicode","isCFF","cff","fontDescriptorRef","cidFontDict","embedFontDescriptor","CIDToGIDMap","CIDSystemInfo","Registry","Ordering","Supplement","FontDescriptor","computeWidths","fontStreamRef","italicAngle","capHeight","xHeight","fontDescriptor","embedFontStream","Flags","ItalicAngle","Ascent","Descent","CapHeight","XHeight","StemV","serializeFont","fontStream","cmap","cmapStream","currSection","currGlyph","prevGlyph","currGlyphId","prevGlyphId","CustomFontSubsetEmbedder","customFontName","glyphIdMap","subsetGlyphId","includeGlyph","encodeStream","MARKERS","ChannelToColorSpace","DeviceGray","DeviceRGB","DeviceCMYK","JpegEmbedder","bitsPerComponent","dataView","soi","channelByte","channelName","DataView","getUint16","getUint8","xObject","BitsPerComponent","Width","Height","Decode","UPNG","acTL","toRGBA8","decodeImage","frms","frm","fx","fy","fw","fdata","blend","_copyTile","dispose","area","bpp","_getBPP","bpl","bf","bf32","ctype","_bin","readUshort","qarea","qi","cj","buff","fd","rUs","rUi","readUint","doff","foff","mgck","readASCII","_IHDR","num_frames","num_plays","_decompress","rct","nextZero","keyw","readUTF8","readBytes","interlace","_inflate","_filterZero","_readInterlace","cbpp","starting_row","starting_col","row_increment","col_increment","ri","ci","bpll","cdi","noc","paeth","_paeth","pb","pc","writeUshort","writeUint","writeASCII","ns","tw","xoff","yoff","ba","bg","ifa","oa","ioa","bufs","dels","forbidPlte","nimg","compressPNG","_main","encodeLL","bipp","bipl","crc","wUi","wUs","wAs","pltAlpha","leng","plte","cimg","wr","fi","imgd","ioff","levelZero","nh","prms","onlyBlend","evenCrd","forbidPrev","minBits","alphaAnd","ilen","gotAlpha","framize","inds","nbufs","abuf","concatRGBA","qres","quantize","cof","bln","est","rgba","img32","nw","cmc","inj","alwaysBlend","cimg32","tlim","tstp","tarea","pimg","mix","miy","may","sarea","_prepareDiff","r0","miX","miY","maX","maY","_updateFrame","U8","U32","pimg32","rec","fls","ftry","CMPR","UZIP","_filterLine","tsize","oimg","nimg32","KD","getKDtree","leafs","planeDst","getNearest","i0","bst","tdst","stats","estats","maxL","splitPixels","eMq255","s0wrong","node0","node1","eMq","d3","vecDot","m0","iN","Rj","M4","tmi","multVec","sml","Cov","tlen","noff","il","PngType","getImageType","Greyscale","Truecolour","IndexedColour","GreyscaleWithAlpha","TruecolourWithAlpha","splitAlphaChannel","rgbaChannel","pixelCount","rgbChannel","alphaChannel","rgbaOffset","rgbOffset","alphaOffset","NonFullScreenPageMode","ReadingDirection","PrintScaling","PNG","pngData","upng","frame","hasAlphaValues","PngEmbedder","SMask","embedAlphaChannel","getByte","getInt32","getBytes","forceClamped","strEnd","peekByte","peekedByte","peekBytes","moveStart","makeSubStream","emptyBuffer","DecodeStream","maybeMinBufferLength","eof","minBufferLength","readBlock","ensureBuffer","bufEnd","requested","buffer2","isSpace","Ascii85Stream","maybeLength","TILDA_CHAR","Z_LOWER_CHAR","EOF","AsciiHexStream","firstDigit","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","FlateStream","cmf","flg","codeSize","codeBuf","hdr","getBits","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","generateHuffmanTable","codeLengths","bitsLength","bitsOffset","what","getCode","repeatLength","code1","code2","blockLen","maxLen","codeLen","codeVal","LZWStream","earlyChange","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","estimatedDecodedSize","decodedSizeDelta","prevCode","decodedLength","currentBufferLength","readBits","hasPrev","RunLengthStream","repeatHeader","decodeStream","EarlyChange","decodePDFRawStream","DecodeParms","fullPageBoundingBox","boundingBoxAdjustedMatrix","PDFPageEmbedder","decodedContents","decodeContents","FormType","newline","asEnum","rawValue","enumType","AcroFieldFlags","AcroButtonFlags","AcroTextFlags","AcroChoiceFlags","ViewerPreferences","lookupBool","returnObj","lookupName","HideToolbar","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","Direction","PickTrayByPDFSize","PrintPageRange","NumCopies","getHideToolbar","getHideMenubar","getHideWindowUI","getFitWindow","getCenterWindow","getDisplayDocTitle","getNonFullScreenPageMode","UseNone","getReadingDirection","L2R","getPrintScaling","scaling","AppDefault","getDuplex","duplex","getPickTrayByPDFSize","getPrintPageRange","pageRanges","getNumCopies","setHideToolbar","hideToolbar","setHideMenubar","hideMenubar","setHideWindowUI","hideWindowUI","setFitWindow","fitWindow","setCenterWindow","centerWindow","displayTitle","setNonFullScreenPageMode","nonFullScreenPageMode","setReadingDirection","readingDirection","setPrintScaling","printScaling","setDuplex","dup","setPickTrayByPDFSize","pickTrayByPDFSize","setPrintPageRange","printPageRange","flatRange","setNumCopies","numCopies","MAX_VALUE","fromDict","PDFAcroField","Ff","valueOrRef","DA","setKids","kids","getParent","daStart","daEnd","modifiedDa","getFlags","setFlags","setFlag","clearFlag","BorderStyle","PDFAnnotation","Rect","AP","AS","setAppearances","ensureAP","AppearanceCharacteristics","BC","BG","RC","AC","PDFWidgetAnnotation","MK","BS","PDFAcroTerminal","FT","nameOrRef","kidDicts","removeWidget","PDFAcroButton","Opt","setOpt","removeExportValue","normalizeExportValues","exportVal","addOpt","useExistingOptIdx","existingIdx","optText","optIdx","PDFAcroCheckBox","bitIndex","PDFAcroChoice","Combo","valuesAreValid","updateSelectedIndices","_loop_1","state_1","_loop_2","newOpt","PDFAcroComboBox","PDFAcroNonTerminal","PDFAcroSignature","PDFAcroText","MaxLen","PDFAcroPushButton","PushButton","PDFAcroRadioButton","Radio","PDFAcroListBox","createPDFAcroFields","createPDFAcroField","isNonTerminal","isNonTerminalAcroField","createPDFAcroTerminal","kidIsField","ftNameOrRef","createPDFAcroButton","createPDFAcroChoice","ffNumberOrRef","ffNumber","flagIsSet","startNode","PDFAcroForm","pushFields","fieldModel","PDFCatalog","AcroForm","getAcroForm","acroFormRef","getViewerPreferences","viewerPrefs","viewerPrefsRef","leafRef","pagesRef","maybeParentRef","PDFPageTree","pushTreeNode","treeRef","pushLeafNode","insertLeafKid","leafsRemainingUntilTarget","kidRef","prune","removeKid","kidIdx","newCount","IsDigit","One","Two","Three","Four","Five","Six","Eight","IsNumericPrefix","Plus","Minus","IsNumeric","AnnotationFlags","BaseParser","parseRawInt","peek","parseRawNumber","skipLine","skipComment","skipWhitespaceAndComments","matchKeyword","ByteStream","assertNext","peekAhead","steps","peekAt","fromPDFRawStream","rawStream","endstream","endobj","startxref","true","false","streamEOF1","streamEOF2","streamEOF3","streamEOF4","EOF1endstream","EOF2endstream","EOF3endstream","PDFObjectParser","byteStream","parseObject","parseDictOrStream","parseHexString","parseString","parseName","parseArray","parseNumberOrRef","firstNum","lookaheadStart","secondNum","nestingLvl","isEscaped","pdfArray","parseDict","findEndOfStreamFallback","forBytes","forByteStream","PDFObjectStreamParser","alreadyParsed","firstOffset","objectCount","parseIntoContext","offsetsAndObjectNumbers","parseOffsetsAndObjectNumbers","forStream","PDFXRefStreamParser","length_1","parseEntries","typeFieldWidth","offsetFieldWidth","genFieldWidth","subsectionIdx","subsectionLen","length_2","objIdx","inObjectStream","PDFParser","pdfBytes","prevOffset","parseHeader","parseDocumentSection","maybeRecoverRoot","isValidCatalog","skipBinaryHeaderComment","parseIndirectObjectHeader","matchIndirectObjectHeader","parseIndirectObject","tryToParseInvalidIndirectObject","failed","parseIndirectObjects","trys","skipJibberish","maybeParseCrossRefSection","firstInt","secondInt","maybeParseTrailerDict","maybeParseTrailer","isAlphaNumeric","getNonDecimalNumberParts","nonDecimalWithRadixMatch","fractionalPart","makeNumberFromNonDecimalParts","digitValue","createNumber","nonDecimalNumberParts","wordSizeSuffixMatch","_finalSize","accum","assigned","lowBits","highBits","_hashType","_signType","sigBuffer","_importDER","recoveryParam","Position","place","getLength","octetLen","rmPadding","constructLength","octets","slen","backHalf","createStd","_std","normalization","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","encodeToBase64","DATA_URI_PREFIX_REGEX","decodeFromBase64DataUri","trimmedUri","fullMatch","typedArrayFor","typedArray","mergeIntoTypedArray","arrays","arrayCount","typedArrays","totalSize","merged","arrIdx","byteIdx","mergeUint8Arrays","mergedBuffer","arrayAsString","byAscendingId","sortedUniq","indexer","uniq","reverseArray","arrayLen","leftIdx","rightIdx","pluckIndices","plucked","canBeConvertedToUint8Array","toUint8Array","waitForTick","numberToString","numStr","bytesFor","StandardFontValues","isStandardFont","rectanglesAreEqual","backtick","singleQuote","createValueErrorMsg","valueName","allowedValues","joinedValues","assertIsOneOf","assertIsOneOfOrUndefined","assertIsSubset","isType","createTypeErrorMsg","allowedTypes","joinedTypes","assertIs","assertOrUndefined","assertEachIs","assertRange","assertRangeOrUndefined","assertMultiple","multiplier","assertInteger","assertPositive","pdfDocEncodingToUnicode","pdfDocEncodingDecode","Cache","populate","Sha384","createAtan2","scalar","createBignumber","twoPowSize","twoPowSizeSubOne","commonAlphabet","base64Alphabet","base64UrlAlphabet","characters","i2c","i2cUrl","c2iUrl","keyPair","fromPrivate","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","canonical","sinv","_maxwellTrick","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","createRange","_strRange","_range","includeEnd","_parse","ongoing","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","preventExtensions","_importPrivate","privEnc","_importPublic","pubEnc","derive","sum32_3","Kh","Ah","Bh","Dh","Eh","rh","createPickRandom","possibles","_pickRandom","weights","elementWise","single","totalWeights","pick","randKey","createSplitUnit","meta","assertAndCreate","scope","deps","stripOptionalNotation","assertDependencies","isFactory","allDefined","dependency","isOptionalDependency","missingDependencies","createExpm","eps","infNorm","infinityNorm","findParams","Apos","AposToI","alternate","rowSum","maxSearchSize","errorEstimate","qfac","twoqfac","twoqp1fac","createSolveValidation","mSize","bSize","createSetDifference","inb2","TYPED_OK","_has","fnTyped","src_offs","dest_offs","fnUntyped","setTyped","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","safeRe","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRe","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULL","FULLPLAIN","LOOSEPLAIN","LOOSE","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","XRANGE","XRANGELOOSE","COERCE","LONETILDE","TILDETRIM","tildeTrimReplace","TILDE","TILDELOOSE","LONECARET","CARETTRIM","caretTrimReplace","CARET","CARETLOOSE","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","comparatorTrimReplace","HYPHENRANGE","HYPHENRANGELOOSE","STAR","loose","includePrerelease","SemVer","clean","patch","prerelease","build","inc","version1","version2","defaultResult","compareMain","comparePre","compareIdentifiers","anum","bnum","rcompareIdentifiers","compareLoose","rcompare","rsort","neq","Comparator","semver","ANY","parseRange","toComparators","parseComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","replaceCaret","replaceXRange","gtlt","xM","anyX","hyphenReplace","$0","fM","fm","fp","fpr","tM","tpr","testSet","allowed","satisfies","maxSatisfying","versions","maxSV","rangeObj","minSatisfying","minSV","minVersion","minver","comparators","comparator","compver","validRange","ltr","outside","gtr","hilo","gtfn","ltefn","ltfn","ecomp","high","intersects","coerce","rangeTmp","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","compRe","thisComparators","thisComparator","rangeComparators","rangeComparator","createFibonacciHeapClass","oneOverLogPhi","_minimum","_decreaseKey","_cut","_cascadingCut","isFibonacciHeap","numberOfChildren","tempRight","_findMinimumNode","_linkNodes","arraySize","numRoots","createBin","arrayBufferModule","ARRAY_BUFFER","NativeArrayBuffer","createSetPowerset","_subset","_sort","bitarray","createTo","improveErrorMessage","fnName","createRotationMatrix","_rotationMatrix2x2","matrixV","_validateVector","_rotationMatrix3x3","storageType","minusOne","cosTheta","sinTheta","_convertToFormat","_mul","normV","vz","oneMinusC","r11","r12","r13","r21","r22","r23","r31","r32","r33","isSurrogatePair","htonl","zero8","join32","createIsInteger","createZeros","_zeros","createFreqz","createBins","_freqz","sumNum","sumDen","bins","createPinv","_isZeros","_pinv","_rankFact","Cpinv","Fpinv","_rref","lead","_isZero","rref","safer","Safer","kStringMaxLength","binding","MAX_STRING_LENGTH","createDiag","_createDiagonalMatrix","_getDiagonal","__awaiter","thisArg","adopt","fulfilled","rejected","__generator","ops","verb","rightTask","leftTask","rightIO","leftIO","fromIOEither","fromTaskOption","matchE","matchEW","onRejected","reason_1","tapError","orElseFirstIOK","fromIOK","orElseFirstTaskK","orLeft","fromTaskOptionK","chainTaskOptionKW","chainTaskOptionK","fromIOEitherK","mapBoth","mapError","getApplicativeTaskValidation","getAltTaskValidation","ApplicativeSeq","MonadIO","MonadTask","FromTask","tapIO","_FromTask","flatMapIOEither","flatMapTaskOption","chainEitherKW","chainFirstEitherK","chainFirstEitherKW","chainIOK","chainFirstIOK","chainTaskK","chainFirstTaskK","chainIOEitherKW","chainIOEitherK","taskify","cbResolver","bracket","acquire","bracketW","ebs","eb","traverseSeqArrayWithIndex","sequenceSeqArray","orElseFirst","orElseFirstW","taskEither","taskEitherSeq","getTaskValidation","applicativeTaskValidation","altTaskValidation","createCeilNumber","createCeil","ceilNumber","createMatAlgo07xSSf","_scatter","va","INCORRECT_VALUE","$findIndex","FIND_INDEX","createBitNot","createFixNumber","createFix","fixNumber","createIsNumeric","createMultiplyScalar","notNumber","orNumber","xorNumber","andNumber","_compact","fge","createIndexClass","ranges","_dimensions","_sourceSize","argIsArray","argIsMatrix","sourceSize","_createImmutableMatrix","_booleansArrayToNumbersForIndex","isObjectProperty","getObjectProperty","booleanArrayIndex","indexOfNumbers","createXor","trimRight","createZeta","zetaNumeric","zetaComplex","createValue","determineDigits","getRe","$trimEnd","createRe","bitAndBigNumber","bitwise","bitNotBigNumber","prevPrec","bitOrBigNumber","negOne","xBits","yBits","maxBits","minSign","xSign","ySign","decCoefficientToBinaryString","shortLen","longLen","expFuncVal","outVal","twoPower","leftShiftBigNumber","rightArithShiftBigNumber","createHypot","_hypot","largest","createApply","_apply","objectTag","isHostObject","funcProto","funcToString","objectCtorString","getPrototype","createMatAlgo08xS0Sid","chainFirstM","createSum","_sum","_nsumDim","createNthRoots","_calculateExactResult","_nthComplexRoots","aIsNumeric","roots","halfPiFactor","IndexSizeError","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","derDecodeTag","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","mon","UTC","_getDecoder","createNthRoot","complexErr","_bigNthRoot","selfSn","selfDS","toCharCode","toCodePoint","toHexStringOfMinLength","minLength","toHexString","charFromCode","charFromHexCode","copyStringIntoBuffer","escapeRegExp","cleanText","escapedNewlineChars","isNewlineChar","lineSplit","mergeLines","charAtIndex","cuSecond","cuFirst","charSplit","cLen","buildWordBreakRegex","newlineCharUnion","escapedRules","wordBreak","breakRules","breakTextIntoLines","computeWidthOfText","currLine","currWidth","pushCurrLine","dateRegex","parseDate","dateStr","offsetSign","offsetHours","offsetMins","tzOffset","findLastMatch","lastMatch","DEFAULT_NORMALIZATION","createVariance","_var","_varDim","createComplexClass","toPolar","strRe","strIm","fromPolar","createAbs","ReporterError","rethrow","pathLen","randomMatrix","createSetDistinct","createFft","_ndFft","_fft","_1dFft","_transpose","_czt","chirp","N2","ichirp","fftXp","fftIchirp","fftProduct","ifftProduct","EE","_isStdio","didOnEnd","createArg","createMatAlgo14xDs","_iterate","av","bv","cv","createTrue","createFalse","createInfinity","recreateFactory","createNaN","createPi","createTau","createE","createPhi","createLN2","createLN10","createLOG2E","_ref9","createLOG10E","_ref10","createSQRT1_2","_ref11","createSQRT2","_ref12","createI","_ref13","createUppercasePi","_ref14","createUppercaseE","_ref15","createVersion","recreateOnConfigChange","MAX_CYCLE_LEN","InvalidParameter","newFraction","DivisionByZero","factorize","factors","NonIntegerParameter","modpow","cycleLen","cycleStart","rem1","rem2","places","thisABS","excludeWhole","whole","dec","cycLen","cycOff","createSize","pako","createAsec","createMatAlgo13xDD","csize","dependancies","createBroadcast","sizeA","_padLeft","sizeB","sizeMax","AA","BB","_dim","_stretch","filler","arrayToStretch","sizeToStretch","dimToStretch","createMatrixAlgorithmSuite","matAlgo13xDD","broadcast","matrixSignatures","createSquare","createString","asyncWrite","writableHwm","writableHighWaterMark","$freeze","lruQueue","queue","hit","nuIndex","memoize","lru","newVal","maxArgumentCount","commonjsGlobal","fileset_resolver","supportsSimd","WASM_SIMD_CHECK","isSimdSupported","_isSimdSupported","WebAssembly","createFileset","_createFileset","_args10","wasmLoaderPath","wasmBinaryPath","FilesetResolver$1","drawing_utils","DEFAULT_OPTIONS","addDefaultOptions","DrawingUtils$1","Path2D","arc","_step2","_iterator2","originX","originY","image_shader_context","MPImageShaderContext","assertNotNull","VERTEX_SHADER","FRAGMENT_SHADER","MPImageShaderBuffers","vertexArrayObject","vertexBuffer","textureBuffer","bindVertexArray","deleteVertexArray","deleteBuffer","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","attachShader","program","createProgram","vertexShader","fragmentShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","aVertex","getAttribLocation","aTex","createVertexArray","bindBuffer","enableVertexAttribArray","vertexAttribPointer","FLOAT","bufferData","STATIC_DRAW","shaderBuffersFlipVertically","createBuffers","shaderBuffersPassthrough","maybeInitGL","setupShaders","getShaderBuffers","useProgram","unbind","framebuffer","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","TEXTURE_2D","deleteProgram","deleteShader","deleteFramebuffer","MPImage","image_shader_context_1$2","INSTANCE_COUNT_WARNING_THRESHOLD$1","MPImageType","IMAGE_DATA","IMAGE_BITMAP","WEBGL_TEXTURE","MPImage$1","containers","ownsImageBitmap","ownsWebGLTexture","shaderContext","instancesBeforeWarning","getContainer","convertToImageData","convertToImageBitmap","convertToWebGLTexture","ImageData","ImageBitmap","WebGLTexture","_step3","_iterator3","getGL","getShaderContext","activeTexture","TEXTURE1","createTexture","bindTexture","configureTextureParams","texImage2D","RGBA","UNSIGNED_BYTE","clearColor","COLOR_BUFFER_BIT","drawArrays","TRIANGLE_FAN","unbindTexture","unbindFramebuffer","copyTextureToBitmap","hasImageBitmap","hasWebGLTexture","convertWebGLTextureToImageBitmap","readPixels","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","viewport","TEXTURE0","runWithResizedCanvas","getOffscreenCanvas","transferToImageBitmap","deleteTexture","platform_utils","isWebKit","isIOS","platform","MPMask","image_shader_context_1$1","platform_utils_1$1","INSTANCE_COUNT_WARNING_THRESHOLD","MPMaskType","UINT8_ARRAY","FLOAT32_ARRAY","MPMask$1","convertToUint8Array","convertToFloat32Array","texImage2DFormat","R32F","R16F","_step4","_iterator4","_loop2","getTexImage2DFormat","RED","NEAREST","face_detector","calculator_pb","googleProtobuf","$jscomp","findInternal","ASSUME_ES5","ASSUME_NO_NATIVE_MAP","ASSUME_NO_NATIVE_SET","SIMPLE_FROUND_POLYFILL","getGlobal","polyfill","checkStringArgs","COMPILED","goog","exportPath_","execScript","FEATURESET_YEAR","DEBUG","LOCALE","TRUSTED_SITE","STRICT_MODE_COMPATIBLE","DISALLOW_TEST_ONLY_CODE","ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING","isInModuleLoader_","constructNamespace_","getScriptNonce","getScriptNonce_","cspNonce_","NONCE_PATTERN_","VALID_MODULE_RE_","isInGoogModuleLoader_","moduleLoaderState_","moduleName","getInternal_","ModuleType","ES6","GOOG","isInEs6ModuleLoader_","getCurrentModulePath","declareLegacyNamespace","declareModuleId","loadedModules_","moduleId","setTestOnly","forwardDeclare","getObjectByName","globalize","addDependency","ENABLE_DEBUG_LOADER","logToConsole_","requireType","nullFunction","abstractMethod","addSingletonGetter","instance_","getInstance","instantiatedSingletons_","LOAD_MODULE_USING_EVAL","SEAL_MODULE_EXPORTS","DEPENDENCIES_ENABLED","TRANSPILE","ASSUME_ES_MODULES_TRANSPILED","TRANSPILE_TO_LANGUAGE","TRANSPILER","hasBadLetScoping","useSafari10Workaround","workaroundSafari10EvalBug","loadModule","loadModuleFromSource_","normalizePath_","loadFileSync_","CLOSURE_LOAD_FILE_SYNC","transpile_","transpile","$gwtExport","isDateLike","getFullYear","getUid","UID_PROPERTY_","uidCounter_","hasUid","removeUid","getHashCode","removeHashCode","cloneObject","bindNative_","bindJs_","mixin","globalEval","evalWorksForGlobals_","_evalTest_","defer","createTextNode","getCssName","cssNameMapping_","cssNameMappingStyle_","CLOSURE_CSS_NAME_MAP_FN","setCssNameMapping","getMsg","html","getMsgWithFallback","exportSymbol","exportProperty","superClass_","defineClass","statics","createSealingConstructor_","applyProperties_","SEAL_CLASS_INSTANCES","isUnsealable_","UNSEALABLE_CONSTRUCTOR_PROPERTY_","OBJECT_PROTOTYPE_FIELDS_","tagUnsealableClass","TRUSTED_TYPES_POLICY_NAME","identity_","createTrustedTypesPolicy","trustedTypes","TrustedTypes","createPolicy","createScript","createScriptURL","createURL","TRUSTED_TYPES_POLICY_","getCount","getAnyKey","getAnyValue","containsValue","getKeys","getValueByKeys","containsKey","findKey","findValue","setIfUndefined","setWithReturnValueIfNotSet","unsafeClone","PROTOTYPE_FIELDS_","createSet","createImmutableView","isFrozen","isImmutableView","getAllPropertyNames","getSuperClass","jspb","asserts","doAssertFailure","assertString","assertArray","assertInstanceof","displayName","BinaryConstants","ConstBinaryMessage","BinaryMessage","FieldType","INVALID","DOUBLE","INT64","UINT64","INT32","FIXED64","FIXED32","BOOL","STRING","GROUP","MESSAGE","BYTES","UINT32","ENUM","SFIXED32","SFIXED64","SINT32","SINT64","FHASH64","VHASH64","WireType","VARINT","DELIMITED","START_GROUP","END_GROUP","FieldTypeToWireType","INVALID_FIELD_NUMBER","FLOAT32_EPS","FLOAT32_MIN","FLOAT32_MAX","FLOAT64_EPS","FLOAT64_MIN","FLOAT64_MAX","TWO_TO_20","TWO_TO_23","TWO_TO_31","TWO_TO_32","TWO_TO_52","TWO_TO_63","TWO_TO_64","ZERO_HASH","reportErrorToServer","dom","NodeType","ELEMENT","ATTRIBUTE","TEXT","CDATA_SECTION","ENTITY_REFERENCE","ENTITY","PROCESSING_INSTRUCTION","DOCUMENT","DOCUMENT_TYPE","DOCUMENT_FRAGMENT","NOTATION","ENABLE_ASSERTS","AssertionError","subs_","messagePattern","DEFAULT_ERROR_HANDLER","errorHandler_","doAssertFailure_","setErrorHandler","assertExists","assertNumber","assertFunction","assertObject","assertBoolean","assertElement","getType_","assertFinite","assertObjectPrototypeIsIntact","NATIVE_ARRAY_PROTOTYPES","ASSUME_NATIVE_FUNCTIONS","forEachRight","findRight","findIndexRight","insertAt","insertArrayAt","removeAt","removeLast","removeIf","removeAllIf","removeDuplicates","binarySearch","binarySearch_","defaultCompare","binarySelect","stableSort","sortByKey","sortObjectsByKey","defaultCompareEquality","compare3","inverseDefaultCompare","binaryInsert","binaryRemove","bucket","moveItem","zip","shuffle","copyByIndex","concatMap","crypt","stringToByteArray","byteArrayToString","byteArrayToHex","hexToByteArray","stringToUtf8ByteArray","utf8ByteArrayToString","xorByteArray","assertIsLocation","getWindow_","Location","Element","debugStringForType_","assertIsElementType_","assertIsHTMLAnchorElement","assertIsHTMLButtonElement","assertIsHTMLLinkElement","assertIsHTMLImageElement","assertIsHTMLAudioElement","assertIsHTMLVideoElement","assertIsHTMLInputElement","assertIsHTMLTextAreaElement","assertIsHTMLCanvasElement","assertIsHTMLEmbedElement","assertIsHTMLFormElement","assertIsHTMLFrameElement","assertIsHTMLIFrameElement","assertIsHTMLObjectElement","assertIsHTMLScriptElement","ownerDocument","defaultView","parentWindow","functions","FALSE","TRUE","NULL","nth","partialRight","withReturnValue","equalTo","compose","CACHE_RETURN_VALUE","cacheReturnValue","debounce","throttle","rateLimit","HtmlElement","TagName","tagName_","ABBR","ACRONYM","ADDRESS","APPLET","AREA","ARTICLE","ASIDE","AUDIO","BASEFONT","BDI","BDO","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CANVAS","CAPTION","CENTER","CITE","CODE","COL","COLGROUP","COMMAND","DATA","DATALIST","DD","DEL","DETAILS","DFN","DIALOG","DIR","DIV","DL","DT","EM","EMBED","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","HTML","IFRAME","IMG","INPUT","INS","ISINDEX","KBD","KEYGEN","LABEL","LEGEND","LI","LINK","MAIN","MAP","MARK","MATH","MENU","MENUITEM","META","METER","NAV","NOFRAMES","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","OUTPUT","PARAM","PICTURE","PRE","PROGRESS","RP","RT","RTC","RUBY","SAMP","SCRIPT","SECTION","SELECT","SMALL","SOURCE","SPAN","STRIKE","STRONG","STYLE","SUB","SUMMARY","SUP","SVG","TBODY","TD","TEMPLATE","TEXTAREA","TFOOT","TH","THEAD","TITLE","TR","TRACK","TT","UL","VIDEO","WBR","VOID_TAGS_","command","keygen","wbr","isVoidTag","trustedtypes","PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY","TypedString","Const","stringConstValueWithSecurityContract__googStringSecurityPrivate_","GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_","STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_","TYPE_MARKER_","implementsGoogStringTypedString","getTypedStringValue","unwrap","EMPTY","SafeScript","privateDoNotAccessOrElseSafeScriptWrappedValue_","SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","fromConstant","createSafeScriptSecurityPrivateDoNotAccessOrElse","fromConstantAndArgs","stringify_","fromJson","unwrapTrustedScript","initSecurityPrivateDoNotAccessOrElse_","createObjectUrl","getUrlObject_","revokeObjectUrl","UrlObject_","findUrlObject_","browserSupportsObjectUrls","getBlob","getBlobWithProperties","endings","i18n","bidi","FORCE_RTL","IS_RTL","Format","LRE","RLE","PDF","LRM","RLM","Dir","LTR","RTL","NEUTRAL","RIGHT","LEFT","I18N_RIGHT","I18N_LEFT","toDir","ltrChars_","rtlChars_","htmlSkipReg_","stripHtmlIfNeeded_","rtlCharReg_","ltrCharReg_","hasAnyRtl","hasRtlChar","hasAnyLtr","ltrRe_","rtlRe_","isRtlChar","isLtrChar","isNeutralChar","ltrDirCheckRe_","rtlDirCheckRe_","startsWithRtl","isRtlText","startsWithLtr","isLtrText","isRequiredLtrRe_","isNeutralText","ltrExitDirCheckRe_","rtlExitDirCheckRe_","endsWithLtr","isLtrExitText","endsWithRtl","isRtlExitText","rtlLocalesRe_","isRtlLanguage","bracketGuardTextRe_","guardBracketInText","enforceRtlInHtml","enforceRtlInText","enforceLtrInHtml","enforceLtrInText","dimensionsRe_","leftRe_","rightRe_","tempRe_","mirrorCSS","doubleQuoteSubstituteRe_","singleQuoteSubstituteRe_","normalizeHebrewQuote","wordSeparatorRe_","hasNumeralsRe_","rtlDetectionThreshold_","estimateDirection","detectRtlDirectionality","setElementDirAndAlign","setElementDirByTextDirectionality","DirectionalString","TrustedResourceUrl","privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_","CONSTRUCTOR_TOKEN_PRIVATE_","TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","implementsGoogI18nBidiDirectionalString","getDirection","cloneWithParams","URL_PARAM_PARSER_","createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse","stringifyParams_","unwrapTrustedScriptURL","BASE_URL_","FORMAT_MARKER_","encodeURIComponent","formatWithParams","fromConstants","fromSafeScript","internal","caseInsensitiveStartsWith","caseInsensitiveCompare","caseInsensitiveEndsWith","caseInsensitiveEquals","isEmptyOrWhitespace","newLineToBr","htmlEscape","AMP_RE_","LT_RE_","GT_RE_","QUOT_RE_","SINGLE_QUOTE_RE_","NULL_RE_","ALL_RE_","whitespaceEscape","caseInsensitiveContains","compareVersions","compareElements_","SafeUrl","privateDoNotAccessOrElseSafeUrlWrappedValue_","SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","INNOCUOUS_STRING","createSafeUrlSecurityPrivateDoNotAccessOrElse","SAFE_MIME_TYPE_PATTERN_","isSafeMimeType","fromBlob","fromMediaSource","MediaSource","DATA_URL_PATTERN_","fromDataUrl","fromTelUrl","SIP_URL_PATTERN_","fromSipUrl","fromFacebookMessengerUrl","fromWhatsAppUrl","fromSmsUrl","isSmsUrlBodyValid_","fromSshUrl","sanitizeChromeExtensionUrl","sanitizeExtensionUrl_","sanitizeFirefoxExtensionUrl","sanitizeEdgeExtensionUrl","fromTrustedResourceUrl","SAFE_URL_PATTERN_","SAFE_URL_PATTERN","sanitize","sanitizeAssertUnchanged","ABOUT_BLANK","SafeStyle","privateDoNotAccessOrElseSafeStyleWrappedValue_","SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","createSafeStyleSecurityPrivateDoNotAccessOrElse","sanitizePropertyValue_","sanitizePropertyValueString_","FUNCTIONS_RE_","URL_RE_","VALUE_RE_","COMMENT_RE_","hasBalancedQuotes_","hasBalancedSquareBrackets_","sanitizeUrl_","VALUE_ALLOWED_CHARS_","ALLOWED_FUNCTIONS_","SafeStyleSheet","privateDoNotAccessOrElseSafeStyleSheetWrappedValue_","SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","createRule","hasBalancedBrackets_","createSafeStyleSheetSecurityPrivateDoNotAccessOrElse","labs","getNativeUserAgentString_","getNavigator_","userAgent_","setUserAgent","getUserAgent","matchUserAgent","matchUserAgentIgnoreCase","extractVersionTuples","matchOpera_","matchIE_","matchEdgeHtml_","matchEdgeChromium_","matchOperaChromium_","matchFirefox_","matchSafari_","matchChrome_","matchCoast_","isSilk","matchIosWebview_","matchAndroidBrowser_","isChrome","isFirefox","isOpera","isIE","isEdge","isEdgeChromium","isOperaChromium","isCoast","isIosWebview","isAndroidBrowser","getVersion","getIEVersion_","isVersionOrHigher","SafeHtml","privateDoNotAccessOrElseSafeHtmlWrappedValue_","SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","dir_","ENABLE_ERROR_MESSAGES","SUPPORT_STYLE_ATTRIBUTE","unwrapTrustedHTML","createSafeHtmlSecurityPrivateDoNotAccessOrElse","htmlEscapePreservingNewlines","htmlEscapePreservingNewlinesAndSpaces","VALID_NAMES_IN_TAG_","URL_ATTRIBUTES_","action","cite","formaction","manifest","poster","NOT_ALLOWED_TAG_NAMES_","verifyTagName","createSafeHtmlTagSecurityPrivateDoNotAccessOrElse","createIframe","srcdoc","combineAttributes","sandbox","createSandboxIframe","canUseSandboxIframe","HTMLIFrameElement","createScriptSrc","createStyle","createMetaRefresh","getAttrNameAndValue_","getStyleValue_","createWithDir","concatWithDir","stringifyAttributes","DOCTYPE_HTML","uncheckedconversions","safeHtmlFromStringKnownToSatisfyTypeContract","safeScriptFromStringKnownToSatisfyTypeContract","safeStyleFromStringKnownToSatisfyTypeContract","safeStyleSheetFromStringKnownToSatisfyTypeContract","safeUrlFromStringKnownToSatisfyTypeContract","trustedResourceUrlFromStringKnownToSatisfyTypeContract","safe","InsertAdjacentHtmlPosition","AFTERBEGIN","AFTEREND","BEFOREBEGIN","BEFOREEND","insertAdjacentHtml","insertAdjacentHTML","SET_INNER_HTML_DISALLOWED_TAGS_","isInnerHtmlCleanupRecursive_","firstChild","parentElement","unsafeSetInnerHtmlDoNotUseOrElse","lastChild","setInnerHtml","setOuterHtml","outerHTML","setFormElementAction","setButtonFormAction","formAction","setInputFormAction","setStyle","cssText","documentWrite","setAnchorHref","setImageSrc","setAudioSrc","setVideoSrc","setEmbedSrc","setFrameSrc","setIframeSrc","setIframeSrcdoc","setLinkHrefAndRel","setObjectData","setScriptSrc","setScriptContent","assignLocation","replaceLocation","openInWindow","parseFromStringHtml","parseFromString","createImageFromBlob","DETECT_DOUBLE_ESCAPING","FORCE_NON_DOM_HTML_UNESCAPING","Unicode","NBSP","subs","collapseWhitespace","isEmptyString","isEmptyOrWhitespaceSafe","makeSafe","isEmptySafe","isBreakingWhitespace","isAlpha","isUnicodeChar","stripNewlines","canonicalizeNewlines","normalizeWhitespace","normalizeSpaces","collapseBreakingSpaces","numberAwareCompare_","intAwareCompare","floatAwareCompare","numerateCompare","urlEncode","urlDecode","E_RE_","unescapeEntities","unescapeEntitiesUsingDom_","unescapePureXmlEntities_","unescapeEntitiesWithDocument","HTML_ENTITY_PATTERN_","nodeValue","preserveSpaces","stripQuotes","truncateMiddle","specialEscapeChars_","jsEscapeCache_","quote","escapeChar","escapeString","countOf","removeAll","regExpEscape","padNumber","buildString","getRandomString","hashCode","uniqueStringCounter_","createUniqueString","isLowerCamelCase","isUpperCamelCase","toCamelCase","toSelectorCase","toTitleCase","capitalize","splitLimit","lastComponent","editDistance","isPresto","isTrident","isGecko","getEngineTuple_","getVersionForKey_","isAndroid","isIpod","isIphone","isIpad","isIos","isMacintosh","isLinux","isWindows","isChromeOS","isChromecast","isKaiOS","reflect","objectProperty","sinkValue","canAccessProperty","ASSUME_IE","ASSUME_EDGE","ASSUME_GECKO","ASSUME_WEBKIT","ASSUME_MOBILE_WEBKIT","ASSUME_OPERA","ASSUME_ANY_VERSION","BROWSER_KNOWN_","getUserAgentString","getNavigatorTyped","getNavigator","OPERA","IE","EDGE","EDGE_OR_IE","GECKO","isMobile_","MOBILE","SAFARI","determinePlatform_","PLATFORM","ASSUME_MAC","ASSUME_WINDOWS","ASSUME_LINUX","ASSUME_X11","ASSUME_ANDROID","ASSUME_IPHONE","ASSUME_IPAD","ASSUME_IPOD","ASSUME_KAIOS","PLATFORM_KNOWN_","MAC","WINDOWS","isLegacyLinux_","LINUX","isX11_","appVersion","X11","ANDROID","IPHONE","IPAD","IPOD","IOS","KAIOS","determineVersion_","getVersionRegexResult_","getDocumentMode_","documentMode","isVersionOrHigherCache_","isVersion","isDocumentModeOrHigher","DOCUMENT_MODE","isDocumentMode","ASSUME_FIREFOX","ASSUME_CHROME","ASSUME_SAFARI","PRODUCT_KNOWN_","FIREFOX","isIphoneOrIpod_","CHROME","isSafariDesktop_","DEFAULT_ALPHABET_COMMON_","ENCODED_VALS","ENCODED_VALS_WEBSAFE","Alphabet","DEFAULT","NO_PADDING","WEBSAFE","WEBSAFE_DOT_PADDING","WEBSAFE_NO_PADDING","paddingChars_","isPadding_","byteToCharMaps_","charToByteMap_","ASSUME_NATIVE_SUPPORT_","HAS_NATIVE_ENCODE_","HAS_NATIVE_DECODE_","encodeByteArray","init_","encodeString","decodeString","decodeStringInternal_","decodeStringToByteArray","decodeStringToUint8Array","split64Low","split64High","splitUint64","splitInt64","splitZigzag64","splitFloat32","splitFloat64","splitHash64","joinUint64","joinInt64","toZigzag64","joinZigzag64","fromZigzag64","joinFloat32","joinFloat64","joinHash64","DIGITS","ZERO_CHAR_CODE_","A_CHAR_CODE_","joinUnsignedDecimalString","joinSignedDecimalString","hash64ToDecimalString","hash64ArrayToDecimalStrings","decimalStringToHash64","splitDecimalString","toHexDigit_","fromHexCharCode_","hash64ToHexString","hexStringToHash64","hash64ToNumber","numberToHash64","countVarints","countVarintFields","countFixedFields_","countFixed32Fields","countFixed64Fields","countDelimitedFields","debugBytesToTextFormat","byteSourceToUint8Array","debugScalarToTextFormat","BinaryDecoder","bytes_","cursor_","end_","start_","error_","setBlock","instanceCache_","free","getEnd","setEnd","getCursor","setCursor","advance","atEnd","pastEnd","getError","readSplitVarint64","readSplitZigzagVarint64","readSplitFixed64","skipVarint","unskipVarint","readUnsignedVarint32","readSignedVarint32","readUnsignedVarint32String","readSignedVarint32String","readZigzagVarint32","readUnsignedVarint64","readUnsignedVarint64String","readSignedVarint64","readSignedVarint64String","readZigzagVarint64","readZigzagVarintHash64","readZigzagVarint64String","readUint8","readUint16","readUint32","readUint64","readUint64String","readInt16","readInt32","readInt64","readInt64String","readFloat","readDouble","readBool","readEnum","readString","readStringWithLength","readVarintHash64","readFixedHash64","BinaryReader","decoder_","fieldCursor_","nextField_","nextWireType_","readCallbacks_","getFieldCursor","getFieldNumber","getWireType","isDelimited","isEndGroup","nextField","unskipHeader","skipMatchingFields","skipField","skipVarintField","skipDelimitedField","skipFixed32Field","skipFixed64Field","skipGroup","registerReadCallback","runReadCallback","readAny","readFixed64","readFixed32","readSfixed32","readSfixed64","readSint32","readSint64","readMessage","readGroup","getFieldDecoder","readInt32String","readUint32String","readSint64String","readFixed64String","readSfixed32String","readSfixed64String","readSintHash64","readPackedField_","readPackedInt32","readPackedInt32String","readPackedInt64","readPackedInt64String","readPackedUint32","readPackedUint32String","readPackedUint64","readPackedUint64String","readPackedSint32","readPackedSint64","readPackedSint64String","readPackedFixed32","readPackedFixed64","readPackedFixed64String","readPackedSfixed32","readPackedSfixed64","readPackedSfixed64String","readPackedFloat","readPackedDouble","readPackedBool","readPackedEnum","readPackedVarintHash64","readPackedFixedHash64","BinaryEncoder","buffer_","writeSplitVarint64","writeSplitFixed64","writeUint32","writeUnsignedVarint32","writeSignedVarint32","writeUnsignedVarint64","writeSignedVarint64","writeZigzagVarint32","writeZigzagVarint64","writeZigzagVarint64String","writeZigzagVarintHash64","writeUint8","writeUint16","writeUint64","writeInt16","writeInt32","writeInt64","writeInt64String","writeBool","writeEnum","writeBytes","writeVarintHash64","writeFixedHash64","writeString","arith","UInt64","rightShift","msb","lsb","mul32x32","Int64","BinaryWriter","blocks_","totalLength_","encoder_","bookmarks_","appendUint8Array_","beginDelimited_","writeFieldHeader_","endDelimited_","writeSerializedMessage","maybeWriteSerializedMessage","getResultBuffer","getResultBase64String","beginSubMessage","endSubMessage","writeAny","writeFixed64","writeFixed32","writeSfixed32","writeSfixed64","writeSint32","writeSint64","writeUnsignedVarint32_","writeSignedVarint32_","writeUnsignedVarint64_","writeSignedVarint64_","writeZigzagVarint32_","writeZigzagVarint64_","writeZigzagVarint64String_","writeZigzagVarintHash64_","writeInt32String","writeUint32String","writeUint64String","writeSintHash64","writeSint64String","writeFixed64String","writeSfixed64String","writeMessage","writeMessageSet","writeGroup","writeSplitZigzagVarint64","writeRepeatedInt32","writeRepeatedInt32String","writeRepeatedInt64","writeRepeatedSplitFixed64","writeRepeatedSplitVarint64","writeRepeatedSplitZigzagVarint64","writeRepeatedInt64String","writeRepeatedUint32","writeRepeatedUint32String","writeRepeatedUint64","writeRepeatedUint64String","writeRepeatedSint32","writeRepeatedSint64","writeRepeatedSint64String","writeRepeatedSintHash64","writeRepeatedFixed32","writeRepeatedFixed64","writeRepeatedFixed64String","writeRepeatedSfixed32","writeRepeatedSfixed64","writeRepeatedSfixed64String","writeRepeatedFloat","writeRepeatedDouble","writeRepeatedBool","writeRepeatedEnum","writeRepeatedString","writeRepeatedBytes","writeRepeatedMessage","writeRepeatedGroup","writeRepeatedFixedHash64","writeRepeatedVarintHash64","writePackedInt32","writePackedInt32String","writePackedInt64","writePackedSplitFixed64","writePackedSplitVarint64","writePackedSplitZigzagVarint64","writePackedInt64String","writePackedUint32","writePackedUint32String","writePackedUint64","writePackedUint64String","writePackedSint32","writePackedSint64","writePackedSint64String","writePackedSintHash64","writePackedFixed32","writePackedFixed64","writePackedFixed64String","writePackedSfixed32","writePackedSfixed64","writePackedSfixed64String","writePackedFloat","writePackedDouble","writePackedBool","writePackedEnum","writePackedFixedHash64","writePackedVarintHash64","arr_","valueCtor_","map_","arrClean","loadFromArray_","Entry_","valueWrapper","stringKeys_","wrapEntry_","ArrayIteratorIterable_","idx_","getEntryList","serializeBinary","deserializeBinary","ExtensionFieldInfo","fieldIndex","toObjectFn","isRepeated","ExtensionFieldBinaryInfo","fieldInfo","binaryReaderFn","binaryWriterFn","binaryMessageSerializeFn","binaryMessageDeserializeFn","isPacked","isMessageType","Message","GENERATE_TO_OBJECT","GENERATE_FROM_OBJECT","GENERATE_TO_STRING","ASSUME_LOCAL_ARRAYS","SERIALIZE_EMPTY_TRAILING_FIELDS","SUPPORTS_UINT8ARRAY_","getJsPbMessageId","messageId_","getIndex_","arrayIndexOffset_","hiddenES6Property_","getFieldNumber_","wrappers_","initPivotAndExtensionObject_","convertedPrimitiveFields_","repeatedFields","pivot_","EMPTY_LIST_SENTINEL_","maybeInitEmptyExtensionObject_","extensionObject_","computeOneofCase","isArray_","isExtensionObject_","toObjectList","toObjectExtension","serializeBinaryExtensions","readBinaryExtension","getRepeatedField","getOptionalFloatingPointField","getBooleanField","getRepeatedFloatingPointField","getRepeatedBooleanField","bytesAsB64","bytesAsU8","bytesListAsB64","assertConsistentTypes_","bytesListAsU8","getFieldWithDefault","getBooleanFieldWithDefault","getFloatingPointFieldWithDefault","getFieldProto3","getMapField","setField","setProto3IntField","setFieldIgnoringDefault_","setProto3FloatField","setProto3BooleanField","setProto3StringField","setProto3BytesField","setProto3EnumField","setProto3StringIntField","addToRepeatedField","setOneofField","getWrapperField","getRepeatedWrapperField","wrapRepeatedField_","setWrapperField","setOneofWrapperField","setRepeatedWrapperField","addToRepeatedWrapperField","toMap","syncMapFields_","setExtension","difference","compareFields","compareExtensions","cloneMessage","clone_","copyInto","registerMessageType","messageId","messageSetExtensions","messageSetExtensionsBinary","Export","calculator_options_pb","mediapipe","CalculatorOptions","extensions","extensionsBinary","mergeFields","$jspbMessageInstance","deserializeBinaryFromReader","setMergeFields","serializeBinaryToWriter","getMergeFields","clearMergeFields","hasMergeFields","any_pb","google","protobuf","Any","typeUrl","getValue_asB64","setTypeUrl","getTypeUrl","getValue_asU8","getTypeName","unpack","mediapipe_options_pb","MediaPipeOptions","packet_factory_pb","PacketFactoryOptions","PacketFactoryConfig","PacketManagerConfig","repeatedFields_","packetFactory","outputSidePacket","externalOutput","setPacketFactory","setOutputSidePacket","setExternalOutput","getPacketFactory","clearPacketFactory","hasPacketFactory","getOutputSidePacket","clearOutputSidePacket","hasOutputSidePacket","getExternalOutput","clearExternalOutput","hasExternalOutput","clearOptions","hasOptions","packetList","getPacketList","addPacket","setPacketList","clearPacketList","packet_generator_pb","PacketGeneratorOptions","PacketGeneratorConfig","packetGenerator","inputSidePacketList","externalInputList","outputSidePacketList","externalOutputList","setPacketGenerator","addInputSidePacket","addExternalInput","addOutputSidePacket","addExternalOutput","getInputSidePacketList","getExternalInputList","getOutputSidePacketList","getExternalOutputList","getPacketGenerator","clearPacketGenerator","hasPacketGenerator","setInputSidePacketList","clearInputSidePacketList","setExternalInputList","clearExternalInputList","setOutputSidePacketList","clearOutputSidePacketList","setExternalOutputList","clearExternalOutputList","status_handler_pb","StatusHandlerConfig","statusHandler","setStatusHandler","getStatusHandler","clearStatusHandler","hasStatusHandler","stream_handler_pb","InputStreamHandlerConfig","OutputStreamHandlerConfig","inputStreamHandler","setInputStreamHandler","getInputStreamHandler","clearInputStreamHandler","hasInputStreamHandler","outputStreamHandler","setOutputStreamHandler","getOutputStreamHandler","clearOutputStreamHandler","hasOutputStreamHandler","ExecutorConfig","InputCollection","InputCollectionSet","InputStreamInfo","ProfilerConfig","CalculatorGraphConfig","setName","setType","sidePacketNameList","externalInputNameList","addSidePacketName","addExternalInputName","setInputType","setFileName","getSidePacketNameList","getExternalInputNameList","getInputType","getFileName","InputType","UNKNOWN","RECORDIO","FOREIGN_RECORDIO","FOREIGN_CSV_TEXT","INVALID_UPPER_BOUND","setSidePacketNameList","clearSidePacketNameList","setExternalInputNameList","clearExternalInputNameList","inputCollectionList","getInputCollectionList","addInputCollection","setInputCollectionList","clearInputCollectionList","tagIndex","backEdge","setTagIndex","setBackEdge","getTagIndex","getBackEdge","histogramIntervalSizeUsec","numHistogramIntervals","enableInputOutputLatency","enableProfiler","enableStreamLatency","usePacketTimestampForAddedPacket","traceLogCapacity","traceEventTypesDisabledList","traceLogPath","traceLogCount","traceLogIntervalUsec","traceLogMarginUsec","traceLogDurationEvents","traceLogIntervalCount","traceLogDisabled","traceEnabled","traceLogInstantEvents","calculatorFilter","setHistogramIntervalSizeUsec","setNumHistogramIntervals","setEnableInputOutputLatency","setEnableProfiler","setEnableStreamLatency","setUsePacketTimestampForAddedPacket","setTraceLogCapacity","addTraceEventTypesDisabled","setTraceLogPath","setTraceLogCount","setTraceLogIntervalUsec","setTraceLogMarginUsec","setTraceLogDurationEvents","setTraceLogIntervalCount","setTraceLogDisabled","setTraceEnabled","setTraceLogInstantEvents","setCalculatorFilter","getHistogramIntervalSizeUsec","getNumHistogramIntervals","getEnableInputOutputLatency","getEnableProfiler","getEnableStreamLatency","getUsePacketTimestampForAddedPacket","getTraceLogCapacity","getTraceEventTypesDisabledList","getTraceLogPath","getTraceLogCount","getTraceLogIntervalUsec","getTraceLogMarginUsec","getTraceLogDurationEvents","getTraceLogIntervalCount","getTraceLogDisabled","getTraceEnabled","getTraceLogInstantEvents","getCalculatorFilter","setTraceEventTypesDisabledList","clearTraceEventTypesDisabledList","nodeList","getNodeList","packetFactoryList","getPacketFactoryList","packetGeneratorList","getPacketGeneratorList","numThreads","statusHandlerList","getStatusHandlerList","inputStreamList","outputStreamList","maxQueueSize","reportDeadlock","executorList","getExecutorList","profilerConfig","getProfilerConfig","pb_package","graphOptionsList","getGraphOptionsList","addNode","addPacketFactory","addPacketGenerator","setNumThreads","addStatusHandler","addInputStream","addOutputStream","setMaxQueueSize","setReportDeadlock","addExecutor","setProfilerConfig","setPackage","addGraphOptions","getNumThreads","getInputStreamList","getOutputStreamList","getMaxQueueSize","getReportDeadlock","getPackage","calculator","nodeOptionsList","getNodeOptionsList","sourceLayer","bufferSizeHint","inputStreamInfoList","getInputStreamInfoList","executor","maxInFlight","optionValueList","setCalculator","addNodeOptions","setSourceLayer","setBufferSizeHint","addInputStreamInfo","setExecutor","setMaxInFlight","addOptionValue","getCalculator","getSourceLayer","getBufferSizeHint","getExecutor","getMaxInFlight","getOptionValueList","setInputStreamList","clearInputStreamList","setOutputStreamList","clearOutputStreamList","setNodeOptionsList","clearNodeOptionsList","setInputStreamInfoList","clearInputStreamInfoList","clearProfilerConfig","hasProfilerConfig","setOptionValueList","clearOptionValueList","setNodeList","clearNodeList","setPacketFactoryList","clearPacketFactoryList","setPacketGeneratorList","clearPacketGeneratorList","setStatusHandlerList","clearStatusHandlerList","setExecutorList","clearExecutorList","setGraphOptionsList","clearGraphOptionsList","detection_pb","location_data_pb","rasterization_pb","Rasterization","Interval","intervalList","getIntervalList","addInterval","leftX","rightX","setY","setLeftX","setRightX","clearY","hasY","getLeftX","clearLeftX","hasLeftX","getRightX","clearRightX","hasRightX","setIntervalList","clearIntervalList","LocationData","BoundingBox","RelativeBoundingBox","BinaryMask","RelativeKeypoint","getBoundingBox","relativeBoundingBox","getRelativeBoundingBox","getMask","relativeKeypointsList","getRelativeKeypointsList","setFormat","setBoundingBox","setRelativeBoundingBox","setMask","addRelativeKeypoints","GLOBAL","BOUNDING_BOX","RELATIVE_BOUNDING_BOX","MASK","xmin","ymin","setXmin","setYmin","getXmin","clearXmin","hasXmin","getYmin","clearYmin","hasYmin","clearWidth","hasWidth","clearHeight","hasHeight","rasterization","getRasterization","setRasterization","clearRasterization","hasRasterization","keypointLabel","setX","setKeypointLabel","setScore","clearX","hasX","getKeypointLabel","clearKeypointLabel","hasKeypointLabel","getScore","clearScore","hasScore","getFormat","clearFormat","hasFormat","clearBoundingBox","hasBoundingBox","clearRelativeBoundingBox","hasRelativeBoundingBox","clearMask","setRelativeKeypointsList","clearRelativeKeypointsList","Detection","AssociatedDetection","DetectionList","labelList","labelIdList","scoreList","locationData","getLocationData","featureTag","trackId","detectionId","associatedDetectionsList","getAssociatedDetectionsList","displayNameList","timestampUsec","addLabel","addLabelId","addScore","setLocationData","setFeatureTag","setTrackId","setDetectionId","addAssociatedDetections","addDisplayName","setTimestampUsec","getLabelList","getLabelIdList","getScoreList","getDisplayNameList","setId","setConfidence","getId","clearId","hasId","getConfidence","clearConfidence","hasConfidence","setLabelList","clearLabelList","setLabelIdList","clearLabelIdList","setScoreList","clearScoreList","clearLocationData","hasLocationData","getFeatureTag","clearFeatureTag","hasFeatureTag","getTrackId","clearTrackId","hasTrackId","getDetectionId","clearDetectionId","hasDetectionId","setAssociatedDetectionsList","clearAssociatedDetectionsList","setDisplayNameList","clearDisplayNameList","getTimestampUsec","clearTimestampUsec","hasTimestampUsec","detectionList","getDetectionList","addDetection","setDetectionList","clearDetectionList","base_options_pb","acceleration_pb","inference_calculator_pb","InferenceCalculatorOptions","Delegate","oneofGroups_","TfLite","Gpu","Nnapi","Xnnpack","modelPath","useGpu","useNnapi","cpuNumThread","getDelegate","setModelPath","setUseGpu","setUseNnapi","setCpuNumThread","setDelegate","DelegateCase","DELEGATE_NOT_SET","TFLITE","GPU","NNAPI","XNNPACK","getDelegateCase","tflite","getTflite","gpu","getGpu","nnapi","getNnapi","xnnpack","getXnnpack","setTflite","setGpu","setNnapi","setXnnpack","useAdvancedGpuApi","api","allowPrecisionLoss","cachedKernelPath","serializedModelDir","modelToken","usage","setUseAdvancedGpuApi","setApi","setAllowPrecisionLoss","setCachedKernelPath","setSerializedModelDir","setModelToken","setUsage","Api","OPENGL","OPENCL","InferenceUsage","UNSPECIFIED","FAST_SINGLE_ANSWER","SUSTAINED_SPEED","getUseAdvancedGpuApi","clearUseAdvancedGpuApi","hasUseAdvancedGpuApi","getApi","clearApi","hasApi","getAllowPrecisionLoss","clearAllowPrecisionLoss","hasAllowPrecisionLoss","getCachedKernelPath","clearCachedKernelPath","hasCachedKernelPath","getSerializedModelDir","clearSerializedModelDir","hasSerializedModelDir","getModelToken","clearModelToken","hasModelToken","getUsage","clearUsage","hasUsage","cacheDir","acceleratorName","setCacheDir","setAcceleratorName","getCacheDir","clearCacheDir","hasCacheDir","getAcceleratorName","clearAcceleratorName","hasAcceleratorName","clearNumThreads","hasNumThreads","clearTflite","hasTflite","clearGpu","hasGpu","clearNnapi","hasNnapi","clearXnnpack","hasXnnpack","getModelPath","clearModelPath","hasModelPath","getUseGpu","clearUseGpu","hasUseGpu","getUseNnapi","clearUseNnapi","hasUseNnapi","getCpuNumThread","clearCpuNumThread","hasCpuNumThread","clearDelegate","hasDelegate","tasks","core","Acceleration","external_file_pb","ExternalFile","FileDescriptorMeta","FilePointerMeta","fileContent","getFileContent_asB64","fileDescriptorMeta","getFileDescriptorMeta","filePointerMeta","getFilePointerMeta","setFileContent","setFileDescriptorMeta","setFilePointerMeta","getFileContent","getFileContent_asU8","clearFileContent","hasFileContent","clearFileName","hasFileName","clearFileDescriptorMeta","hasFileDescriptorMeta","clearFilePointerMeta","hasFilePointerMeta","setFd","setOffset","getFd","clearFd","hasFd","clearLength","hasLength","getOffset","clearOffset","hasOffset","pointer","setPointer","getPointer","clearPointer","hasPointer","BaseOptions","modelAsset","getModelAsset","useStreamMode","acceleration","getAcceleration","setModelAsset","setUseStreamMode","setAcceleration","clearModelAsset","hasModelAsset","getUseStreamMode","clearUseStreamMode","hasUseStreamMode","clearAcceleration","hasAcceleration","face_detector_graph_options_pb","FaceDetectorGraphOptions","getBaseOptions","minDetectionConfidence","minSuppressionThreshold","setBaseOptions","setMinDetectionConfidence","setMinSuppressionThreshold","setNumFaces","clearBaseOptions","hasBaseOptions","getMinDetectionConfidence","clearMinDetectionConfidence","hasMinDetectionConfidence","getMinSuppressionThreshold","clearMinSuppressionThreshold","hasMinSuppressionThreshold","getNumFaces","clearNumFaces","hasNumFaces","detection_result","convertFromDetectionProto","DEFAULT_CATEGORY_INDEX","keypoints","_step5","_iterator5","vision_task_runner","rect_pb","NormalizedRect","xCenter","yCenter","rectId","setXCenter","setYCenter","setRectId","getXCenter","clearXCenter","hasXCenter","getYCenter","clearYCenter","hasYCenter","clearRotation","hasRotation","getRectId","clearRectId","hasRectId","task_runner","graph_runner","createGraphRunner","createMediaPipeLib","GraphRunner","CALCULATOR_GRAPH_CONFIG_LISTENER_NAME","autoResizeCanvas","wasmModule","audioPtr","audioSize","hasMultiStreamSupport","_addIntToInputStream","_initializeGraph","_r4","setGraph","initializeGraph","TextEncoder","_malloc","HEAPU8","_changeBinaryGraph","_changeTextGraph","_free","_configureAudio","wrapStringPtr","_setAutoRenderToScreen","_bindTextureToStream","_bindTextureToCanvas","_this$bindTextureToSt","bindTextureToStream","_this$bindTextureToSt2","_slicedToArray","HEAPU32","HEAPF64","_processGl","stringToNewUTF8","_step6","_iterator6","setListener","_getGraphConfig","simpleListeners","errorListener","emptyPacketListeners","addAudioToStreamWithShape","HEAPF32","_addAudioToInputStream","_this7$bindTextureToS","_this7$bindTextureToS2","_addBoundTextureToStream","_addBoolToInputStream","_addDoubleToInputStream","_addFloatToInputStream","_addStringToInputStream","wrapStringPtrPtr","_addFlatHashMapToInputStream","_addProtoToInputStream","_addEmptyPacketToInputStream","_addBoolToInputSidePacket","_addDoubleToInputSidePacket","_addFloatToInputSidePacket","_addIntToInputSidePacket","_addStringToInputSidePacket","_addProtoToInputSidePacket","_attachBoolListener","setVectorListener","_attachBoolVectorListener","_this24","_attachIntListener","_this25","_attachIntVectorListener","_this26","_attachDoubleListener","_this27","_attachDoubleVectorListener","_this28","_attachFloatListener","_this29","_attachFloatVectorListener","_this30","_attachStringListener","_this31","_attachStringVectorListener","_this32","_attachProtoListener","_this33","_attachProtoVectorListener","_this34","_attachAudioListener","_waitUntilIdle","_closeGraph","_o2","_t9","importScripts","_e7","ModuleFactory","Module","locateFile","mainScriptUrlOrBlob","register_model_resources_graph_service","SupportModelResourcesGraphService","_e8","_inherits","_class","_createSuper","_registerModelResourcesGraphService","TaskRunner","createTaskRunner","CachedGraphRunner","inference_calculator_pb_1","calculator_pb_1","acceleration_pb_1","external_file_pb_1","graph_runner_1$1","register_model_resources_graph_service_1$1","FREE_MEMORY_STREAM","UNUSED_STREAM_SUFFIX","CachedGraphRunnerType","_CachedGraphRunnerTyp","_super2","_x14","_x15","_x16","_createTaskRunner","assetLoaderPath","graphRunner","processingErrors","latestOutputTimestamp","setAutoRenderToScreen","_this35","modelAssetBuffer","FS_unlink","FS_createDataFile","setExternalFile","refreshGraph","onGraphRefreshed","getCalculatorGraphConfig","_this36","attachErrorListener","registerModelResourcesGraphService","keepaliveNode","handleErrors","finishProcessing","addBoolToStream","closeGraph","_createInstance","createInstance","_x17","_x18","_x19","_x20","graph_runner_image_lib","SupportImage","_e9","_class2","_super3","_this37","_this37$bindTextureTo","_this37$bindTextureTo2","wasmImageModule","_addBoundTextureAsImageToStream","_this38","_attachImageListener","_this39","_attachImageVectorListener","VisionTaskRunner","VisionGraphRunner","rect_pb_1","task_runner_1","image_1$1","image_shader_context_1","mask_1$1","graph_runner_1","graph_runner_image_lib_1","platform_utils_1","register_model_resources_graph_service_1","GraphRunnerVisionType","_GraphRunnerVisionTyp","_super4","_task_runner_1$TaskRu","_super5","_this40","imageStreamName","normRectStreamName","roiAllowed","_getPrototypeOf","getSynctheticTimestamp","regionOfInterest","rotationDegrees","_this$getImageSourceS","getImageSourceSize","_this$getImageSourceS2","convertToNormalizedRect","addProtoToStream","addGpuBufferAsImageToStream","_createVisionInstance","createVisionInstance","_x21","_x22","_x23","face_detector_options","face_detector_result","__createBinding","__exportStar","FaceDetector","_d$VisionTaskRunner","_super6","_this41","detections","applyOptions","processImageData","processVideoData","_step7","_iterator7","_this42","attachProtoVectorListener","addJsFaceDetections","setLatestOutputTimestamp","attachEmptyPacketListener","_createFromModelPath","createFromModelPath","_x24","_x25","face_landmarker","classification_pb","Classification","ClassificationList","ClassificationListCollection","setIndex","setLabel","setDisplayName","getIndex","clearIndex","hasIndex","getLabel","clearLabel","hasLabel","getDisplayName","clearDisplayName","hasDisplayName","classificationList","getClassificationList","addClassification","setClassificationList","clearClassificationList","classificationListList","getClassificationListList","addClassificationList","setClassificationListList","clearClassificationListList","landmark_pb","Landmark","LandmarkList","LandmarkListCollection","NormalizedLandmark","NormalizedLandmarkList","NormalizedLandmarkListCollection","presence","setZ","setVisibility","setPresence","getZ","clearZ","hasZ","getVisibility","clearVisibility","hasVisibility","getPresence","clearPresence","hasPresence","landmarkList","getLandmarkList","addLandmark","setLandmarkList","clearLandmarkList","landmarkListList","getLandmarkListList","addLandmarkList","setLandmarkListList","clearLandmarkListList","face_geometry_pb","matrix_data_pb","MatrixData","packedDataList","setRows","setCols","addPackedData","setLayout","getPackedDataList","Layout","COLUMN_MAJOR","ROW_MAJOR","getRows","clearRows","hasRows","getCols","clearCols","hasCols","setPackedDataList","clearPackedDataList","getLayout","clearLayout","hasLayout","mesh_3d_pb","face_geometry","Mesh3d","vertexType","primitiveType","vertexBufferList","indexBufferList","setVertexType","setPrimitiveType","addVertexBuffer","addIndexBuffer","getVertexBufferList","getIndexBufferList","VertexType","VERTEX_PT","PrimitiveType","TRIANGLE","getVertexType","clearVertexType","hasVertexType","getPrimitiveType","clearPrimitiveType","hasPrimitiveType","setVertexBufferList","clearVertexBufferList","setIndexBufferList","clearIndexBufferList","FaceGeometry","mesh","getMesh","poseTransformMatrix","getPoseTransformMatrix","setMesh","setPoseTransformMatrix","clearMesh","hasMesh","clearPoseTransformMatrix","hasPoseTransformMatrix","face_landmarker_graph_options_pb","face_geometry_graph_options_pb","geometry_pipeline_calculator_pb","FaceGeometryPipelineCalculatorOptions","metadataFile","getMetadataFile","setMetadataFile","clearMetadataFile","hasMetadataFile","FaceGeometryGraphOptions","geometryPipelineOptions","getGeometryPipelineOptions","setGeometryPipelineOptions","clearGeometryPipelineOptions","hasGeometryPipelineOptions","face_landmarks_detector_graph_options_pb","face_blendshapes_graph_options_pb","FaceBlendshapesGraphOptions","FaceLandmarksDetectorGraphOptions","smoothLandmarks","faceBlendshapesGraphOptions","getFaceBlendshapesGraphOptions","setSmoothLandmarks","setFaceBlendshapesGraphOptions","getSmoothLandmarks","clearSmoothLandmarks","hasSmoothLandmarks","clearFaceBlendshapesGraphOptions","hasFaceBlendshapesGraphOptions","FaceLandmarkerGraphOptions","faceDetectorGraphOptions","getFaceDetectorGraphOptions","faceLandmarksDetectorGraphOptions","getFaceLandmarksDetectorGraphOptions","minTrackingConfidence","faceGeometryGraphOptions","getFaceGeometryGraphOptions","setFaceDetectorGraphOptions","setFaceLandmarksDetectorGraphOptions","setMinTrackingConfidence","setFaceGeometryGraphOptions","clearFaceDetectorGraphOptions","hasFaceDetectorGraphOptions","clearFaceLandmarksDetectorGraphOptions","hasFaceLandmarksDetectorGraphOptions","getMinTrackingConfidence","clearMinTrackingConfidence","hasMinTrackingConfidence","clearFaceGeometryGraphOptions","hasFaceGeometryGraphOptions","classifier_result","convertFromClassificationResultProto","convertFromClassifications","DEFAULT_INDEX$1","DEFAULT_SCORE","headIndex","headName","convertFromClassificationsProto","getHeadIndex","getHeadName","classifications","getClassificationsList","hasTimestampMs","timestampMs","getTimestampMs","landmark_result","convertToLandmarks","_step8","_iterator8","convertToWorldLandmarks","_step9","_iterator9","face_landmarks_connections","FACE_LANDMARKS_CONTOURS","_toConsumableArray","face_landmarker_options","face_landmarker_result","_m$VisionTaskRunner","_super7","_this43","facialTransformationMatrixes","outputFacialTransformationMatrixes","initDefaults","minFaceDetectionConfidence","minFacePresenceConfidence","resetResults","_step10","_iterator10","_step11","_iterator11","_step12","_iterator12","_this44","addJsLandmarks","addBlenshape","addFacialTransformationMatrixes","face_stylizer","face_stylizer_graph_options_pb","FaceStylizerGraphOptions","faceLandmarkerGraphOptions","getFaceLandmarkerGraphOptions","faceAlignmentSize","setFaceLandmarkerGraphOptions","setFaceAlignmentSize","clearFaceLandmarkerGraphOptions","hasFaceLandmarkerGraphOptions","getFaceAlignmentSize","clearFaceAlignmentSize","hasFaceAlignmentSize","face_stylizer_options","FaceStylizer","_s$VisionTaskRunner","_super8","_this45","userCallback","_this46","attachImageListener","convertToMPImage","gesture_recognizer","gesture_classifier_graph_options_pb","classifier_options_pb","processors","ClassifierOptions","displayNamesLocale","maxResults","scoreThreshold","categoryAllowlistList","categoryDenylistList","setDisplayNamesLocale","setMaxResults","setScoreThreshold","addCategoryAllowlist","addCategoryDenylist","getCategoryAllowlistList","getCategoryDenylistList","getDisplayNamesLocale","clearDisplayNamesLocale","hasDisplayNamesLocale","getMaxResults","clearMaxResults","hasMaxResults","getScoreThreshold","clearScoreThreshold","hasScoreThreshold","setCategoryAllowlistList","clearCategoryAllowlistList","setCategoryDenylistList","clearCategoryDenylistList","GestureClassifierGraphOptions","classifierOptions","getClassifierOptions","setClassifierOptions","clearClassifierOptions","hasClassifierOptions","gesture_recognizer_graph_options_pb","hand_gesture_recognizer_graph_options_pb","gesture_embedder_graph_options_pb","GestureEmbedderGraphOptions","HandGestureRecognizerGraphOptions","gestureEmbedderGraphOptions","getGestureEmbedderGraphOptions","cannedGestureClassifierGraphOptions","getCannedGestureClassifierGraphOptions","customGestureClassifierGraphOptions","getCustomGestureClassifierGraphOptions","setGestureEmbedderGraphOptions","setCannedGestureClassifierGraphOptions","setCustomGestureClassifierGraphOptions","clearGestureEmbedderGraphOptions","hasGestureEmbedderGraphOptions","clearCannedGestureClassifierGraphOptions","hasCannedGestureClassifierGraphOptions","clearCustomGestureClassifierGraphOptions","hasCustomGestureClassifierGraphOptions","hand_landmarker_graph_options_pb","hand_detector_graph_options_pb","hand_detector","HandDetectorGraphOptions","numHands","setNumHands","getNumHands","clearNumHands","hasNumHands","hand_landmarks_detector_graph_options_pb","hand_landmarker","HandLandmarksDetectorGraphOptions","HandLandmarkerGraphOptions","handDetectorGraphOptions","getHandDetectorGraphOptions","handLandmarksDetectorGraphOptions","getHandLandmarksDetectorGraphOptions","setHandDetectorGraphOptions","setHandLandmarksDetectorGraphOptions","clearHandDetectorGraphOptions","hasHandDetectorGraphOptions","clearHandLandmarksDetectorGraphOptions","hasHandLandmarksDetectorGraphOptions","GestureRecognizerGraphOptions","handLandmarkerGraphOptions","getHandLandmarkerGraphOptions","handGestureRecognizerGraphOptions","getHandGestureRecognizerGraphOptions","setHandLandmarkerGraphOptions","setHandGestureRecognizerGraphOptions","clearHandLandmarkerGraphOptions","hasHandLandmarkerGraphOptions","clearHandGestureRecognizerGraphOptions","hasHandGestureRecognizerGraphOptions","classifier_options","convertClassifierOptionsToProto","classifier_options_pb_1","categoryAllowlist","categoryDenylist","hand_landmarks_connections","HAND_CONNECTIONS","gesture_recognizer_options","gesture_recognizer_result","GestureRecognizer","_f$VisionTaskRunner","_super9","_this47","gestures","worldLandmarks","handednesses","minHandDetectionConfidence","minHandPresenceConfidence","cannedGesturesClassifierOptions","customGesturesClassifierOptions","processResults","_step13","_iterator13","_step14","_iterator14","_step15","_iterator15","_step16","_iterator16","_step17","_iterator17","_step18","_iterator18","_this48","adddJsWorldLandmarks","_this48$gestures","toJsCategories","_this48$handednesses","hand_landmarker_options","hand_landmarker_result","HandLandmarker","_c$VisionTaskRunner","_super10","_this49","_step19","_iterator19","_step20","_iterator20","_step21","_iterator21","_step22","_iterator22","_this50","_this50$handednesses","image_classifier","classifications_pb","Classifications","ClassificationResult","setHeadIndex","setHeadName","hasClassificationList","clearHeadIndex","hasHeadIndex","clearHeadName","hasHeadName","classificationsList","addClassifications","setTimestampMs","setClassificationsList","clearClassificationsList","clearTimestampMs","image_classifier_graph_options_pb","ImageClassifierGraphOptions","image_classifier_options","image_classifier_result","ImageClassifier","_l$VisionTaskRunner","_super11","_this51","classificationResult","_this52","attachProtoListener","image_embedder","embeddings_pb","FloatEmbedding","QuantizedEmbedding","Embedding","EmbeddingResult","valuesList","addValues","getValuesList","setValuesList","clearValuesList","getValues_asB64","getValues_asU8","clearValues","hasValues","EmbeddingCase","EMBEDDING_NOT_SET","FLOAT_EMBEDDING","QUANTIZED_EMBEDDING","getEmbeddingCase","floatEmbedding","getFloatEmbedding","quantizedEmbedding","getQuantizedEmbedding","setFloatEmbedding","setQuantizedEmbedding","clearFloatEmbedding","hasFloatEmbedding","clearQuantizedEmbedding","hasQuantizedEmbedding","embeddingsList","getEmbeddingsList","addEmbeddings","setEmbeddingsList","clearEmbeddingsList","image_embedder_graph_options_pb","embedder_options_pb","EmbedderOptions","l2Normalize","setL2Normalize","setQuantize","getL2Normalize","clearL2Normalize","hasL2Normalize","getQuantize","clearQuantize","hasQuantize","ImageEmbedderGraphOptions","embedderOptions","getEmbedderOptions","setEmbedderOptions","clearEmbedderOptions","hasEmbedderOptions","embedder_options","convertEmbedderOptionsToProto","embedder_options_pb_1","embedder_result","convertFromEmbeddingResultProto","DEFAULT_INDEX","convertFromEmbeddingsProto","embeddings","cosine_similarity","computeCosineSimilarity","compute","convertToBytes","image_embedder_options","image_embedder_result","ImageEmbedder","_g$VisionTaskRunner","_super12","_this53","_this54","addJsImageEmdedding","image_segmenter","tensors_to_segmentation_calculator_pb","segmenter_options_pb","SegmenterOptions","activation","setOutputType","setActivation","OutputType","CATEGORY_MASK","CONFIDENCE_MASK","Activation","SIGMOID","SOFTMAX","getOutputType","clearOutputType","hasOutputType","getActivation","clearActivation","hasActivation","label_map_pb","LabelMapItem","childNameList","addChildName","getChildNameList","clearName","hasName","setChildNameList","clearChildNameList","TensorsToSegmentationCalculatorOptions","segmenterOptions","getSegmenterOptions","labelItemsMap","getLabelItemsMap","setSegmenterOptions","clearSegmenterOptions","hasSegmenterOptions","clearLabelItemsMap","image_segmenter_graph_options_pb","ImageSegmenterGraphOptions","image_segmenter_result","ImageSegmenterResult","confidenceMasks","categoryMask","qualityScores","image_segmenter_options","ImageSegmenter","_d$VisionTaskRunner2","_super13","_this55","labels","outputCategoryMask","outputConfidenceMasks","populateLabels","_this56","freeKeepaliveStreams","_this57","addKeepaliveNode","keepStreamAlive","attachImageVectorListener","convertToMPMask","attachFloatVectorListener","interactive_segmenter","color_pb","Color","ColorMap","setR","setG","setB","getR","clearR","hasR","getG","clearG","hasG","getB","clearB","hasB","labelToColorMap","getLabelToColorMap","clearLabelToColorMap","render_data_pb","RenderData","RenderAnnotation","Rectangle","FilledRectangle","RoundedRectangle","FilledRoundedRectangle","Oval","FilledOval","Line","GradientLine","Scribble","Arrow","Text","RenderViewport","renderAnnotationsList","getRenderAnnotationsList","sceneClass","sceneViewport","getSceneViewport","addRenderAnnotations","setSceneClass","setSceneViewport","setRenderAnnotationsList","clearRenderAnnotationsList","getSceneClass","clearSceneClass","hasSceneClass","clearSceneViewport","hasSceneViewport","DataCase","DATA_NOT_SET","RECTANGLE","FILLED_RECTANGLE","OVAL","FILLED_OVAL","POINT","LINE","ARROW","ROUNDED_RECTANGLE","FILLED_ROUNDED_RECTANGLE","GRADIENT_LINE","SCRIBBLE","getDataCase","filledRectangle","getFilledRectangle","oval","getOval","filledOval","getFilledOval","getPoint","getLine","arrow","getArrow","roundedRectangle","getRoundedRectangle","filledRoundedRectangle","getFilledRoundedRectangle","gradientLine","getGradientLine","scribble","getScribble","getColor","sceneTag","setFilledRectangle","setOval","setFilledOval","setLine","setArrow","setRoundedRectangle","setFilledRoundedRectangle","setGradientLine","setScribble","setThickness","setColor","setSceneTag","topLeftThickness","setLeft","setTop","setRight","setBottom","setNormalized","setTopLeftThickness","clearLeft","hasLeft","getTop","clearTop","hasTop","clearRight","hasRight","getBottom","clearBottom","hasBottom","getNormalized","clearNormalized","hasNormalized","getTopLeftThickness","clearTopLeftThickness","hasTopLeftThickness","getFillColor","setFillColor","clearRectangle","hasRectangle","clearFillColor","hasFillColor","cornerRadius","lineType","setCornerRadius","setLineType","getCornerRadius","clearCornerRadius","hasCornerRadius","getLineType","clearLineType","hasLineType","clearRoundedRectangle","hasRoundedRectangle","clearOval","hasOval","xStart","yStart","xEnd","yEnd","setXStart","setYStart","setXEnd","setYEnd","LineType","SOLID","DASHED","getXStart","clearXStart","hasXStart","getYStart","clearYStart","hasYStart","getXEnd","clearXEnd","hasXEnd","getYEnd","clearYEnd","hasYEnd","getColor1","getColor2","setColor1","setColor2","clearColor1","hasColor1","clearColor2","hasColor2","pointList","getPointList","addPoint","setPointList","clearPointList","displayText","baseline","fontHeight","fontFace","centerHorizontally","centerVertically","outlineThickness","outlineColor","getOutlineColor","setDisplayText","setBaseline","setFontHeight","setFontFace","setCenterHorizontally","setCenterVertically","setOutlineThickness","setOutlineColor","getDisplayText","clearDisplayText","hasDisplayText","getBaseline","clearBaseline","hasBaseline","getFontHeight","clearFontHeight","hasFontHeight","getFontFace","clearFontFace","hasFontFace","getCenterHorizontally","clearCenterHorizontally","hasCenterHorizontally","getCenterVertically","clearCenterVertically","hasCenterVertically","getOutlineThickness","clearOutlineThickness","hasOutlineThickness","clearOutlineColor","hasOutlineColor","clearFilledRectangle","hasFilledRectangle","clearFilledOval","hasFilledOval","clearPoint","hasPoint","clearLine","hasLine","clearArrow","hasArrow","clearText","hasText","clearFilledRoundedRectangle","hasFilledRoundedRectangle","clearGradientLine","hasGradientLine","clearScribble","hasScribble","getThickness","clearThickness","hasThickness","hasColor","getSceneTag","clearSceneTag","hasSceneTag","widthPx","heightPx","composeOnVideo","setWidthPx","setHeightPx","setComposeOnVideo","getWidthPx","clearWidthPx","hasWidthPx","getHeightPx","clearHeightPx","hasHeightPx","getComposeOnVideo","clearComposeOnVideo","hasComposeOnVideo","interactive_segmenter_result","InteractiveSegmenterResult","interactive_segmenter_options","InteractiveSegmenter","_p$VisionTaskRunner","_super14","_this58","processRenderData","_this59","keypoint","_step23","_iterator23","object_detector","object_detector_options_pb","ObjectDetectorOptions","object_detector_options","object_detector_result","ObjectDetector","_d$VisionTaskRunner3","_super15","_this60","_step24","_iterator24","_this61","addJsObjectDetections","_createFromModelPath2","_x26","_x27","pose_landmarker","pose_detector_graph_options_pb","pose_detector","PoseDetectorGraphOptions","numPoses","setNumPoses","getNumPoses","clearNumPoses","hasNumPoses","pose_landmarker_graph_options_pb","pose_landmarks_detector_graph_options_pb","PoseLandmarksDetectorGraphOptions","PoseLandmarkerGraphOptions","poseDetectorGraphOptions","getPoseDetectorGraphOptions","poseLandmarksDetectorGraphOptions","getPoseLandmarksDetectorGraphOptions","setPoseDetectorGraphOptions","setPoseLandmarksDetectorGraphOptions","clearPoseDetectorGraphOptions","hasPoseDetectorGraphOptions","clearPoseLandmarksDetectorGraphOptions","hasPoseLandmarksDetectorGraphOptions","pose_landmarker_result","PoseLandmarkerResult","segmentationMasks","pose_landmarker_options","PoseLandmarker","_g$VisionTaskRunner2","_super16","_this62","outputSegmentationMasks","minPoseDetectionConfidence","minPosePresenceConfidence","_step25","_iterator25","_step26","_iterator26","_this63","POSE_CONNECTIONS","PoseLandmarker_1","ObjectDetector_1","InteractiveSegmenter_1","ImageSegmenter_1","ImageEmbedder_1","ImageClassifier_1","HandLandmarker_1","GestureRecognizer_1","FaceStylizer_1","FaceLandmarker_1","FaceDetector_1","MPMask_1","MPImage_1","FilesetResolver_1","DrawingUtils_1","fileset_resolver_1","drawing_utils_1","image_1","mask_1","face_detector_1","face_landmarker_1","face_stylizer_1","gesture_recognizer_1","hand_landmarker_1","image_classifier_1","image_embedder_1","image_segmenter_1","interactive_segmenter_1","object_detector_1","pose_landmarker_1","createMedian","_median","middle2","middle","createUnitFunction","createCot","concatAll","rmd160","saltLen","getDigest","ipad1","ipad2","shaFunc","rmd160Func","DK","block1","destPos","createLog","ECDH","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","otherPub","singletonRandom","createRng","setSeed","createLcm","lcmTypes","lcmManySignature","_lcmBigNumber","$isFrozen","createSqueeze","applyCallback","mappingFnName","args3","signature3","tryWithArgs","args2","args1","_err$data","argsDesc","createMatAlgo05xSfSf","wai","wbi","createAsin","createSech","createSort","compareAsc","compareDesc","_arrayIsVector","_matrixIsVector","_comparator","createCosh","createLgamma","SMALL_RE","SMALL_IM","lgammaComplex","TWOPI","LOGPI","REFLECTION","lgammaStirling","lgammaRecurrence","leftPart","rzz","rightPart","signflips","shiftprod","nsb","createMap","naturalSort","oFxNcL","oFyNcL","sre","dre","hre","ore","insensitive","xN","yN","xD","yD","cLoc","numS","createAcosh","getNAF","getJSF","BaseCurve","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","_getDoubles","nafW","repr","nafPoints","_getNAFPoints","defW","wndWidth","comb","jsf","ja","encodeCompressed","createSetCartesian","createCube","FUNC_ERROR_TEXT","createRotate","_validateSize","matrixRes","expectedSize","actualSize","gcdTypes","gcdManyTypesSignature","is1d","createGcd","_gcdNumber","_gcdBigNumber","createFraction","extendStatics","__extends","__assign","__rest","__spreadArrays","jl","cosm1","parser_exit","logHypot","tokens","loh","noIM","oneMinus","onePlus","pendingTotal","_delta8","_delta32","ObjectWrappingMap","wrappedObject","createEmptyMap","mapOrObject","isMap","createLup","_denseLUP","_sparseLUP","ldata","lsize","udata","usize","pabsv","absv","vij","pvCo","pvOc","swapIndeces","spa","vkj","vik","makeTable","crcTable","Entity","_createNamed","Generated","_initNamed","createIndex","createIsNegative","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","uid","REQUIRED","METADATA","setMetadata","objectID","weakData","getWeakData","createPrint","_print","createFlatten","modelValue","BCardCode","formatarDataGlobal","validarData","VueSelect","dataPassada","dataFutura","validaRG","validaCNPJ","rightF","leftF","fe","fromNullableF","fromNullableFE","chainM","fromNullableKM","fromNullableKMe","flatMapM","altValidation","orElseM","createDotPow","powScalarSignatures","powScalar","minAssert","minUtils","m8","m14","m24","computer","createNorm","_norm","_vectorNormPlusInfinity","pinf","_vectorNormMinusInfinity","ninf","_vectorNorm","NEGATIVE_INFINITY","_matrixNormFrobenius","fro","_matrixNormOne","maxc","_matrixNormTwo","sizeX","squaredX","eigenVals","rho","_matrixNormInfinity","maxr","_matrixNorm","i2ops","$reduceRight","milliseconds","fnF","fnG","fnH","fnI","createDotDivide","createSolveODE","_rk","butcherTableau","tspan","wrongTSpan","isNumOrBig","isForwards","firstStep","minStep","timeVars","minDelta","maxDelta","maxIter","bp","deltaB","_createOngoing","trimStep","_createTrimStep","TE","_rk23","_rk45","_solveODE","RK23","RK45","methodOptions","methodsWithQuotes","availableMethodsString","outOfBounds","_matrixSolveODE","sol","formatBigNumberToBase","BigNumberCtor","big2","valueWithoutExp","_format","looksLikeFraction","syntax","controlCharacters","dimNext","validateIndexSourceSize","valueSize","sourceDim","validateIndex","isEmptyIndex","_defaultValue","oldLen","newLen","minLen","flatArray","processSizesWildcard","_reshape","processedSizes","WILDCARD","wildCardIndex","isMoreThanOneWildcard","hasWildcard","canReplaceWildcard","tmpArray2","tmpArray","sizeIndex","_squeeze","unsqueeze","_unsqueeze","filterRegExp","identify","generalize","getArrayDataType","_isArray","itemType","concatRecursive","concatDim","broadcastSizes","checkBroadcastingRules","toSize","broadcastTo","Asize","broadcastedSize","paddedSize","stretch","containsCollections","deepForEach","deepMap","scatter","createBigNumberClass","ReflectOwnKeys","ReflectApply","ProcessEmitWarning","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","newListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","evlistener","unwrapListeners","arrayClone","spliceOne","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","wrapListener","setMaxListeners","getMaxListeners","doError","prependOnceListener","originalListener","rawListeners","eventNames","createSetMultiplicity","createMad","_mad","med","createSetIsSubset","createOr","createLog1p","_log1pComplex","xRe1p","deciphers","_rand","createAcsch","un","tn","sn","21","25","27","28","29","30","31","33","24","17","18","19","20","22","23","26","55"],"mappings":"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C,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIE,EAAW,aACfA,EAASC,UAAYH,EAAUG,UAC/BJ,EAAKI,UAAY,IAAID,EACrBH,EAAKI,UAAUC,YAAcL,K,oDCvBnC,4GA6CI2qF,EAAgB,WAIlB,OADAA,EAAgB,IAAcxyD,OACvB,KAELv6B,EAAe,CAAC,aAAc,WAAY,eAAgB,aAOnDgtF,EAA6B,eAAQ,QAAShtF,GAAc,SAAqBE,GAC1F,IAAI,UACFS,EAAS,QACTN,EAAO,YACPu3B,EAAW,SACX5T,GACE9jB,EAIAC,EAAQ4sF,IAwUZ,OAnUA5sF,EAAM8sF,QACN9sF,EAAM+sF,SAAS,CAAC,CACdntF,KAAM,SACNygC,KAAM,QACL,CACDzgC,KAAM,UACNygC,KAAM,QACL,CACDzgC,KAAM,YACNygC,KAAM,QACL,CACDzgC,KAAM,WACNygC,KAAM,QACL,CACDzgC,KAAM,OACNygC,KAAM,QAMR,CACEzgC,KAAM,aACNygC,KAAM/uB,GAAK,QAAY,upfAAupf+uB,KAAK/uB,IAClrf,CACD1R,KAAM,SACNygC,KAAM,QACL,CACDzgC,KAAM,QACNygC,KAAM,QACL,CACDzgC,KAAM,QACNygC,KAAM,QACL,CACDzgC,KAAM,SACNygC,KAAM,QACL,CACDzgC,KAAM,cACNygC,KAAM,QACL,CACDzgC,KAAM,eACNygC,KAAM,QACL,CACDzgC,KAAM,QACNygC,KAAM,QACL,CACDzgC,KAAM,QACNygC,KAAM,QACL,CACDzgC,KAAM,UACNygC,KAAM,QACL,CACDzgC,KAAM,YACNygC,KAAM,QACL,CACDzgC,KAAM,OACNygC,KAAM,QACL,CACDzgC,KAAM,WACNygC,KAAM,QACL,CACDzgC,KAAM,OACNygC,KAAM,QACL,CACDzgC,KAAM,SACNygC,KAAM,QACL,CACDzgC,KAAM,OACNygC,KAAM,QACL,CACDzgC,KAAM,YACNygC,KAAM,QACL,CACDzgC,KAAM,eACNygC,KAAM,QACL,CACDzgC,KAAM,YACNygC,KAAM,QACL,CACDzgC,KAAM,iBACNygC,KAAM,QACL,CACDzgC,KAAM,YACNygC,KAAM,QACL,CACDzgC,KAAM,kBACNygC,KAAM,QACL,CACDzgC,KAAM,eACNygC,KAAM,QACL,CACDzgC,KAAM,eACNygC,KAAM,QACL,CACDzgC,KAAM,yBACNygC,KAAM,QACL,CACDzgC,KAAM,YACNygC,KAAM,QACL,CACDzgC,KAAM,OACNygC,KAAM,QACL,CACDzgC,KAAM,aACNygC,KAAM,QACL,CACDzgC,KAAM,eACNygC,KAAM,QACL,CACDzgC,KAAM,kBACNygC,KAAM,QACL,CACDzgC,KAAM,YACNygC,KAAM,QACL,CACDzgC,KAAM,iBACNygC,KAAM,QACL,CACDzgC,KAAM,aACNygC,KAAM,QACL,CACDzgC,KAAM,MACNygC,KAAM,QACL,CACDzgC,KAAM,SACNygC,KAAM,UAIRrgC,EAAMgtF,eAAe,CAAC,CACpBz4D,KAAM,SACN6zD,GAAI,YACJjJ,QAAS,SAAiB/+E,GAMxB,GALKI,GACHysF,EAAiB7sF,GAIf,eAAOA,GAAK,GACd,MAAM,IAAI+oC,UAAU,uFAA8F/oC,EAA9F,yDAEtB,OAAO,IAAII,EAAUJ,KAEtB,CACDm0B,KAAM,SACN6zD,GAAI,UACJjJ,QAAS,SAAiB/+E,GAIxB,OAHKF,GACHgtF,EAAe9sF,GAEV,IAAIF,EAAQE,EAAG,KAEvB,CACDm0B,KAAM,YACN6zD,GAAI,UACJjJ,QAAS,SAAiB/+E,GAIxB,OAHKF,GACHgtF,EAAe9sF,GAEV,IAAIF,EAAQE,EAAE0H,WAAY,KAElC,CACDysB,KAAM,WACN6zD,GAAI,YACJjJ,QAAS,SAAiB/+E,GACxB,MAAM,IAAI+oC,UAAU,+JAErB,CACD5U,KAAM,WACN6zD,GAAI,UACJjJ,QAAS,SAAiB/+E,GAIxB,OAHKF,GACHgtF,EAAe9sF,GAEV,IAAIF,EAAQE,EAAEskC,UAAW,KAEjC,CACDnQ,KAAM,SACN6zD,GAAI,WACJjJ,QAAS,SAAiB/+E,GACnByjB,GACHspE,EAAgB/sF,GAElB,IAAI6kB,EAAI,IAAIpB,EAASzjB,GACrB,GAAI6kB,EAAEyf,YAActkC,EAClB,MAAM,IAAI+oC,UAAU,mGAA0G/oC,EAA1G,uDAEtB,OAAO6kB,IAER,CAQDsP,KAAM,SACN6zD,GAAI,SACJjJ,QAAS,SAAiB/+E,GACxB,IAAIiS,EAAIg7B,OAAOjtC,GACf,GAAI62B,MAAM5kB,GACR,MAAM,IAAItQ,MAAM,mBAAqB3B,EAAI,iBAE3C,OAAOiS,IAER,CACDkiB,KAAM,SACN6zD,GAAI,YACJjJ,QAAS,SAAiB/+E,GACnBI,GACHysF,EAAiB7sF,GAEnB,IACE,OAAO,IAAII,EAAUJ,GACrB,MAAO4zB,GACP,MAAM,IAAIjyB,MAAM,mBAAqB3B,EAAI,qBAG5C,CACDm0B,KAAM,SACN6zD,GAAI,WACJjJ,QAAS,SAAiB/+E,GACnByjB,GACHspE,EAAgB/sF,GAElB,IACE,OAAO,IAAIyjB,EAASzjB,GACpB,MAAO4zB,GACP,MAAM,IAAIjyB,MAAM,mBAAqB3B,EAAI,oBAG5C,CACDm0B,KAAM,SACN6zD,GAAI,UACJjJ,QAAS,SAAiB/+E,GACnBF,GACHgtF,EAAe9sF,GAEjB,IACE,OAAO,IAAIF,EAAQE,GACnB,MAAO4zB,GACP,MAAM,IAAIjyB,MAAM,mBAAqB3B,EAAI,mBAG5C,CACDm0B,KAAM,UACN6zD,GAAI,SACJjJ,QAAS,SAAiB/+E,GACxB,OAAQA,IAET,CACDm0B,KAAM,UACN6zD,GAAI,YACJjJ,QAAS,SAAiB/+E,GAIxB,OAHKI,GACHysF,EAAiB7sF,GAEZ,IAAII,GAAWJ,KAEvB,CACDm0B,KAAM,UACN6zD,GAAI,WACJjJ,QAAS,SAAiB/+E,GAIxB,OAHKyjB,GACHspE,EAAgB/sF,GAEX,IAAIyjB,GAAUzjB,KAEtB,CACDm0B,KAAM,UACN6zD,GAAI,SACJjJ,QAAS,SAAiB/+E,GACxB,OAAOlB,OAAOkB,KAEf,CACDm0B,KAAM,QACN6zD,GAAI,SACJjJ,QAAS,SAAiB1kC,GAIxB,OAHKhjB,GACH21D,IAEK,IAAI31D,EAAYgjB,KAExB,CACDlmB,KAAM,SACN6zD,GAAI,QACJjJ,QAAS,SAAiB3nD,GACxB,OAAOA,EAAOkN,cAQlB1kC,EAAMqtF,WAAa,CAACztF,EAAMoyE,EAAMt7B,KAC9B,IAAI42C,EAAattF,EAAMutF,YAAY3tF,EAAMoyE,EAAMt7B,GAC/C,GAAI,CAAC,YAAa,YAAYiI,SAAS2uC,EAAWluF,KAAKouF,WAA6B,IAAhBxb,EAAKnvE,QAAgB,eAAamvE,EAAK,KAE3Gt7B,EAAWvhB,KAAK4uD,IAAQA,EAAIjgB,OAAOnlB,SAAS,MAAO,CACjD,IAAI3qB,EAAM,IAAImV,UAAU,aAAa1rB,OAAO7d,EAAM,4CAA8C,4CAA4C6d,OAAO7d,EAAM,QAEzJ,MADAo0B,EAAI50B,KAAOkuF,EAAWluF,KAChB40B,EAER,MAAMs5D,GAORttF,EAAMqtF,WAAa,CAACztF,EAAMoyE,EAAMt7B,KAC9B,IAAI42C,EAAattF,EAAMutF,YAAY3tF,EAAMoyE,EAAMt7B,GAC/C,GAAI,CAAC,YAAa,YAAYiI,SAAS2uC,EAAWluF,KAAKouF,WAA6B,IAAhBxb,EAAKnvE,QAAgB,eAAamvE,EAAK,KAE3Gt7B,EAAWvhB,KAAK4uD,IAAQA,EAAIjgB,OAAOnlB,SAAS,MAAO,CACjD,IAAI3qB,EAAM,IAAImV,UAAU,aAAa1rB,OAAO7d,EAAM,4CAA8C,4CAA4C6d,OAAO7d,EAAM,QAEzJ,MADAo0B,EAAI50B,KAAOkuF,EAAWluF,KAChB40B,EAER,MAAMs5D,GAEDttF,KAET,SAASitF,EAAiB7sF,GACxB,MAAM,IAAI2B,MAAM,wBAAwB0b,OAAOrd,EAAG,qDAEpD,SAAS8sF,EAAe9sF,GACtB,MAAM,IAAI2B,MAAM,wBAAwB0b,OAAOrd,EAAG,wDAEpD,SAASgtF,IACP,MAAM,IAAIrrF,MAAM,uEAElB,SAASorF,EAAgB/sF,GACvB,MAAM,IAAI2B,MAAM,wBAAwB0b,OAAOrd,EAAG,sD,oCCxZpD,uIAQIR,EAAO,eACPC,EAAe,CAAC,QAAS,cAAe,UACjC4tF,EAAyC,eAAQ7tF,EAAMC,EAAcE,IAC9E,IAAI,MACFC,EAAK,YACL6vB,EAAW,OACXwI,GACEt4B,EAOJ,SAASmrC,EAAa9rC,EAAMgsC,GAC1B,KAAM5sC,gBAAgB0sC,GACpB,MAAM,IAAI5nB,YAAY,oDAExB,GAAI8nB,IAAa,eAASA,GACxB,MAAM,IAAIrpC,MAAM,qBAAuBqpC,GAEzC,GAAI,eAAShsC,GAEXsuF,EAAkBlvF,KAAMY,EAAMgsC,QACzB,GAAIhsC,GAAQ,eAAQA,EAAKkE,QAAU,eAAQlE,EAAKy2D,MAAQ,eAAQz2D,EAAK+G,MAE1E3H,KAAKm3D,QAAUv2D,EAAKmlB,OACpB/lB,KAAKo3D,OAASx2D,EAAKkE,MACnB9E,KAAKs3D,KAAO12D,EAAKy2D,IACjBr3D,KAAK25C,MAAQ/4C,EAAK+G,KAClB3H,KAAKq6D,UAAYztB,GAAYhsC,EAAKgsC,cAC7B,GAAI,eAAQhsC,GAEjBuuF,EAAiBnvF,KAAMY,EAAMgsC,OACxB,IAAIhsC,EAET,MAAM,IAAI+pC,UAAU,6BAA+B,eAAO/pC,GAAQ,KAGlEZ,KAAKm3D,QAAU,GACfn3D,KAAKo3D,OAAS,GACdp3D,KAAKs3D,KAAO,CAAC,GACbt3D,KAAK25C,MAAQ,CAAC,EAAG,GACjB35C,KAAKq6D,UAAYztB,GAGrB,SAASsiD,EAAkBl2D,EAAQgR,EAAQ4C,GAErB,iBAAhB5C,EAAOvpC,MAETu4B,EAAOm+B,QAAUntB,EAAOmtB,QAAU,eAAMntB,EAAOmtB,cAAWr0D,EAC1Dk2B,EAAOo+B,OAAS,eAAMptB,EAAOotB,QAC7Bp+B,EAAOs+B,KAAO,eAAMttB,EAAOstB,MAC3Bt+B,EAAO2gB,MAAQ,eAAM3P,EAAO2P,OAC5B3gB,EAAOqhC,UAAYztB,GAAY5C,EAAOqwB,WAGtC80B,EAAiBn2D,EAAQgR,EAAO9D,UAAW0G,GAAY5C,EAAOqwB,WAGlE,SAAS80B,EAAiBn2D,EAAQp4B,EAAMgsC,GAEtC5T,EAAOm+B,QAAU,GACjBn+B,EAAOo+B,OAAS,GAChBp+B,EAAOs+B,KAAO,GACdt+B,EAAOqhC,UAAYztB,EAEnB,IAAIwL,EAAOx3C,EAAKyD,OACZ2yD,EAAU,EAGVz9C,EAAK8X,EAELxJ,EAAO,EASX,GARI,eAAS+kB,KAEXrzB,EAAK/X,EAAM+hB,KAAK8N,EAAa,CAACub,EAAUA,KAAcvb,EAEtDxJ,EAAOrmB,EAAMm/E,QAAQ,EAAG/zC,IAItBwL,EAAO,EAAG,CAEZ,IAAIzxC,EAAI,EACR,EAAG,CAEDqyB,EAAOs+B,KAAKtjC,KAAKgF,EAAOo+B,OAAO/yD,QAE/B,IAAK,IAAIsB,EAAI,EAAGA,EAAIyyC,EAAMzyC,IAAK,CAE7B,IAAImmC,EAAMlrC,EAAK+E,GAEf,GAAI,eAAQmmC,IAMV,GAJU,IAANnlC,GAAWqwD,EAAUlrB,EAAIznC,SAC3B2yD,EAAUlrB,EAAIznC,QAGZsC,EAAImlC,EAAIznC,OAAQ,CAElB,IAAI+oB,EAAI0e,EAAInlC,GAEP4S,EAAG6T,EAAGvF,KAETmR,EAAOm+B,QAAQnjC,KAAK5G,GAEpB4L,EAAOo+B,OAAOpjC,KAAKruB,UAKb,IAANgB,GAAWqwD,EAAU,IACvBA,EAAU,GAGPz9C,EAAGuyB,EAAKjkB,KAEXmR,EAAOm+B,QAAQnjC,KAAK8X,GAEpB9S,EAAOo+B,OAAOpjC,KAAKruB,IAKzBgB,UACOA,EAAIqwD,GAGfh+B,EAAOs+B,KAAKtjC,KAAKgF,EAAOo+B,OAAO/yD,QAE/B20B,EAAO2gB,MAAQ,CAACvB,EAAM4e,GAwHxB,SAASo4B,EAAWp2D,EAAQ87C,GAE1B,IAAK,eAAQA,GACX,MAAM,IAAInqC,UAAU,iBAEtB,IAAIy+B,EAAW0L,EAAI1L,WACnB,GAAIA,EAEF,OAAOpwC,EAAO4B,IAAIk6C,EAAIpvE,OAGxB,IAMIC,EAAG0pF,EAAIzmF,EAAG0mF,EANV3nF,EAAOmtE,EAAIntE,OACf,GAAIA,EAAKtD,SAAW20B,EAAO2gB,MAAMt1C,OAC/B,MAAM,IAAI,OAAesD,EAAKtD,OAAQ20B,EAAO2gB,MAAMt1C,QAOrD,IAAIqB,EAAMovE,EAAIpvE,MACVK,EAAM+uE,EAAI/uE,MACd,IAAKJ,EAAI,EAAG0pF,EAAKr2D,EAAO2gB,MAAMt1C,OAAQsB,EAAI0pF,EAAI1pF,IAC5C,eAAcD,EAAIC,GAAIqzB,EAAO2gB,MAAMh0C,IACnC,eAAcI,EAAIJ,GAAIqzB,EAAO2gB,MAAMh0C,IAIrC,IAAI4pF,EAAUv2D,EAAOm+B,QACjBq4B,EAASx2D,EAAOo+B,OAChBq4B,EAAOz2D,EAAOs+B,KAGdlf,EAAO08B,EAAIhL,UAAU,GACrB9S,EAAU8d,EAAIhL,UAAU,GAGxBljE,EAAI,GACJ8oF,EAAK,GAGTt3C,EAAK14B,SAAQ,SAAU/Z,EAAGR,GAExBuqF,EAAG/pF,GAAKR,EAAE,GAEVyB,EAAEjB,IAAK,KAIT,IAAIogB,EAASwpE,EAAU,QAAKzsF,EACxBgC,EAAQ,GACRuyD,EAAM,GAyBV,OAtBAL,EAAQt3C,SAAQ,SAAU/Y,GAIxB,IAFA0wD,EAAIrjC,KAAKlvB,EAAMT,QAEVuE,EAAI6mF,EAAK9oF,GAAI2oF,EAAKG,EAAK9oF,EAAI,GAAIiC,EAAI0mF,EAAI1mF,IAE1CjD,EAAI6pF,EAAO5mF,IAEE,IAAThC,EAAEjB,KAEJb,EAAMkvB,KAAK07D,EAAG/pF,IAEVogB,GACFA,EAAOiO,KAAKu7D,EAAQ3mF,QAM5ByuD,EAAIrjC,KAAKlvB,EAAMT,QAGR,IAAIqoC,EAAa,CACtB3mB,SACAjhB,QACAuyD,MACA1vD,OACAilC,SAAU5T,EAAOqhC,YAGrB,SAASs1B,EAAW32D,EAAQl0B,EAAO8qF,EAAWn3C,GAE5C,IAAK3zC,IAA2B,IAAlBA,EAAMklE,QAClB,MAAM,IAAIr/B,UAAU,iBAItB,IAIIklD,EAJAC,EAAQhrF,EAAM6C,OACdyhE,EAAWtkE,EAAMskE,WAerB,GAXI,eAASwmB,IAEXC,EAAQD,EAAUjoF,OAElBioF,EAAYA,EAAUnpF,WAGtBopF,EAAQ,eAAUD,GAIhBxmB,EAAU,CAEZ,GAAqB,IAAjBymB,EAAMxrF,OACR,MAAM,IAAIsmC,UAAU,mBAGtB3R,EAAOgF,IAAIl5B,EAAMY,MAAOkqF,EAAWn3C,OAC9B,CAEL,GAAqB,IAAjBq3C,EAAMzrF,QAAiC,IAAjByrF,EAAMzrF,OAC9B,MAAM,IAAI,OAAeyrF,EAAMzrF,OAAQ20B,EAAO2gB,MAAMt1C,OAAQ,KAI9D,GAAIwrF,EAAMxrF,OAASyrF,EAAMzrF,OAAQ,CAE/B,IAAIsB,EAAI,EACJ0uD,EAAQ,EACZ,MAAoB,IAAby7B,EAAMnqF,IAAyB,IAAbkqF,EAAMlqF,GAC7BA,IAEF,MAAoB,IAAbmqF,EAAMnqF,GACX0uD,IACA1uD,IAGFiqF,EAAY,eAAUA,EAAWE,EAAMzrF,OAAQgwD,EAAOw7B,GAIxD,IAAK,eAAgBC,EAAOD,GAC1B,MAAM,IAAI,OAAeC,EAAOD,EAAO,KAIzC,GAAqB,IAAjBC,EAAMzrF,OAAc,CAEtB,IAAIuvD,EAAQ9uD,EAAMglE,UAAU,GAC5BlW,EAAMl0C,SAAQ,SAAUqwE,EAAWC,GACjC,eAAcD,GACd/2D,EAAOgF,IAAI,CAAC+xD,EAAW,GAAIH,EAAUI,EAAS,IAAKv3C,UAEhD,CAEL,IAAIw3C,EAAsBnrF,EAAMglE,UAAU,GACtComB,EAAuBprF,EAAMglE,UAAU,GAC3CmmB,EAAoBvwE,SAAQ,SAAUywE,EAAgBC,GACpD,eAAcD,GACdD,EAAqBxwE,SAAQ,SAAU2wE,EAAiBC,GACtD,eAAcD,GACdr3D,EAAOgF,IAAI,CAACmyD,EAAgBE,GAAkBT,EAAUQ,EAAc,IAAIE,EAAe,IAAK73C,UAKtG,OAAOzf,EAkHT,SAASu3D,EAAe5qF,EAAG6qF,EAAKC,EAAQ3rF,GAEtC,GAAI2rF,EAASD,IAAQ,EACnB,OAAOC,EAGT,IAAK,IAAItrF,EAAIqrF,EAAKrrF,EAAIsrF,EAAQtrF,IAE5B,GAAIL,EAAMK,KAAOQ,EACf,OAAOR,EAIX,OAAOqrF,EAET,SAASE,EAAQ9nF,EAAGjC,EAAGof,EAAQjhB,EAAOuyD,GAEpCtxC,EAAO+Z,OAAOl3B,EAAG,GACjB9D,EAAMg7B,OAAOl3B,EAAG,GAEhB,IAAK,IAAIhH,EAAI+E,EAAI,EAAG/E,EAAIy1D,EAAIhzD,OAAQzC,IAClCy1D,EAAIz1D,KAGR,SAAS+uF,EAAQ/nF,EAAGjD,EAAGgB,EAAGymB,EAAGrH,EAAQjhB,EAAOuyD,GAE1CtxC,EAAO+Z,OAAOl3B,EAAG,EAAGwkB,GAEpBtoB,EAAMg7B,OAAOl3B,EAAG,EAAGjD,GAEnB,IAAK,IAAI/D,EAAI+E,EAAI,EAAG/E,EAAIy1D,EAAIhzD,OAAQzC,IAClCy1D,EAAIz1D,KA6CR,SAASgvF,EAAQ53D,EAAQof,EAAM4e,EAASve,GAEtC,IAAI74B,EAAQ64B,GAAgB,EAGxBl/B,EAAK8X,EAELxJ,EAAO,EACP,eAASmR,EAAOqhC,aAElB9gD,EAAK/X,EAAM+hB,KAAK8N,EAAa,CAAC2H,EAAOqhC,UAAWrhC,EAAOqhC,aAAehpC,EAEtExJ,EAAOrmB,EAAMm/E,QAAQ,EAAG3nD,EAAOqhC,WAE/Bz6C,EAAQpe,EAAMm/E,QAAQ/gE,EAAOoZ,EAAOqhC,YAItC,IAKI10D,EAAGgB,EAAGiC,EALNioF,GAAOt3E,EAAGqG,EAAOiI,GAGjB1iB,EAAI6zB,EAAO2gB,MAAM,GACjB50C,EAAIi0B,EAAO2gB,MAAM,GAIrB,GAAIqd,EAAUjyD,EAAG,CAEf,IAAK4B,EAAI5B,EAAG4B,EAAIqwD,EAASrwD,IAIvB,GAFAqyB,EAAOs+B,KAAK3wD,GAAKqyB,EAAOm+B,QAAQ9yD,OAE5BwsF,EAEF,IAAKlrF,EAAI,EAAGA,EAAIR,EAAGQ,IAEjBqzB,EAAOm+B,QAAQnjC,KAAKpU,GAEpBoZ,EAAOo+B,OAAOpjC,KAAKruB,GAKzBqzB,EAAOs+B,KAAKN,GAAWh+B,EAAOm+B,QAAQ9yD,YAC7B2yD,EAAUjyD,IAEnBi0B,EAAOs+B,KAAKx3B,OAAOk3B,EAAU,EAAGjyD,EAAIiyD,GAEpCh+B,EAAOm+B,QAAQr3B,OAAO9G,EAAOs+B,KAAKN,GAAUh+B,EAAOm+B,QAAQ9yD,QAC3D20B,EAAOo+B,OAAOt3B,OAAO9G,EAAOs+B,KAAKN,GAAUh+B,EAAOo+B,OAAO/yD,SAM3D,GAHAU,EAAIiyD,EAGA5e,EAAOjzC,GAET,GAAI0rF,EAAK,CAEP,IAAIh9E,EAAI,EAER,IAAKlN,EAAI,EAAGA,EAAI5B,EAAG4B,IAAK,CAEtBqyB,EAAOs+B,KAAK3wD,GAAKqyB,EAAOs+B,KAAK3wD,GAAKkN,EAElCjL,EAAIowB,EAAOs+B,KAAK3wD,EAAI,GAAKkN,EAEzB,IAAIT,EAAI,EAER,IAAKzN,EAAIR,EAAGQ,EAAIyyC,EAAMzyC,IAAKyN,IAEzB4lB,EAAOm+B,QAAQr3B,OAAOl3B,EAAIwK,EAAG,EAAGwM,GAEhCoZ,EAAOo+B,OAAOt3B,OAAOl3B,EAAIwK,EAAG,EAAGzN,GAE/BkO,IAIJmlB,EAAOs+B,KAAKvyD,GAAKi0B,EAAOm+B,QAAQ9yD,aAE7B,GAAI+zC,EAAOjzC,EAAG,CAEnB,IAAIsrB,EAAI,EAER,IAAK9pB,EAAI,EAAGA,EAAI5B,EAAG4B,IAAK,CAEtBqyB,EAAOs+B,KAAK3wD,GAAKqyB,EAAOs+B,KAAK3wD,GAAK8pB,EAElC,IAAI0zC,EAAKnrC,EAAOs+B,KAAK3wD,GACjB0qD,EAAKr4B,EAAOs+B,KAAK3wD,EAAI,GAAK8pB,EAE9B,IAAK7nB,EAAIu7D,EAAIv7D,EAAIyoD,EAAIzoD,IAEnBjD,EAAIqzB,EAAOo+B,OAAOxuD,GAEdjD,EAAIyyC,EAAO,IAEbpf,EAAOm+B,QAAQr3B,OAAOl3B,EAAG,GAEzBowB,EAAOo+B,OAAOt3B,OAAOl3B,EAAG,GAExB6nB,KAKNuI,EAAOs+B,KAAK3wD,GAAKqyB,EAAOm+B,QAAQ9yD,OAMlC,OAHA20B,EAAO2gB,MAAM,GAAKvB,EAClBpf,EAAO2gB,MAAM,GAAKqd,EAEXh+B,EAsKT,SAASiL,EAAKjL,EAAQ83D,EAAQC,EAAQC,EAAWC,EAAWhxD,EAAUixD,GAEpE,IAAInrE,EAAS,GACTjhB,EAAQ,GACRuyD,EAAM,GAGN99C,EAAK8X,EAELxJ,EAAO,EACP,eAASmR,EAAOqhC,aAElB9gD,EAAK/X,EAAM+hB,KAAK8N,EAAa,CAAC2H,EAAOqhC,UAAWrhC,EAAOqhC,aAAehpC,EAEtExJ,EAAOrmB,EAAMm/E,QAAQ,EAAG3nD,EAAOqhC,YAgBjC,IAZA,IAAI82B,EAAS,SAAgB/jE,EAAGxrB,EAAGoQ,GAEjCob,EAAI6S,EAAS7S,EAAGxrB,EAAGoQ,GAEduH,EAAG6T,EAAGvF,KAET9B,EAAOiO,KAAK5G,GAEZtoB,EAAMkvB,KAAKpyB,KAIN+E,EAAIqqF,EAAWrqF,GAAKsqF,EAAWtqF,IAAK,CAE3C0wD,EAAIrjC,KAAKjO,EAAO1hB,QAEhB,IAAI8/D,EAAKnrC,EAAOs+B,KAAK3wD,GACjB0qD,EAAKr4B,EAAOs+B,KAAK3wD,EAAI,GACzB,GAAIuqF,EAEF,IAAK,IAAItoF,EAAIu7D,EAAIv7D,EAAIyoD,EAAIzoD,IAAK,CAE5B,IAAIjD,EAAIqzB,EAAOo+B,OAAOxuD,GAElBjD,GAAKmrF,GAAUnrF,GAAKorF,GAEtBI,EAAOn4D,EAAOm+B,QAAQvuD,GAAIjD,EAAImrF,EAAQnqF,EAAIqqF,OAGzC,CAGL,IADA,IAAI75B,EAAU,GACLjO,EAAKib,EAAIjb,EAAKmI,EAAInI,IAAM,CAC/B,IAAIwB,EAAM1xB,EAAOo+B,OAAOlO,GACxBiO,EAAQzM,GAAO1xB,EAAOm+B,QAAQjO,GAKhC,IAAK,IAAIqC,EAAMulC,EAAQvlC,GAAOwlC,EAAQxlC,IAAO,CAC3C,IAAI3rC,EAAQ2rC,KAAO4L,EAAUA,EAAQ5L,GAAO,EAC5C4lC,EAAOvxE,EAAO2rC,EAAMulC,EAAQnqF,EAAIqqF,KAQtC,OAFA35B,EAAIrjC,KAAKjO,EAAO1hB,QAET,IAAIqoC,EAAa,CACtB3mB,SACAjhB,QACAuyD,MACA1vD,KAAM,CAACopF,EAASD,EAAS,EAAGG,EAAYD,EAAY,KAgGxD,SAASI,EAASrrE,EAAQjhB,EAAOuyD,EAAK1vD,EAAMJ,GAE1C,IAKI5B,EAAGgB,EALHyxC,EAAOzwC,EAAK,GACZqvD,EAAUrvD,EAAK,GAEfa,EAAI,GAIR,IAAK7C,EAAI,EAAGA,EAAIyyC,EAAMzyC,IAEpB,IADA6C,EAAE7C,GAAK,GACFgB,EAAI,EAAGA,EAAIqwD,EAASrwD,IACvB6B,EAAE7C,GAAGgB,GAAK,EAKd,IAAKA,EAAI,EAAGA,EAAIqwD,EAASrwD,IAKvB,IAHA,IAAIw9D,EAAK9M,EAAI1wD,GACT0qD,EAAKgG,EAAI1wD,EAAI,GAERiC,EAAIu7D,EAAIv7D,EAAIyoD,EAAIzoD,IAEvBjD,EAAIb,EAAM8D,GAEVJ,EAAE7C,GAAGgB,GAAKof,EAASxe,EAAO,eAAMwe,EAAOnd,IAAMmd,EAAOnd,GAAK,EAG7D,OAAOJ,EA4YT,OA7zCAkkC,EAAa7oC,UAAY,IAAIg2B,EAK7B6S,EAAa7oC,UAAUugE,mBAAqB,SAAUxjE,EAAMgsC,GAC1D,OAAO,IAAIF,EAAa9rC,EAAMgsC,IAMhCptB,OAAOib,eAAeiS,EAAc,OAAQ,CAC1C9sB,MAAO,iBAET8sB,EAAa7oC,UAAUC,YAAc4oC,EACrCA,EAAa7oC,UAAUpD,KAAO,eAC9BisC,EAAa7oC,UAAUwtF,gBAAiB,EAWxC3kD,EAAa7oC,UAAUi2B,YAAc,WACnC,OAAO,eAAiB95B,KAAKm3D,QAAS,SAYxCzqB,EAAa7oC,UAAU2nC,QAAU,WAC/B,MAAO,UAYTkB,EAAa7oC,UAAU+oC,SAAW,WAChC,OAAO5sC,KAAKq6D,WASd3tB,EAAa7oC,UAAU+3B,OAAS,SAAUh7B,EAAMgsC,GAC9C,OAAO,IAAIF,EAAa9rC,EAAMgsC,IAYhCF,EAAa7oC,UAAUytF,QAAU,WAE/B,IAAIl5C,EAAOp4C,KAAK25C,MAAM,GAClBqd,EAAUh3D,KAAK25C,MAAM,GAEzB,OAAgB,IAATvB,GAA0B,IAAZ4e,EAAgBh3D,KAAKo3D,OAAO/yD,QAAU+zC,EAAO4e,GAAW,GAiB/EtqB,EAAa7oC,UAAUkwD,OAAS,SAAUjvD,EAAOykE,EAAa9wB,GAE5D,IAAKz4C,KAAKm3D,QACR,MAAM,IAAI5zD,MAAM,iDAIlB,OAAQme,UAAUrd,QAChB,KAAK,EACH,OAAO+qF,EAAWpvF,KAAM8E,GAG1B,KAAK,EACL,KAAK,EACH,OAAO6qF,EAAW3vF,KAAM8E,EAAOykE,EAAa9wB,GAC9C,QACE,MAAM,IAAI3zB,YAAY,+BA8K5B4nB,EAAa7oC,UAAU+2B,IAAM,SAAU91B,GACrC,IAAK,eAAQA,GACX,MAAM,IAAI6lC,UAAU,kBAEtB,GAAI7lC,EAAMT,SAAWrE,KAAK25C,MAAMt1C,OAC9B,MAAM,IAAI,OAAeS,EAAMT,OAAQrE,KAAK25C,MAAMt1C,QAIpD,IAAKrE,KAAKm3D,QACR,MAAM,IAAI5zD,MAAM,8CAIlB,IAAIoC,EAAIb,EAAM,GACV6B,EAAI7B,EAAM,GAGd,eAAca,EAAG3F,KAAK25C,MAAM,IAC5B,eAAchzC,EAAG3G,KAAK25C,MAAM,IAG5B,IAAI/wC,EAAI2nF,EAAe5qF,EAAG3F,KAAKs3D,KAAK3wD,GAAI3G,KAAKs3D,KAAK3wD,EAAI,GAAI3G,KAAKo3D,QAE/D,OAAIxuD,EAAI5I,KAAKs3D,KAAK3wD,EAAI,IAAM3G,KAAKo3D,OAAOxuD,KAAOjD,EACtC3F,KAAKm3D,QAAQvuD,GAEf,GAaT8jC,EAAa7oC,UAAUm6B,IAAM,SAAUl5B,EAAOsoB,EAAGqrB,GAC/C,IAAK,eAAQ3zC,GACX,MAAM,IAAI6lC,UAAU,kBAEtB,GAAI7lC,EAAMT,SAAWrE,KAAK25C,MAAMt1C,OAC9B,MAAM,IAAI,OAAeS,EAAMT,OAAQrE,KAAK25C,MAAMt1C,QAIpD,IAAKrE,KAAKm3D,QACR,MAAM,IAAI5zD,MAAM,8CAIlB,IAAIoC,EAAIb,EAAM,GACV6B,EAAI7B,EAAM,GAGVszC,EAAOp4C,KAAK25C,MAAM,GAClBqd,EAAUh3D,KAAK25C,MAAM,GAGrBpgC,EAAK8X,EAELxJ,EAAO,EACP,eAAS7nB,KAAKq6D,aAEhB9gD,EAAK/X,EAAM+hB,KAAK8N,EAAa,CAACrxB,KAAKq6D,UAAWr6D,KAAKq6D,aAAehpC,EAElExJ,EAAOrmB,EAAMm/E,QAAQ,EAAG3gF,KAAKq6D,aAI3B10D,EAAIyyC,EAAO,GAAKzxC,EAAIqwD,EAAU,KAEhC45B,EAAQ5wF,KAAM8B,KAAKiE,IAAIJ,EAAI,EAAGyyC,GAAOt2C,KAAKiE,IAAIY,EAAI,EAAGqwD,GAAUve,GAE/DL,EAAOp4C,KAAK25C,MAAM,GAClBqd,EAAUh3D,KAAK25C,MAAM,IAIvB,eAAch0C,EAAGyyC,GACjB,eAAczxC,EAAGqwD,GAGjB,IAAIpuD,EAAI2nF,EAAe5qF,EAAG3F,KAAKs3D,KAAK3wD,GAAI3G,KAAKs3D,KAAK3wD,EAAI,GAAI3G,KAAKo3D,QAiB/D,OAfIxuD,EAAI5I,KAAKs3D,KAAK3wD,EAAI,IAAM3G,KAAKo3D,OAAOxuD,KAAOjD,EAExC4T,EAAG6T,EAAGvF,GAKT6oE,EAAQ9nF,EAAGjC,EAAG3G,KAAKm3D,QAASn3D,KAAKo3D,OAAQp3D,KAAKs3D,MAH9Ct3D,KAAKm3D,QAAQvuD,GAAKwkB,EAMf7T,EAAG6T,EAAGvF,IAET8oE,EAAQ/nF,EAAGjD,EAAGgB,EAAGymB,EAAGptB,KAAKm3D,QAASn3D,KAAKo3D,OAAQp3D,KAAKs3D,MAGjDt3D,MAoDT0sC,EAAa7oC,UAAU0tF,OAAS,SAAU5pF,EAAM8wC,EAAclxC,GAE5D,IAAK,eAAaI,GAChB,MAAM,IAAIgjC,UAAU,4BAItB,IAAI6mD,EAAY7pF,EAAKu+B,UAAU3mB,IAAIK,GAC1B/Z,MAAMC,QAAQ8Z,IAA2B,IAAjBA,EAAMvb,OAAeub,EAAM,GAAKA,GAEjE,GAAyB,IAArB4xE,EAAUntF,OACZ,MAAM,IAAId,MAAM,4CAIlBiuF,EAAU9xE,SAAQ,SAAUE,GAC1B,IAAK,eAASA,KAAW,eAAUA,IAAUA,EAAQ,EACnD,MAAM,IAAI+qB,UAAU,uDAA8D,eAAO6mD,GAAa,QAK1G,IAAI19E,EAAIvM,EAAOvH,KAAKyH,QAAUzH,KAE9B,OAAO4wF,EAAQ98E,EAAG09E,EAAU,GAAIA,EAAU,GAAI/4C,IAsIhD/L,EAAa7oC,UAAU22C,QAAU,SAAUD,EAAOhzC,GAEhD,IAAK,eAAQgzC,GACX,MAAM,IAAI5P,UAAU,kBAEtB,GAAqB,IAAjB4P,EAAMl2C,OACR,MAAM,IAAId,MAAM,0DAIlBg3C,EAAM76B,SAAQ,SAAUE,GACtB,IAAK,eAASA,KAAW,eAAUA,IAAUA,IAAU,GAAe,IAAVA,EAC1D,MAAM,IAAI+qB,UAAU,6DAAoE,eAAO4P,GAAS,QAG5G,IAAIk3C,EAAgBzxF,KAAK25C,MAAM,GAAK35C,KAAK25C,MAAM,GAC/CY,EAAQ,eAAqBA,EAAOk3C,GACpC,IAAIC,EAAYn3C,EAAM,GAAKA,EAAM,GAGjC,GAAIk3C,IAAkBC,EACpB,MAAM,IAAInuF,MAAM,uEAIlB,IAAIuQ,EAAIvM,EAAOvH,KAAKyH,QAAUzH,KAG9B,GAAIA,KAAK25C,MAAM,KAAOY,EAAM,IAAMv6C,KAAK25C,MAAM,KAAOY,EAAM,GACxD,OAAOzmC,EAKT,IADA,IAAI69E,EAAW,GACNhsF,EAAI,EAAGA,EAAImO,EAAEwjD,KAAKjzD,OAAQsB,IACjC,IAAK,IAAIgB,EAAI,EAAGA,EAAImN,EAAEwjD,KAAK3xD,EAAI,GAAKmO,EAAEwjD,KAAK3xD,GAAIgB,IAC7CgrF,EAAS39D,KAAKruB,GAWlB,IANA,IAAIogB,EAASjS,EAAEqjD,QAAQ5vC,QAGnBqqE,EAAW99E,EAAEsjD,OAAO7vC,QAGfmQ,EAAK,EAAGA,EAAK5jB,EAAEsjD,OAAO/yD,OAAQqzB,IAAM,CAC3C,IAAIm6D,EAAKD,EAASl6D,GACdqiD,EAAK4X,EAASj6D,GACdo6D,EAAOD,EAAK/9E,EAAE6lC,MAAM,GAAKogC,EAC7B4X,EAASj6D,GAAMo6D,EAAOv3C,EAAM,GAC5Bq3C,EAASl6D,GAAM51B,KAAKyf,MAAMuwE,EAAOv3C,EAAM,IAUzCzmC,EAAEqjD,QAAQ9yD,OAAS,EACnByP,EAAEsjD,OAAO/yD,OAAS,EAClByP,EAAEwjD,KAAKjzD,OAASk2C,EAAM,GAAK,EAC3BzmC,EAAE6lC,MAAQY,EAAMhzB,QAChB,IAAK,IAAIoiC,EAAM,EAAGA,EAAM71C,EAAEwjD,KAAKjzD,OAAQslD,IACrC71C,EAAEwjD,KAAK3N,GAAO,EAKhB,IAAK,IAAIl0C,EAAI,EAAGA,EAAIsQ,EAAO1hB,OAAQoR,IAAK,CACtC,IAAIs0C,EAAM6nC,EAASn8E,GACfizC,EAAKipC,EAASl8E,GACd2X,EAAIrH,EAAOtQ,GACX7M,EAAI2nF,EAAexmC,EAAKj2C,EAAEwjD,KAAK5O,GAAK50C,EAAEwjD,KAAK5O,EAAK,GAAI50C,EAAEsjD,QAC1Du5B,EAAQ/nF,EAAGmhD,EAAKrB,EAAIt7B,EAAGtZ,EAAEqjD,QAASrjD,EAAEsjD,OAAQtjD,EAAEwjD,MAKhD,OAAOxjD,GAQT44B,EAAa7oC,UAAU4D,MAAQ,WAC7B,IAAIqM,EAAI,IAAI44B,EAAa,CACvB3mB,OAAQ/lB,KAAKm3D,QAAU,eAAMn3D,KAAKm3D,cAAWr0D,EAC7CgC,MAAO,eAAM9E,KAAKo3D,QAClBC,IAAK,eAAMr3D,KAAKs3D,MAChB3vD,KAAM,eAAM3H,KAAK25C,OACjB/M,SAAU5sC,KAAKq6D,YAEjB,OAAOvmD,GAQT44B,EAAa7oC,UAAU8D,KAAO,WAC5B,OAAO3H,KAAK25C,MAAMpyB,MAAM,IAc1BmlB,EAAa7oC,UAAU0b,IAAM,SAAU0gB,EAAUixD,GAE/C,IAAKlxF,KAAKm3D,QACR,MAAM,IAAI5zD,MAAM,8CAGlB,IAAIijC,EAAKxmC,KAELo4C,EAAOp4C,KAAK25C,MAAM,GAClBqd,EAAUh3D,KAAK25C,MAAM,GAErB65B,EAAO,eAAiBvzC,GACxBkxD,EAAS,SAAgB/jE,EAAGznB,EAAGgB,GAEjC,OAAa,IAAT6sE,EAAmBvzC,EAAS7S,GACnB,IAATomD,EAAmBvzC,EAAS7S,EAAG,CAACznB,EAAGgB,IAChCs5B,EAAS7S,EAAG,CAACznB,EAAGgB,GAAI6/B,IAG7B,OAAOvC,EAAKjkC,KAAM,EAAGo4C,EAAO,EAAG,EAAG4e,EAAU,EAAGm6B,EAAQD,IA4FzDxkD,EAAa7oC,UAAU6b,QAAU,SAAUugB,EAAUixD,GAEnD,IAAKlxF,KAAKm3D,QACR,MAAM,IAAI5zD,MAAM,kDAQlB,IALA,IAAIijC,EAAKxmC,KAELo4C,EAAOp4C,KAAK25C,MAAM,GAClBqd,EAAUh3D,KAAK25C,MAAM,GAEhBhzC,EAAI,EAAGA,EAAIqwD,EAASrwD,IAAK,CAEhC,IAAIw9D,EAAKnkE,KAAKs3D,KAAK3wD,GACf0qD,EAAKrxD,KAAKs3D,KAAK3wD,EAAI,GACvB,GAAIuqF,EAEF,IAAK,IAAItoF,EAAIu7D,EAAIv7D,EAAIyoD,EAAIzoD,IAAK,CAE5B,IAAIjD,EAAI3F,KAAKo3D,OAAOxuD,GAGpBq3B,EAASjgC,KAAKm3D,QAAQvuD,GAAI,CAACjD,EAAGgB,GAAI6/B,OAE/B,CAGL,IADA,IAAIzgB,EAAS,GACJojC,EAAMgb,EAAIhb,EAAMkI,EAAIlI,IAAO,CAClC,IAAIsC,EAAMzrD,KAAKo3D,OAAOjO,GACtBpjC,EAAO0lC,GAAOzrD,KAAKm3D,QAAQhO,GAK7B,IAAK,IAAI4oC,EAAM,EAAGA,EAAM35C,EAAM25C,IAAO,CACnC,IAAInyE,EAAQmyE,KAAOhsE,EAASA,EAAOgsE,GAAO,EAC1C9xD,EAASrgB,EAAO,CAACmyE,EAAKprF,GAAI6/B,OAUlCkG,EAAa7oC,UAAU8yC,OAAOq7C,UAAY,YACxC,IAAKhyF,KAAKm3D,QACR,MAAM,IAAI5zD,MAAM,wCAGlB,IADA,IAAIyzD,EAAUh3D,KAAK25C,MAAM,GAChBhzC,EAAI,EAAGA,EAAIqwD,EAASrwD,IAG3B,IAFA,IAAIw9D,EAAKnkE,KAAKs3D,KAAK3wD,GACf0qD,EAAKrxD,KAAKs3D,KAAK3wD,EAAI,GACdiC,EAAIu7D,EAAIv7D,EAAIyoD,EAAIzoD,IAAK,CAE5B,IAAIjD,EAAI3F,KAAKo3D,OAAOxuD,QACd,CACJgX,MAAO5f,KAAKm3D,QAAQvuD,GACpB9D,MAAO,CAACa,EAAGgB,MAWnB+lC,EAAa7oC,UAAU4C,QAAU,WAC/B,OAAO2qF,EAASpxF,KAAKm3D,QAASn3D,KAAKo3D,OAAQp3D,KAAKs3D,KAAMt3D,KAAK25C,OAAO,IAQpEjN,EAAa7oC,UAAUqiC,QAAU,WAC/B,OAAOkrD,EAASpxF,KAAKm3D,QAASn3D,KAAKo3D,OAAQp3D,KAAKs3D,KAAMt3D,KAAK25C,OAAO,IA2CpEjN,EAAa7oC,UAAUg1B,OAAS,SAAU9a,GASxC,IAPA,IAAIq6B,EAAOp4C,KAAK25C,MAAM,GAClBqd,EAAUh3D,KAAK25C,MAAM,GAErB23C,EAAUtxF,KAAKsxF,UAEfjsF,EAAM,kBAAoB,eAAO+yC,EAAMr6B,GAAW,MAAQ,eAAOi5C,EAASj5C,GAAW,cAAgB,eAAOuzE,EAASvzE,GAAW,KAE3HpX,EAAI,EAAGA,EAAIqwD,EAASrwD,IAK3B,IAHA,IAAIw9D,EAAKnkE,KAAKs3D,KAAK3wD,GACf0qD,EAAKrxD,KAAKs3D,KAAK3wD,EAAI,GAEdiC,EAAIu7D,EAAIv7D,EAAIyoD,EAAIzoD,IAAK,CAE5B,IAAIjD,EAAI3F,KAAKo3D,OAAOxuD,GAEpBvD,GAAO,UAAY,eAAOM,EAAGoY,GAAW,KAAO,eAAOpX,EAAGoX,GAAW,UAAY/d,KAAKm3D,QAAU,eAAOn3D,KAAKm3D,QAAQvuD,GAAImV,GAAW,KAGtI,OAAO1Y,GAQTqnC,EAAa7oC,UAAUwC,SAAW,WAChC,OAAO,eAAOrG,KAAKyG,YAQrBimC,EAAa7oC,UAAU2F,OAAS,WAC9B,MAAO,CACLshC,OAAQ,eACR/kB,OAAQ/lB,KAAKm3D,QACbryD,MAAO9E,KAAKo3D,OACZC,IAAKr3D,KAAKs3D,KACV3vD,KAAM3H,KAAK25C,MACX/M,SAAU5sC,KAAKq6D,YAYnB3tB,EAAa7oC,UAAU60C,SAAW,SAAU9vC,GAE1C,GAAIA,GAMF,GAJI,eAAYA,KACdA,EAAIA,EAAEU,aAGH,eAASV,KAAO,eAAUA,GAC7B,MAAM,IAAI+hC,UAAU,kDAItB/hC,EAAI,EAEN,IAAIqpF,EAASrpF,EAAI,EAAIA,EAAI,EACrBspF,EAAOtpF,EAAI,GAAKA,EAAI,EAGpBwvC,EAAOp4C,KAAK25C,MAAM,GAClBqd,EAAUh3D,KAAK25C,MAAM,GAGrB9lC,EAAI/R,KAAK4D,IAAI0yC,EAAO85C,EAAMl7B,EAAUi7B,GAGpClsE,EAAS,GACTjhB,EAAQ,GACRuyD,EAAM,GAEVA,EAAI,GAAK,EAET,IAAK,IAAI1wD,EAAIsrF,EAAQtrF,EAAIqwD,GAAWjxC,EAAO1hB,OAASwP,EAAGlN,IAKrD,IAHA,IAAIw9D,EAAKnkE,KAAKs3D,KAAK3wD,GACf0qD,EAAKrxD,KAAKs3D,KAAK3wD,EAAI,GAEd/E,EAAIuiE,EAAIviE,EAAIyvD,EAAIzvD,IAAK,CAE5B,IAAI+D,EAAI3F,KAAKo3D,OAAOx1D,GAEpB,GAAI+D,IAAMgB,EAAIsrF,EAASC,EAAM,CAE3BnsE,EAAOiO,KAAKh0B,KAAKm3D,QAAQv1D,IAEzBkD,EAAMihB,EAAO1hB,OAAS,GAAKsB,EAAIusF,EAE/B,OAON,OAFA76B,EAAIrjC,KAAKjO,EAAO1hB,QAET,IAAIqoC,EAAa,CACtB3mB,SACAjhB,QACAuyD,MACA1vD,KAAM,CAACkM,EAAG,MAYd64B,EAAa3B,SAAW,SAAUC,GAChC,OAAO,IAAI0B,EAAa1B,IAe1B0B,EAAagM,SAAW,SAAU/wC,EAAMiY,EAAOhX,EAAG6vC,EAAc7L,GAC9D,IAAK,eAAQjlC,GACX,MAAM,IAAIgjC,UAAU,kCAEtB,GAAoB,IAAhBhjC,EAAKtD,OACP,MAAM,IAAId,MAAM,4CAkBlB,GAdAoE,EAAOA,EAAK4X,KAAI,SAAUzM,GAOxB,GALI,eAAYA,KAEdA,EAAIA,EAAExJ,aAGH,eAASwJ,KAAO,eAAUA,IAAMA,EAAI,EACvC,MAAM,IAAIvP,MAAM,yCAElB,OAAOuP,KAILlK,GAMF,GAJI,eAAYA,KACdA,EAAIA,EAAEU,aAGH,eAASV,KAAO,eAAUA,GAC7B,MAAM,IAAI+hC,UAAU,kDAItB/hC,EAAI,EAIN,IAAI2Q,EAAK8X,EAELxJ,EAAO,EACP,eAAS+kB,KAEXrzB,EAAK/X,EAAM+hB,KAAK8N,EAAa,CAACub,EAAUA,KAAcvb,EAEtDxJ,EAAOrmB,EAAMm/E,QAAQ,EAAG/zC,IAE1B,IAWIulD,EAXAF,EAASrpF,EAAI,EAAIA,EAAI,EACrBspF,EAAOtpF,EAAI,GAAKA,EAAI,EAGpBwvC,EAAOzwC,EAAK,GACZqvD,EAAUrvD,EAAK,GAGfkM,EAAI/R,KAAK4D,IAAI0yC,EAAO85C,EAAMl7B,EAAUi7B,GAMxC,GAAI,eAAQryE,GAAQ,CAElB,GAAIA,EAAMvb,SAAWwP,EAEnB,MAAM,IAAItQ,MAAM,8BAGlB4uF,EAAS,SAAgBxsF,GAEvB,OAAOia,EAAMja,SAEV,GAAI,eAASia,GAAQ,CAE1B,IAAI6tB,EAAK7tB,EAAMjY,OAEf,GAAkB,IAAd8lC,EAAGppC,QAAgBopC,EAAG,KAAO55B,EAE/B,MAAM,IAAItQ,MAAM,yBAGlB4uF,EAAS,SAAgBxsF,GAEvB,OAAOia,EAAMgb,IAAI,CAACj1B,UAIpBwsF,EAAS,WAEP,OAAOvyE,GAUX,IALA,IAAImG,EAAS,GACTjhB,EAAQ,GACRuyD,EAAM,GAGD1wD,EAAI,EAAGA,EAAIqwD,EAASrwD,IAAK,CAEhC0wD,EAAIrjC,KAAKjO,EAAO1hB,QAEhB,IAAIsB,EAAIgB,EAAIsrF,EAEZ,GAAItsF,GAAK,GAAKA,EAAIkO,EAAG,CAEnB,IAAIuZ,EAAI+kE,EAAOxsF,GAEV4T,EAAG6T,EAAGvF,KAET/iB,EAAMkvB,KAAKruB,EAAIusF,GAEfnsE,EAAOiO,KAAK5G,KAOlB,OAFAiqC,EAAIrjC,KAAKjO,EAAO1hB,QAET,IAAIqoC,EAAa,CACtB3mB,SACAjhB,QACAuyD,MACA1vD,KAAM,CAACywC,EAAM4e,MAajBtqB,EAAa7oC,UAAUuuF,SAAW,SAAUzsF,EAAGgB,GAE7C,IAAK,eAAShB,KAAO,eAAUA,KAAO,eAASgB,KAAO,eAAUA,GAC9D,MAAM,IAAIpD,MAAM,uCAGlB,GAA0B,IAAtBvD,KAAK25C,MAAMt1C,OACb,MAAM,IAAId,MAAM,4CASlB,OANA,eAAcoC,EAAG3F,KAAK25C,MAAM,IAC5B,eAAchzC,EAAG3G,KAAK25C,MAAM,IAG5BjN,EAAa2lD,UAAU1sF,EAAGgB,EAAG3G,KAAK25C,MAAM,GAAI35C,KAAKm3D,QAASn3D,KAAKo3D,OAAQp3D,KAAKs3D,MAErEt3D,MAYT0sC,EAAa4lD,YAAc,SAAU3rF,EAAGof,EAAQjhB,EAAOuyD,EAAKp3B,GAK1D,IAHA,IAAIkkC,EAAK9M,EAAI1wD,GACT0qD,EAAKgG,EAAI1wD,EAAI,GAERiC,EAAIu7D,EAAIv7D,EAAIyoD,EAAIzoD,IAEvBq3B,EAASn7B,EAAM8D,GAAImd,EAAOnd,KAc9B8jC,EAAa2lD,UAAY,SAAUzwF,EAAGoQ,EAAGglD,EAASjxC,EAAQjhB,EAAOuyD,GAE/D,IAAK,IAAI1wD,EAAI,EAAGA,EAAIqwD,EAASrwD,IAAK,CAEhC,IAAIw9D,EAAK9M,EAAI1wD,GACT0qD,EAAKgG,EAAI1wD,EAAI,GAEb4rF,EAAKhC,EAAe3uF,EAAGuiE,EAAI9S,EAAIvsD,GAE/B0tF,EAAKjC,EAAev+E,EAAGmyD,EAAI9S,EAAIvsD,GAEnC,GAAIytF,EAAKlhC,GAAMmhC,EAAKnhC,GAAMvsD,EAAMytF,KAAQ3wF,GAAKkD,EAAM0tF,KAAQxgF,GAEzD,GAAI+T,EAAQ,CACV,IAAIqH,EAAIrH,EAAOwsE,GACfxsE,EAAOwsE,GAAMxsE,EAAOysE,GACpBzsE,EAAOysE,GAAMplE,QAMjB,GAAImlE,EAAKlhC,GAAMvsD,EAAMytF,KAAQ3wF,IAAM4wF,GAAMnhC,GAAMvsD,EAAM0tF,KAAQxgF,GAA7D,CAEE,IAAIygF,EAAK1sE,EAASA,EAAOwsE,QAAMzvF,EAE/BgC,EAAMg7B,OAAO0yD,EAAI,EAAGxgF,GAChB+T,GACFA,EAAO+Z,OAAO0yD,EAAI,EAAGC,GAGvB3tF,EAAMg7B,OAAO0yD,GAAMD,EAAKA,EAAK,EAAIA,EAAI,GACjCxsE,GACFA,EAAO+Z,OAAO0yD,GAAMD,EAAKA,EAAK,EAAIA,EAAI,QAM1C,GAAIC,EAAKnhC,GAAMvsD,EAAM0tF,KAAQxgF,IAAMugF,GAAMlhC,GAAMvsD,EAAMytF,KAAQ3wF,GAAI,CAE/D,IAAI8wF,EAAK3sE,EAASA,EAAOysE,QAAM1vF,EAE/BgC,EAAMg7B,OAAOyyD,EAAI,EAAG3wF,GAChBmkB,GACFA,EAAO+Z,OAAOyyD,EAAI,EAAGG,GAGvB5tF,EAAMg7B,OAAOyyD,GAAMC,EAAKA,EAAK,EAAIA,EAAI,GACjCzsE,GACFA,EAAO+Z,OAAOyyD,GAAMC,EAAKA,EAAK,EAAIA,EAAI,MAKvC9lD,GACN,CACDzB,SAAS,K,oCC58CJ,SAAS0nD,IACd,MAAM,IAAIpvF,MAAM,2CAEX,SAASqvF,IACd,MAAM,IAAIrvF,MAAM,0CAEX,SAASsvF,IACd,MAAM,IAAItvF,MAAM,wCAPlB,uG,kCCAA,mDACInC,EAAO,iBACPC,EAAe,CAAC,QAAS,eAClByxF,EAAsC,eAAQ1xF,EAAMC,EAAcE,IAC3E,IAAI,MACFC,EAAK,YACLy3B,GACE13B,EAoBJ,OAAO,SAAwBuR,EAAGrK,EAAGw3B,EAAUwpD,GAE7C,IAAIvJ,EAAUptE,EAAEqkD,QACZgpB,EAASrtE,EAAEskD,OACXgpB,EAAOttE,EAAEwkD,KACT+oB,EAAQvtE,EAAE6mC,MACVygB,EAAMtnD,EAAEunD,UAGZ,IAAK6lB,EACH,MAAM,IAAI38E,MAAM,sEAIlB,IAIIm3D,EAJAtiB,EAAOioC,EAAM,GACbrpB,EAAUqpB,EAAM,GAKhBK,EAAKzgD,EAGU,kBAARm6B,IAETM,EAAKN,EAEL3xD,EAAIjH,EAAMm/E,QAAQl4E,EAAGiyD,GAErBgmB,EAAKl/E,EAAM+hB,KAAK0c,EAAU,CAACy6B,EAAIA,KAYjC,IARA,IAAIgvB,EAAQ,GAGR9nF,EAAI,GAEJgF,EAAI,GAGCD,EAAI,EAAGA,EAAIqwD,EAASrwD,IAAK,CAIhC,IAFA,IAAIo6E,EAAOp6E,EAAI,EAENw9D,EAAKic,EAAKz5E,GAAI0qD,EAAK+uB,EAAKz5E,EAAI,GAAIiC,EAAIu7D,EAAIv7D,EAAIyoD,EAAIzoD,IAAK,CAE5D,IAAIzD,EAAIg7E,EAAOv3E,GAEfhH,EAAEuD,GAAK+6E,EAAQt3E,GACfhC,EAAEzB,GAAK47E,EAGT,IAAK,IAAIp7E,EAAI,EAAGA,EAAIyyC,EAAMzyC,IAEd,IAANgB,IAEF+iF,EAAM/jF,GAAK,IAGTiB,EAAEjB,KAAOo7E,EAEX2I,EAAM/jF,GAAGgB,GAAK8iF,EAAU/I,EAAGj4E,EAAG7G,EAAE+D,IAAM+6E,EAAG9+E,EAAE+D,GAAI8C,GAG/CihF,EAAM/jF,GAAGgB,GAAK8B,EAMpB,OAAO,IAAIwwB,EAAY,CACrBr4B,KAAM8oF,EACN/hF,KAAM,CAACywC,EAAM4e,GACbpqB,SAAU8tB,Q,qBCrGhBl2D,EAAOxB,QAAU,CACfk4E,QAAS,CACPC,KAAM,EACNX,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,sEAINS,IAAK,CACH99D,IAAK,EACLq9D,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,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0M,aACAP,OAAA,OACAu3B,UACAx3B,WAESsG,GAAuB,gBAAY,CAC5C9F,aACAP,OAAA,OACAu3B,UACAx3B,WAESo6F,GAAsB,gBAAW,CAC1Cl6F,WACAD,OAAA,OACAD,WAESkwB,GAAsB,gBAAW,CAC1C1vB,aACAN,WACA2jB,YACA5jB,OAAA,OACAykD,cACAltB,UACAx3B,SACAiwB,gBAESxS,GAAwB,gBAAa,CAC9CsrB,aACAvR,UACAx3B,WAESmd,GAAuB,gBAAY,CAC5CqC,QACArZ,QACAnG,WAESm1M,GAA4B,gBAAiB,CACtD19J,QACAqxB,aACA9oE,WAESulD,GAAsB,gBAAW,CAC1C9tB,eACAyT,gBACA1T,UACAx3B,WAESy2C,GAA8B,gBAAmB,CAC1D44E,WACArvH,WAESokF,GAA2B,gBAAgB,CACpD3sD,eACAha,UACAg5B,gBACA5mB,eACA2H,UACAx3B,WAES4d,GAAuB,gBAAY,CAC5C6Z,eACAha,UACAoS,eACA2H,UACAx3B,WAESkqC,GAAyB,gBAAc,CAChD1S,UACAx3B,WAESo1M,GAAiC,gBAAsB,CAChEjoK,aACAntC,WAESw3C,GAA0B,gBAAe,CAClDh3C,aACAi3B,eACAyT,gBACAjrC,OAAA,OACAu3B,UACAx3B,WAESq1M,GAAsB,gBAAW,CAC1C79K,UACAmgB,kBACA33C,WAESs1M,GAA0B,gBAAe,CAClD79K,eACAha,UACAxd,OAAA,OACAu3B,UACAx3B,WAESu1M,GAA2B,gBAAgB,CACpD99K,eACAha,UACAoS,eACA2H,UACAx3B,SACAsG,WAESqrF,GAAwB,gBAAa,CAC9Cl6D,eACAgf,gBACA5mB,eACA2H,UACAmgB,kBACAC,kBACA53C,WAES4lD,GAAmC,gBAAwB,CACpE1b,WACA1S,UACArxB,QACAnG,WAESw1M,GAAyB,gBAAc,CAChDh1M,aACAid,UACAoS,eACA2H,UACAx3B,WAESy1M,GAAsB,gBAAW,CAC1Cj1M,aACAP,OAAA,OACAu3B,UACAx3B,WAESwlD,GAAoB,gBAAS,CACtC9N,aACAG,WACAJ,QACAhB,gBACA74B,SACA45B,YACA7vC,UACA6vB,UACAmgB,kBACApL,QACAlzB,QACAu+B,kBACA53C,SACAiwB,cACA3pB,WAESypF,GAAwB,gBAAa,CAC9C9vF,OAAA,OACAu3B,YAESk+K,GAAiC,gBAAsB,CAChEj+K,eACAha,UACAoS,eACA2H,UACAx3B,SACAsG,WAESqM,GAAuB,gBAAY,CAC5CnS,aACAi3B,eACA5H,eACA2H,UACAx3B,SACAsG,WAESilB,GAAyB,gBAAc,CAChDkM,eACAha,UACAxd,OAAA,OACAu3B,UACAx3B,WAES8vB,GAA0B,gBAAe,CAClD2H,eACAha,UACAoS,eACA2H,UACAogB,kBACA53C,SACAiwB,gBAESm4D,GAAoB,gBAAS,CACtC3qE,UACA+Z,UACAx3B,WAES21M,GAAyB,gBAAc,CAChDl+K,eACAha,UACAxd,OAAA,OACA4vB,eACA2H,UACAx3B,WAESylD,GAAwB,gBAAa,CAC9ChuB,eACAgf,gBACA5mB,eACA2H,UACAmgB,kBACAC,kBACA53C,WAESsK,GAAqB,gBAAU,CACxCmtB,eACAha,UACA+Z,UACAx3B,WAES6K,GAAqB,gBAAU,CACxC4sB,eACAyT,gBACAwM,aACAj6B,UACAoS,eACA2H,UACAx3B,WAESy/F,GAAuB,gBAAY,CAC5Cj/F,aACAi3B,eACAha,UACAoS,eACA2H,UACAx3B,WAES41M,GAAwB,gBAAa,CAC9Cn4L,UACAoS,eACA2H,UACAx3B,WAES61M,GAAwB,gBAAa,CAC9Cp+K,eACAha,UACA+Z,UACAx3B,WAES81M,GAAyB,gBAAc,CAChDp+J,aACAk8J,gBACAn9J,gBACA1N,aACA2b,cACA/M,kBACA33C,WAES8hC,GAAyB,gBAAc,CAChDthC,aACAi3B,eACA5T,YACApG,UACAxd,OAAA,OACA4vB,eACA2H,UACAx3B,WAESue,GAA6B,gBAAkB,CACxDd,UACA+Z,UACAx3B,WAES+1M,GAAwB,gBAAa,CAC9ClrM,OACA7K,SACAuzM,eAESyC,GAA2B,gBAAgB,CACpDp4L,SACA5d,WAESqV,GAAsB,gBAAW,CAC1CmiB,UACAr3B,UACA2vB,YACA9vB,WAESi2M,GAA0B,gBAAe,CAClD9sM,OACAuuC,aACAs+J,aACAv/J,gBACAkB,kBACAt+B,QACAu+B,kBACA53C,WAES6lD,GAAqB,gBAAU,CACxCnO,aACAD,QACAE,kBACAxxC,QACAnG,WAESk2M,GAA2B,gBAAgB,CACpD33L,eACA5W,UACA3H,WAES+f,GAAuB,gBAAY,CAC5C0X,eACAx3B,OAAA,OACA4vB,eACA2H,UACA7kB,SACA3S,SACAsG,WAESuQ,GAAqB,gBAAU,CACxCrW,aACAi3B,eACAha,UACAxd,OAAA,OACA4vB,eACA2H,UACA7kB,SACA3S,SACAsG,WAESg6F,GAAuB,gBAAY,CAC5Cn3F,OACAuuC,aACAjB,gBACAzN,cACA2O,kBACApsB,WACAlS,QACArZ,WAESm2M,GAAsC,gBAAgC,CAC/E1+K,eACAlM,aAES4mC,GAAuB,gBAAiB,CACjDgkJ,wBACAnC,uBAESruJ,GAAwB,gBAAa,CAC9CluB,eACAha,UACAxd,OAAA,OACAu3B,UACAx3B,WAES0f,GAAqB,gBAAU,CACxCxf,WACAD,OAAA,OACAw2C,gBACAz2C,WAESo2M,GAA2B,gBAAgB,CACpD3+K,eACAgf,gBACA5mB,eACA2H,UACAmgB,kBACAC,kBACA53C,WAESq2M,GAAgC,gBAAqB,CAC9DnsK,WACA1S,UACArxB,QACAnG,WAESkE,GAAqB,gBAAU,CACxCjE,OAAA,OACAovH,WACA9jG,WACAvrB,WAESY,GAAqB,gBAAU,CACxC62B,eACAha,UACAxd,OAAA,OACA4vB,eACA2H,UACA7kB,SACA3S,SACAsG,WAESypB,GAA0B,gBAAe,CAClD2nB,aACAmO,OACAh2B,eACA2H,UACAmgB,kBACA33C,WAESs2M,GAA0B,gBAAe,CAClDp2M,WACAD,OAAA,OACAw2C,gBACAz2C,WAES8J,GAAoB,gBAAS,CACtC2tB,eACAha,UACAoS,eACA2H,UACAx3B,WAES4rM,GAAiC,gBAAsB,CAChE9pK,WACA7K,SACAkW,aACAntC,WAESu2M,GAA+B,gBAAoB,CAC5D9+K,eACAha,UACAoS,eACA2H,UACAx3B,SACAsG,WAESorF,GAAqB,gBAAU,CACxCxmD,gBACA/hC,OACA0B,OACA4rC,gBACAkP,UACA2vJ,YACAvlL,YACAD,YACAg5C,aACA9oE,WAESuyD,GAAwB,gBAAa,CAC9C1nD,OACA2sB,UACAx3B,SACAsG,WAES2iC,GAAqB,gBAAU,CACxCp+B,OACA5K,OAAA,OACAovH,WACArvH,WAESuyE,GAAuB,gBAAY,CAC5C1nE,OACA2sB,UACAx3B,WAES0lD,GAA2B,gBAAgB,CACpDjuB,eACAgf,gBACA5mB,eACA2H,UACAmgB,kBACAC,kBACA53C,WAESw2M,GAAwB,gBAAa,CAC9Ct2M,WACA2K,OACAklB,YACA5vB,UACAH,WAESy2M,GAAuB,gBAAY,CAC5Ch/K,eACAha,UACAoS,eACA2H,UACAx3B,WAESkF,GAAsB,gBAAW,CAC1CuyB,eACAx3B,OAAA,OACA4vB,eACA2H,UACA7kB,SACA3S,SACAsG,WAESskF,GAAgC,gBAAqB,CAC9D9oD,WACA9hC,WAES02M,GAA6B,gBAAkB,CACxDh/J,aACAk8J,gBACA7qK,aACA2b,cACA1b,cACA2c,UACA3lD,WAES22M,GAAuB,gBAAY,CAC5Cn/K,UACAzH,YACAD,YACA9vB,WAESo2H,GAAqB,gBAAU,CACxC3/E,gBACA9uC,UACA6vB,UACAzH,YACA6nB,kBACA53C,SACAiwB,gBAES2mL,GAA6B,gBAAkB,CACxDn5L,UACAoS,eACA2H,UACAmgB,kBACA33C,WAES62M,GAA+B,gBAAyB,CACjElxJ,UACAp6B,aAESulI,GAAqB,gBAAU,CACxC5wJ,WACAu3B,eACAvyB,QACA2qB,eACA9P,SACAyX,UACAx3B,SACAsG,WAEShD,GAAuB,gBAAY,CAC5C6uD,SACAnyD,WAES82M,GAA2B,gBAAgB,CACpD3tM,OACA0B,OACA6sC,aACAz3C,OAAA,OACAw2C,gBACA5mB,eACAqa,WACAiD,aACAxlC,UACA6vB,UACAzH,YACA4nB,kBACApsB,WACAuE,YACA9vB,WAES+2M,GAAwB,gBAAa,CAC9Cv2M,aACAqK,OACA5K,OAAA,OACA2d,SACAmrB,aACAnoC,OACA2qB,WACAvrB,SACAk1M,UAES8B,GAAqB,gBAAU,CACxCv5L,UACAoS,eACA2H,UACAx3B,WAESszH,GAAuB,gBAAY,CAC5CpzH,WACAD,OAAA,OACAw2C,gBACA/2B,OACA1f,WAESuE,GAAqB,gBAAU,CACxCtE,OAAA,OACA0lD,UACA0pE,WACArvH,WAESi3M,GAA8B,gBAAmB,CAC1Dx/K,eACA06B,SACAy4B,kBACAzkF,QACAosD,UACAvyD,WAESk3M,GAA6B,gBAAkB,CACxDz/K,eACA06B,SACAy4B,kBACAzkF,QACAosD,UACAvyD,WAESm3M,GAA6B,gBAAkB,CACxDhlJ,SACAy4B,kBACAzkF,QACAosD,UACAvyD,WAESo3M,GAA6B,gBAAkB,CACxDjlJ,SACAy4B,kBACAzkF,QACAosD,UACAvyD,WAES6rM,GAA2B,gBAAgB,CACpDp0K,eACAha,UACAxd,OAAA,OACAu3B,UACAx3B,WAESwoD,GAAsB,gBAAW,CAC1C1mB,WACA8oD,kBACApzD,UACAx3B,WAESkK,GAAqB,gBAAU,CACxCuT,UACAoS,eACA2H,UACAgxD,OACAxoF,SACAsG,WAES8rD,GAAuB,gBAAY,CAC5C9M,aACA9tB,UACA3sB,OACA5K,OAAA,OACA+oC,cACA2c,UACA2vJ,YACA/pL,WACAsgL,aACA7rM,WAESsqC,GAAqB,gBAAU,CACxC6nB,SACA36B,UACA46B,SACApyD,WAESkvJ,GAA+B,gBAAoB,CAC5Dz3H,eACA06B,SACAy4B,kBACAzkF,QACAosD,UACAvyD,WAESq3M,GAAiC,gBAAsB,CAChEllJ,SACAy4B,kBACAzkF,QACAosD,UACAvyD,WAESs3M,GAAkC,gBAAuB,CAClEnlJ,SACA10C,UACAyxI,iBACA/oJ,QACAosD,UACAvyD,WAESu3M,GAAqB,gBAAe,CAC7CV,iBACAn/J,aACA7nB,iBAESw9B,GAAwB,gBAAa,CAC9C8E,SACA36B,UACA46B,SACApyD,WAESyb,GAAqB,gBAAU,CACxCtS,OACAuuC,aACA0+E,OACA3/E,gBACAe,YACAhgB,UACAzH,YACA/vB,SACAiwB,gBAESwhE,GAAqB,gBAAU,CACxCh6D,eACA8/K,OACArsK,gBACA/hC,OACAuuC,aACAjB,gBACA5mB,eACA81B,UACAnuB,UACAmgB,kBACAC,kBACA53C,SACAiwB,gBAESunL,GAAsB,gBAAW,CAC1Ct3M,WACA2K,OACAsqM,cACAa,aACAv/J,gBACAoP,OACAu+B,aACAxmE,SACAnC,OACA+b,UACAzH,YACA/vB,WAES8F,GAAqB,gBAAU,CACxC5F,WACAD,OAAA,OACAygH,YACAlpE,YACA/7B,OACA+b,UACAzH,YACA5vB,UACAH,WAESy3M,GAA8B,gBAAmB,CAC1DhgL,eACA06B,SACAy4B,kBACAzkF,QACAosD,UACAvyD,WAES03M,GAA0B,gBAAe,CAClDvlJ,SACA10C,UACAg6L,gBACAH,oBACAnxM,QACAosD,UACAvyD,WAES23M,GAAuB,gBAAY,CAC5CxuM,OACA0B,OACA2sC,YACA/7B,OACAsC,OACAxZ,OACAwrB,YACA5pB,QACAkT,QACAyW,YACA9vB,WAES8jB,GAAsB,gBAAgB,CAC/CtjB,aACAN,WACA2jB,YACA1a,OACAuuC,aACAz3C,OAAA,OACAw2C,gBACA74B,SACAkzI,OACAz5H,UACA8V,aACAwK,kBACAx3C,UACA2F,OACA6M,SACAilC,oBAESggK,GAAiC,eAAsB,CAChEp3M,aACAsjB,QACA7jB,OAAA,SAES43M,GAAkC,eAAuB,CAClEr3M,aACAsjB,QACA7jB,OAAA,SAES63M,GAA4B,eAAiB,CACtDt3M,aACAsjB,QACA7jB,OAAA,SAES83M,GAA8B,eAAmB,CAC1Dv3M,aACAsjB,QACA7jB,OAAA,SAES+3M,GAA2B,eAAgB,CACpDx3M,aACAsjB,QACA7jB,OAAA,SAESg4M,GAAoC,eAAyB,CACtEz3M,aACAsjB,QACA7jB,OAAA,SAES8iK,GAAyB,eAAc,CAChDviK,aACAsjB,QACA7jB,OAAA,SAESi4M,GAA8B,eAAmB,CAC1D13M,aACAsjB,QACA7jB,OAAA,SAESk4M,GAAwB,gBAAa,CAC9C1gL,eACAha,UACAoS,eACA2H,UACA1xB,OACA9F,WAESo4M,GAAkC,eAAuB,CAClE53M,aACAsjB,QACA7jB,OAAA,SAESo4M,GAAkC,eAAuB,CAClE73M,aACAsjB,QACA7jB,OAAA,SAESq4M,GAAsB,gBAAW,CAC1CnvM,OACA0B,OACA2sC,YACA/7B,OACAsU,YACA/vB,WAESu4M,GAAyB,eAAc,CAChD/3M,aACAsjB,QACA7jB,OAAA,SAESkkF,GAAqB,gBAAU,CACxCzsC,aACAxyC,QACAuyC,QACAhB,gBACA2tC,aACAhlE,OACAjb,KACAq8F,QACAhpE,UACAmgB,kBACA7xC,OACA+yC,OACA74C,WAES+yD,GAAuB,gBAAY,CAC5CvyD,aACAN,WACAD,OAAA,OACA03C,kBACA7xC,OACA9F,WAESw4M,GAAqC,eAA0B,CACxEh4M,aACAsjB,QACA7jB,OAAA,SAESw4M,GAA+B,eAAoB,CAC5Dj4M,aACAsjB,QACA7jB,OAAA,SAESy4M,GAAsB,gBAAW,CAC1CjhK,QACA2sC,aACAD,OACAnkF,WAES24M,GAA0B,eAAe,CAClDn4M,aACAsjB,QACA7jB,OAAA,SAES24M,GAA2B,eAAgB,CACpDp4M,aACAsjB,QACA7jB,OAAA,SAES44M,GAAkC,eAAuB,CAClEr4M,aACAsjB,QACA7jB,OAAA,SAES64M,GAA2B,eAAgB,CACpDt4M,aACAsjB,QACA7jB,OAAA,SAES84M,GAAqC,eAA0B,CACxEv4M,aACAsjB,QACA7jB,OAAA,SAES+4M,GAA6B,eAAkB,CACxDx4M,aACAsjB,QACA7jB,OAAA,SAESg5M,GAAiC,eAAsB,CAChEz4M,aACAsjB,QACA7jB,OAAA,SAESi5M,GAA8B,eAAmB,CAC1D14M,aACAsjB,QACA7jB,OAAA,SAESk5M,GAA8B,eAAmB,CAC1D34M,aACAsjB,QACA7jB,OAAA,SAESm5M,GAAmC,eAAwB,CACpE54M,aACAsjB,QACA7jB,OAAA,SAESo5M,GAA4B,eAAiB,CACtD74M,aACAsjB,QACA7jB,OAAA,SAESq5M,GAAsC,eAA2B,CAC1E94M,aACAsjB,QACA7jB,OAAA,SAESs5M,GAAuC,eAA4B,CAC5E/4M,aACAsjB,QACA7jB,OAAA,SAESu5M,GAAyB,eAAc,CAChDh5M,aACAsjB,QACA7jB,OAAA,SAESw5M,GAAiC,eAAsB,CAChEj5M,aACAsjB,QACA7jB,OAAA,SAESy5M,GAA8B,eAAmB,CAC1Dl5M,aACAsjB,QACA7jB,OAAA,SAES05M,GAAiC,eAAsB,CAChEn5M,aACAsjB,QACA7jB,OAAA,SAES25M,GAAqC,eAA0B,CACxEp5M,aACAsjB,QACA7jB,OAAA,SAES45M,GAA0B,eAAe,CAClDr5M,aACAsjB,QACA7jB,OAAA,SAES65M,GAA4B,eAAiB,CACtDt5M,aACAsjB,QACA7jB,OAAA,SAES0xE,GAA4B,gBAAiB,CACtD7tD,QACA9jB,WAESgwB,GAAwB,gBAAa,CAC9CymB,gBACA5mB,eACApU,OACA+b,UACAzH,YACA/vB,WAES+5M,GAA8B,eAAmB,CAC1Dv5M,aACAsjB,QACA7jB,OAAA,SAES6oC,GAA2B,gBAAgB,CACpDiqB,SACA/yD,WAESg6M,GAAgC,eAAqB,CAC9Dx5M,aACAsjB,QACA7jB,OAAA,SAESg6M,GAAyB,eAAc,CAChDz5M,aACAsjB,QACA7jB,OAAA,SAESi6M,GAA2C,eAAgC,CACpF15M,aACAsjB,QACA7jB,OAAA,SAES8oE,GAAyB,gBAAc,CAChDtxC,eACAk6D,UACAF,OACAj6D,UACAk6D,OACA1xF,SACAylD,YAES00J,GAAqC,eAA0B,CACxE35M,aACAsjB,QACA7jB,OAAA,SAESm6M,GAA8B,eAAmB,CAC1D55M,aACAsjB,QACA7jB,OAAA,SAESo6M,GAA6B,gBAAkB,CACxDxvM,OACAmlB,UACA8Y,aACAC,aACAC,cACAjZ,YACA/vB,WAESs6M,GAA8B,gBAAmB,CAC1DxxK,aACA9oC,WAESu6M,GAA4B,eAAiB,CACtD/5M,aACAsjB,QACA7jB,OAAA,SAESu6M,GAAgC,gBAAqB,CAC9D3vM,OACAqlB,QACAF,UACAH,eACAnZ,MACA/O,UACAooB,YACAhe,MACAsH,QACAyW,YACAK,UACAnwB,SACAiwB,gBAES8wK,GAAyB,gBAAc,CAChDn2G,kBACA5qF,WAESy6M,GAA0B,gBAAe,CAClDtxM,OACA0B,OACAy6C,aACAt1B,UACA00B,cACA1b,cACA2c,UACA5nC,OACAyZ,UACAjzB,OACAwrB,YACAxE,WACAuE,YACA9vB,SACAiwB,gBAESy6E,GAA4B,gBAAiB,CACtDplD,aACA5N,aACAk8J,gBACAn9J,gBACA3N,aACAC,aACA2b,cACAiB,UACAhO,kBACAx3C,UACA2F,OACA8xC,kBACA53C,WAESwuG,GAAsB,gBAAmB,CAClD1qF,QACA9jB,WAES06M,GAA6B,gBAAkB,CACxDhjK,aACA3O,aACA2b,cACAgmD,cACA1qG,WAES26M,GAAsB,gBAAW,CAC1CxxM,OACA0B,OACA6sC,aACAiT,QACArF,aACA+H,UACAxV,WACA53C,OAAA,OACAuR,OACA+zC,QACA9O,gBACAoP,OACAjoC,SACAssB,WACAxzB,MACA+E,OACAkqC,UACAnuB,UACAouB,qBACA71B,YACA4nB,kBACAx3C,UACAqlD,MACAzzC,MACAJ,OACA4Z,WACAlS,QACAyW,YACA9vB,SACAylD,UACAC,eAESk1J,GAA+B,eAAoB,CAC5Dp6M,aACAsjB,QACA7jB,OAAA,SAES46M,GAA6B,eAAkB,CACxDr6M,aACAsjB,QACA7jB,OAAA,SAES66M,GAAsB,gBAAW,CAC1CjwM,OACAmlB,UACAhwB,WAES+6M,GAA6B,eAAkB,CACxDv6M,aACAsjB,QACA7jB,OAAA,SAES+6M,GAAgC,eAAqB,CAC9Dx6M,aACAsjB,QACA7jB,OAAA,SAESg7M,GAA6B,gBAAkB,CACxD31J,aACAz6C,OACAi3B,WACA9R,UACA+Y,aACA4c,UACA51B,YACA67K,mBACArgL,WACAsgL,aACA/7K,YACA9vB,WAESk7M,GAA0B,gBAAe,CAClDrwM,OACAsrB,SACAnG,UACAiH,SACAlH,YACAD,YACA9vB,WAESm7M,GAAyC,eAA8B,CAChF36M,aACAsjB,QACA7jB,OAAA,SAESm7M,GAAwB,gBAAa,CAC9CvwM,OACAi3B,WACA9R,UACA47K,mBACA5rM,WAESq7M,GAAsB,gBAAW,CAC1CxwM,OACAmlB,UACAwH,UACAsjL,QACA/qL,YACAjqB,OACAuT,QACAyW,YACAmZ,OACAjpC,WAESs7M,GAAuB,gBAAY,CAC5Cp7M,WACA2K,OACAmlB,UACAwH,UACAzH,YACA/vB,WAESu7M,GAAqB,gBAAU,CACxCpyM,OACA4U,OACAq9L,UACAtrL,YACA9vB,WAESw7M,GAAqB,gBAAU,CACxCz9L,OACA1E,QACArZ,SACAk7M,cAESO,GAAsB,gBAAW,CAC1Cj7M,aACAN,WACA2K,OACA5K,OAAA,OACA+vB,UACApS,SACAkrB,aACAiqB,SACArO,cACA30B,YACAyvE,MACA15F,OACA6L,OACAk6L,aACA/7K,YACA9vB,WAESsqD,GAAsB,gBAAW,CAC1CnhD,OACA0B,OACA4sC,QACA09J,cACAwF,QACA9qL,eACA81B,UACAnuB,UACAzH,YACAjqB,OACAylB,WACAlS,QACArZ,WAES07M,GAAgC,gBAAqB,CAC9Dl7M,aACAi3B,eACAyT,gBACAwM,aACAz3C,OAAA,OACAuR,OACAgmB,UACAmgB,kBACA2S,QACA34C,OACA3R,SACAiwB,gBAES0rL,GAA8B,gBAAmB,CAC1D3rL,UACAo0D,aACAj3C,aACAztB,OACA3B,OACAyZ,UACAzH,YACAkZ,OACAjpC,WAES47M,GAA4B,eAAiB,CACtDp7M,aACAsjB,QACA7jB,OAAA,SAES4oE,GAAuB,gBAAY,CAC5CrxB,YACAhgB,UACAzH,YACAu6B,QACA9E,MACA11B,YACA9vB,WAESy6K,GAAwB,gBAAa,CAC9C1qJ,YACA2rL,kBACA17M,WAES67M,GAA2B,gBAAgB,CACpD1yM,OACA0B,OACA4S,UACA+5B,YACAl0C,SACAylE,WACAvxC,UACAouB,qBACA71B,YACAqiC,SACAyW,SACAtW,UACAziC,YACAg5C,aACA9oE,WAES87M,GAAsB,gBAAW,CAC1CtkL,UACAzH,YACA8rL,aACA/yI,aACA9oE,Y,kCCxvDF,mDACIJ,EAAO,cACPC,EAAe,CAAC,QAAS,YAAa,eAAgB,aAAc,aAAc,YAAa,UACxFk8M,EAAmC,eAAQn8M,EAAMC,EAAcE,IACxE,IAAI,MACFC,EAAK,UACL03C,EAAS,aACTk8J,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S,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,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KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAA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IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,GAClB,CAAED,MAAO,EAAGC,IAAK,GACjB,CAAED,MAAO,EAAGC,IAAK,IACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,EAAGC,IAAK,IACjB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,GACjB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,IACjB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,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B,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IACl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KC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,EAAGC,IAAK,IACjB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,GAClB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,GAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,GAClB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,GAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,GAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO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AED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,IAClB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACn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KC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,GACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,GAAIC,IAAK,KAClB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,GACnB,CAAED,MAAO,EAAGC,IAAK,GACjB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,GAAIC,IAAK,GAClB,CAAED,MAAO,EAAGC,IAAK,KACjB,CAAED,MAAO,IAAKC,IAAK,IACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACnB,CAAED,MAAO,IAAKC,IAAK,KACn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","file":"js/chunk-7d490f53.33c0efba.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v(\"test\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisualizarContrato.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisualizarContrato.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VisualizarContrato.vue?vue&type=template&id=4241bb1b\"\nimport script from \"./VisualizarContrato.vue?vue&type=script&lang=js\"\nexport * from \"./VisualizarContrato.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { factory } from '../../utils/factory.js';\nvar name = 'acos';\nvar dependencies = ['typed', 'config', 'Complex'];\nexport var createAcos = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n Complex\n } = _ref;\n /**\n * Calculate the inverse cosine of a value.\n *\n * To avoid confusion with the matrix arccosine, this function does not\n * apply to matrices.\n *\n * Syntax:\n *\n * math.acos(x)\n *\n * Examples:\n *\n * math.acos(0.5) // returns number 1.0471975511965979\n * math.acos(math.cos(1.5)) // returns number 1.5\n *\n * math.acos(2) // returns Complex 0 + 1.3169578969248166 i\n *\n * See also:\n *\n * cos, atan, asin\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} The arc cosine of x\n */\n return typed(name, {\n number: function number(x) {\n if (x >= -1 && x <= 1 || config.predictable) {\n return Math.acos(x);\n } else {\n return new Complex(x, 0).acos();\n }\n },\n Complex: function Complex(x) {\n return x.acos();\n },\n BigNumber: function BigNumber(x) {\n return x.acos();\n }\n });\n});","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\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","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\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 this.padding = options.padding !== false\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","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function 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\nconstants.der = require('./der');\n","import { factory } from '../../utils/factory.js';\nvar name = 'equalText';\nvar dependencies = ['typed', 'compareText', 'isZero'];\nexport var createEqualText = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n compareText,\n isZero\n } = _ref;\n /**\n * Check equality of two strings. Comparison is case sensitive.\n *\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.equalText(x, y)\n *\n * Examples:\n *\n * math.equalText('Hello', 'Hello') // returns true\n * math.equalText('a', 'A') // returns false\n * math.equal('2e3', '2000') // returns true\n * math.equalText('2e3', '2000') // returns false\n *\n * math.equalText('B', ['A', 'B', 'C']) // returns [false, true, false]\n *\n * See also:\n *\n * equal, compareText, compare, compareNatural\n *\n * @param {string | Array | DenseMatrix} x First string to compare\n * @param {string | Array | DenseMatrix} y Second string to compare\n * @return {number | Array | DenseMatrix} Returns true if the values are equal, and false if not.\n */\n return typed(name, {\n 'any, any': function anyAny(x, y) {\n return isZero(compareText(x, y));\n }\n });\n});","import { cbrt, expm1, isInteger, log10, log1p, log2, sign, toFixed } from '../../utils/number.js';\nvar n1 = 'number';\nvar n2 = 'number, number';\nexport function absNumber(a) {\n return Math.abs(a);\n}\nabsNumber.signature = n1;\nexport function addNumber(a, b) {\n return a + b;\n}\naddNumber.signature = n2;\nexport function subtractNumber(a, b) {\n return a - b;\n}\nsubtractNumber.signature = n2;\nexport function multiplyNumber(a, b) {\n return a * b;\n}\nmultiplyNumber.signature = n2;\nexport function divideNumber(a, b) {\n return a / b;\n}\ndivideNumber.signature = n2;\nexport function unaryMinusNumber(x) {\n return -x;\n}\nunaryMinusNumber.signature = n1;\nexport function unaryPlusNumber(x) {\n return x;\n}\nunaryPlusNumber.signature = n1;\nexport function cbrtNumber(x) {\n return cbrt(x);\n}\ncbrtNumber.signature = n1;\nexport function cubeNumber(x) {\n return x * x * x;\n}\ncubeNumber.signature = n1;\nexport function expNumber(x) {\n return Math.exp(x);\n}\nexpNumber.signature = n1;\nexport function expm1Number(x) {\n return expm1(x);\n}\nexpm1Number.signature = n1;\n\n/**\n * Calculate gcd for numbers\n * @param {number} a\n * @param {number} b\n * @returns {number} Returns the greatest common denominator of a and b\n */\nexport function gcdNumber(a, b) {\n if (!isInteger(a) || !isInteger(b)) {\n throw new Error('Parameters in function gcd must be integer numbers');\n }\n\n // https://en.wikipedia.org/wiki/Euclidean_algorithm\n var r;\n while (b !== 0) {\n r = a % b;\n a = b;\n b = r;\n }\n return a < 0 ? -a : a;\n}\ngcdNumber.signature = n2;\n\n/**\n * Calculate lcm for two numbers\n * @param {number} a\n * @param {number} b\n * @returns {number} Returns the least common multiple of a and b\n */\nexport function lcmNumber(a, b) {\n if (!isInteger(a) || !isInteger(b)) {\n throw new Error('Parameters in function lcm must be integer numbers');\n }\n if (a === 0 || b === 0) {\n return 0;\n }\n\n // https://en.wikipedia.org/wiki/Euclidean_algorithm\n // evaluate lcm here inline to reduce overhead\n var t;\n var prod = a * b;\n while (b !== 0) {\n t = b;\n b = a % t;\n a = t;\n }\n return Math.abs(prod / a);\n}\nlcmNumber.signature = n2;\n\n/**\n * Calculate the logarithm of a value, optionally to a given base.\n * @param {number} x\n * @param {number | null | undefined} base\n * @return {number}\n */\nexport function logNumber(x, y) {\n if (y) {\n return Math.log(x) / Math.log(y);\n }\n return Math.log(x);\n}\n\n/**\n * Calculate the 10-base logarithm of a number\n * @param {number} x\n * @return {number}\n */\nexport function log10Number(x) {\n return log10(x);\n}\nlog10Number.signature = n1;\n\n/**\n * Calculate the 2-base logarithm of a number\n * @param {number} x\n * @return {number}\n */\nexport function log2Number(x) {\n return log2(x);\n}\nlog2Number.signature = n1;\n\n/**\n * Calculate the natural logarithm of a `number+1`\n * @param {number} x\n * @returns {number}\n */\nexport function log1pNumber(x) {\n return log1p(x);\n}\nlog1pNumber.signature = n1;\n\n/**\n * Calculate the modulus of two numbers\n * @param {number} x\n * @param {number} y\n * @returns {number} res\n * @private\n */\nexport function modNumber(x, y) {\n // We don't use JavaScript's % operator here as this doesn't work\n // correctly for x < 0 and x === 0\n // see https://en.wikipedia.org/wiki/Modulo_operation\n return y === 0 ? x : x - y * Math.floor(x / y);\n}\nmodNumber.signature = n2;\n\n/**\n * Calculate the nth root of a, solve x^root == a\n * http://rosettacode.org/wiki/Nth_root#JavaScript\n * @param {number} a\n * @param {number} [2] root\n * @private\n */\nexport function nthRootNumber(a) {\n var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var inv = root < 0;\n if (inv) {\n root = -root;\n }\n if (root === 0) {\n throw new Error('Root must be non-zero');\n }\n if (a < 0 && Math.abs(root) % 2 !== 1) {\n throw new Error('Root must be odd when a is negative.');\n }\n\n // edge cases zero and infinity\n if (a === 0) {\n return inv ? Infinity : 0;\n }\n if (!isFinite(a)) {\n return inv ? 0 : a;\n }\n var x = Math.pow(Math.abs(a), 1 / root);\n // If a < 0, we require that root is an odd integer,\n // so (-1) ^ (1/root) = -1\n x = a < 0 ? -x : x;\n return inv ? 1 / x : x;\n\n // Very nice algorithm, but fails with nthRoot(-2, 3).\n // Newton's method has some well-known problems at times:\n // https://en.wikipedia.org/wiki/Newton%27s_method#Failure_analysis\n /*\n let x = 1 // Initial guess\n let xPrev = 1\n let i = 0\n const iMax = 10000\n do {\n const delta = (a / Math.pow(x, root - 1) - x) / root\n xPrev = x\n x = x + delta\n i++\n }\n while (xPrev !== x && i < iMax)\n if (xPrev !== x) {\n throw new Error('Function nthRoot failed to converge')\n }\n return inv ? 1 / x : x\n */\n}\n\nexport function signNumber(x) {\n return sign(x);\n}\nsignNumber.signature = n1;\nexport function sqrtNumber(x) {\n return Math.sqrt(x);\n}\nsqrtNumber.signature = n1;\nexport function squareNumber(x) {\n return x * x;\n}\nsquareNumber.signature = n1;\n\n/**\n * Calculate xgcd for two numbers\n * @param {number} a\n * @param {number} b\n * @return {number} result\n * @private\n */\nexport function xgcdNumber(a, b) {\n // source: https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm\n var t; // used to swap two variables\n var q; // quotient\n var r; // remainder\n var x = 0;\n var lastx = 1;\n var y = 1;\n var lasty = 0;\n if (!isInteger(a) || !isInteger(b)) {\n throw new Error('Parameters in function xgcd must be integer numbers');\n }\n while (b) {\n q = Math.floor(a / b);\n r = a - q * b;\n t = x;\n x = lastx - q * x;\n lastx = t;\n t = y;\n y = lasty - q * y;\n lasty = t;\n a = b;\n b = r;\n }\n var res;\n if (a < 0) {\n res = [-a, -lastx, -lasty];\n } else {\n res = [a, a ? lastx : 0, lasty];\n }\n return res;\n}\nxgcdNumber.signature = n2;\n\n/**\n * Calculates the power of x to y, x^y, for two numbers.\n * @param {number} x\n * @param {number} y\n * @return {number} res\n */\nexport function powNumber(x, y) {\n // x^Infinity === 0 if -1 < x < 1\n // A real number 0 is returned instead of complex(0)\n if (x * x < 1 && y === Infinity || x * x > 1 && y === -Infinity) {\n return 0;\n }\n return Math.pow(x, y);\n}\npowNumber.signature = n2;\n\n/**\n * round a number to the given number of decimals, or to zero if decimals is\n * not provided\n * @param {number} value\n * @param {number} decimals number of decimals, between 0 and 15 (0 by default)\n * @return {number} roundedValue\n */\nexport function roundNumber(value) {\n var decimals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!isInteger(decimals) || decimals < 0 || decimals > 15) {\n throw new Error('Number of decimals in function round must be an integer from 0 to 15 inclusive');\n }\n return parseFloat(toFixed(value, decimals));\n}\n\n/**\n * Calculate the norm of a number, the absolute value.\n * @param {number} x\n * @return {number}\n */\nexport function normNumber(x) {\n return Math.abs(x);\n}\nnormNumber.signature = n1;","'use strict';\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimLeft` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimleft\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, {\n trimLeft: trimStart\n});\n","/**\n * lodash 3.0.3 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && objectToString.call(value) == boolTag);\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isBoolean;\n","import { factory } from '../../utils/factory.js';\nexport var createCompareUnits = /* #__PURE__ */factory('compareUnits', ['typed'], _ref => {\n var {\n typed\n } = _ref;\n return {\n 'Unit, Unit': typed.referToSelf(self => (x, y) => {\n if (!x.equalBase(y)) {\n throw new Error('Cannot compare units with different base');\n }\n return typed.find(self, [x.valueType(), y.valueType()])(x.value, y.value);\n })\n };\n});","import { MethodNotImplementedError } from \"../errors\";\nvar PDFObject = /** @class */ (function () {\n function PDFObject() {\n }\n PDFObject.prototype.clone = function (_context) {\n throw new MethodNotImplementedError(this.constructor.name, 'clone');\n };\n PDFObject.prototype.toString = function () {\n throw new MethodNotImplementedError(this.constructor.name, 'toString');\n };\n PDFObject.prototype.sizeInBytes = function () {\n throw new MethodNotImplementedError(this.constructor.name, 'sizeInBytes');\n };\n PDFObject.prototype.copyBytesInto = function (_buffer, _offset) {\n throw new MethodNotImplementedError(this.constructor.name, 'copyBytesInto');\n };\n return PDFObject;\n}());\nexport default PDFObject;\n//# sourceMappingURL=PDFObject.js.map","import { factory } from '../../utils/factory.js';\nimport { typeOf as _typeOf } from '../../utils/is.js';\nvar name = 'typeOf';\nvar dependencies = ['typed'];\nexport var createTypeOf = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Determine the type of an entity.\n *\n * Syntax:\n *\n * math.typeOf(x)\n *\n * Examples:\n *\n * // This list is intended to include all relevant types, for testing\n * // purposes:\n * math.typeOf(3.5) // returns 'number'\n * math.typeOf(math.complex('2-4i')) // returns 'Complex'\n * math.typeOf(math.unit('45 deg')) // returns 'Unit'\n * math.typeOf('hello world') // returns 'string'\n * math.typeOf(null) // returns 'null'\n * math.typeOf(true) // returns 'boolean'\n * math.typeOf([1, 2, 3]) // returns 'Array'\n * math.typeOf(new Date()) // returns 'Date'\n * math.typeOf(function () {}) // returns 'function'\n * math.typeOf({a: 2, b: 3}) // returns 'Object'\n * math.typeOf(/a regexp/) // returns 'RegExp'\n * math.typeOf(undefined) // returns 'undefined'\n * math.typeOf(math.bignumber('23e99')) // returns 'BigNumber'\n * math.typeOf(math.chain(2)) // returns 'Chain'\n * math.typeOf(math.fraction(1, 3)) // returns 'Fraction'\n * math.typeOf(math.help('sqrt')) // returns 'Help'\n * math.typeOf(math.index(1, 3)) // returns 'Index'\n * math.typeOf(math.matrix([[1],[3]])) // returns 'DenseMatrix'\n * math.typeOf(math.matrix([],'sparse')) // returns 'SparseMatrix'\n * math.typeOf(new math.Range(0, 10)) // returns 'Range'\n * math.typeOf(math.evaluate('a=2\\na')) // returns 'ResultSet'\n * math.typeOf(math.parse('A[2]')) // returns 'AccessorNode'\n * math.typeOf(math.parse('[1,2,3]')) // returns 'ArrayNode'\n * math.typeOf(math.parse('x=2')) // returns 'AssignmentNode'\n * math.typeOf(math.parse('a=2; b=3')) // returns 'BlockNode'\n * math.typeOf(math.parse('x<0?-1:1')) // returns 'ConditionalNode'\n * math.typeOf(math.parse('2.3')) // returns 'ConstantNode'\n * math.typeOf(math.parse('f(x)=x^2')) // returns 'FunctionAssignmentNode'\n * math.typeOf(math.parse('sqrt(4)')) // returns 'FunctionNode'\n * math.typeOf(math.parse('A[2]').index) // returns 'IndexNode'\n * math.typeOf(math.parse('{a:2}')) // returns 'ObjectNode'\n * math.typeOf(math.parse('(2+3)')) // returns 'ParenthesisNode'\n * math.typeOf(math.parse('1:10')) // returns 'RangeNode'\n * math.typeOf(math.parse('a != )'\n * @param {number | number[]} actual The actual size\n * @param {number | number[]} expected The expected size\n * @param {string} [relation='!='] Optional relation between actual\n * and expected size: '!=', '<', etc.\n * @extends RangeError\n */\nexport function DimensionError(actual, expected, relation) {\n if (!(this instanceof DimensionError)) {\n throw new SyntaxError('Constructor must be called with the new operator');\n }\n this.actual = actual;\n this.expected = expected;\n this.relation = relation;\n this.message = 'Dimension mismatch (' + (Array.isArray(actual) ? '[' + actual.join(', ') + ']' : actual) + ' ' + (this.relation || '!=') + ' ' + (Array.isArray(expected) ? '[' + expected.join(', ') + ']' : expected) + ')';\n this.stack = new Error().stack;\n}\nDimensionError.prototype = new RangeError();\nDimensionError.prototype.constructor = RangeError;\nDimensionError.prototype.name = 'DimensionError';\nDimensionError.prototype.isDimensionError = true;","import { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nimport { unaryPlusNumber } from '../../plain/number/index.js';\nvar name = 'unaryPlus';\nvar dependencies = ['typed', 'config', 'BigNumber'];\nexport var createUnaryPlus = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n BigNumber\n } = _ref;\n /**\n * Unary plus operation.\n * Boolean values and strings will be converted to a number, numeric values will be returned as is.\n *\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.unaryPlus(x)\n *\n * Examples:\n *\n * math.unaryPlus(3.5) // returns 3.5\n * math.unaryPlus(1) // returns 1\n *\n * See also:\n *\n * unaryMinus, add, subtract\n *\n * @param {number | BigNumber | Fraction | string | Complex | Unit | Array | Matrix} x\n * Input value\n * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix}\n * Returns the input value when numeric, converts to a number when input is non-numeric.\n */\n return typed(name, {\n number: unaryPlusNumber,\n Complex: function Complex(x) {\n return x; // complex numbers are immutable\n },\n\n BigNumber: function BigNumber(x) {\n return x; // bignumbers are immutable\n },\n\n Fraction: function Fraction(x) {\n return x; // fractions are immutable\n },\n\n Unit: function Unit(x) {\n return x.clone();\n },\n // deep map collection, skip zeros since unaryPlus(0) = 0\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self, true)),\n 'boolean | string': function booleanString(x) {\n // convert to a number or bignumber\n return config.number === 'BigNumber' ? new BigNumber(+x) : +x;\n }\n });\n});","import { isInteger } from '../../utils/number.js';\nvar n1 = 'number';\nvar n2 = 'number, number';\nexport function bitAndNumber(x, y) {\n if (!isInteger(x) || !isInteger(y)) {\n throw new Error('Integers expected in function bitAnd');\n }\n return x & y;\n}\nbitAndNumber.signature = n2;\nexport function bitNotNumber(x) {\n if (!isInteger(x)) {\n throw new Error('Integer expected in function bitNot');\n }\n return ~x;\n}\nbitNotNumber.signature = n1;\nexport function bitOrNumber(x, y) {\n if (!isInteger(x) || !isInteger(y)) {\n throw new Error('Integers expected in function bitOr');\n }\n return x | y;\n}\nbitOrNumber.signature = n2;\nexport function bitXorNumber(x, y) {\n if (!isInteger(x) || !isInteger(y)) {\n throw new Error('Integers expected in function bitXor');\n }\n return x ^ y;\n}\nbitXorNumber.signature = n2;\nexport function leftShiftNumber(x, y) {\n if (!isInteger(x) || !isInteger(y)) {\n throw new Error('Integers expected in function leftShift');\n }\n return x << y;\n}\nleftShiftNumber.signature = n2;\nexport function rightArithShiftNumber(x, y) {\n if (!isInteger(x) || !isInteger(y)) {\n throw new Error('Integers expected in function rightArithShift');\n }\n return x >> y;\n}\nrightArithShiftNumber.signature = n2;\nexport function rightLogShiftNumber(x, y) {\n if (!isInteger(x) || !isInteger(y)) {\n throw new Error('Integers expected in function rightLogShift');\n }\n return x >>> y;\n}\nrightLogShiftNumber.signature = n2;","'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/**\n * `Filterable` represents data structures which can be _partitioned_/_filtered_.\n *\n * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Filterable.purs\n *\n * @since 2.0.0\n */\nimport { compact, separate } from './Compactable';\nimport { pipe } from './function';\nimport { getFunctorComposition } from './Functor';\nimport { getLeft, getRight } from './Option';\nimport { not } from './Predicate';\nimport { separated } from './Separated';\nexport function filter(F, G) {\n return function (predicate) { return function (fga) { return F.map(fga, function (ga) { return G.filter(ga, predicate); }); }; };\n}\nexport function filterMap(F, G) {\n return function (f) { return function (fga) { return F.map(fga, function (ga) { return G.filterMap(ga, f); }); }; };\n}\nexport function partition(F, G) {\n var _filter = filter(F, G);\n return function (predicate) {\n var left = _filter(not(predicate));\n var right = _filter(predicate);\n return function (fgb) { return separated(left(fgb), right(fgb)); };\n };\n}\nexport function partitionMap(F, G) {\n var _filterMap = filterMap(F, G);\n return function (f) { return function (fga) {\n return separated(pipe(fga, _filterMap(function (a) { return getLeft(f(a)); })), pipe(fga, _filterMap(function (a) { return getRight(f(a)); })));\n }; };\n}\n/** @deprecated */\nexport function getFilterableComposition(F, G) {\n var map = getFunctorComposition(F, G).map;\n var _compact = compact(F, G);\n var _separate = separate(F, G, G);\n var _filter = filter(F, G);\n var _filterMap = filterMap(F, G);\n var _partition = partition(F, G);\n var _partitionMap = partitionMap(F, G);\n return {\n map: map,\n compact: _compact,\n separate: _separate,\n filter: function (fga, f) { return pipe(fga, _filter(f)); },\n filterMap: function (fga, f) { return pipe(fga, _filterMap(f)); },\n partition: function (fga, p) { return pipe(fga, _partition(p)); },\n partitionMap: function (fga, f) { return pipe(fga, _partitionMap(f)); }\n };\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = require('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n","/*\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","module.exports = require('./lib/_stream_duplex.js');\n","import { factory } from '../../utils/factory.js';\nvar name = 'polynomialRoot';\nvar dependencies = ['typed', 'isZero', 'equalScalar', 'add', 'subtract', 'multiply', 'divide', 'sqrt', 'unaryMinus', 'cbrt', 'typeOf', 'im', 're'];\nexport var createPolynomialRoot = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n isZero,\n equalScalar,\n add,\n subtract,\n multiply,\n divide,\n sqrt,\n unaryMinus,\n cbrt,\n typeOf,\n im,\n re\n } = _ref;\n /**\n * Finds the numerical values of the distinct roots of a polynomial with real or complex coefficients.\n * Currently operates only on linear, quadratic, and cubic polynomials using the standard\n * formulas for the roots.\n *\n * Syntax:\n *\n * math.polynomialRoot(constant, linearCoeff, quadraticCoeff, cubicCoeff)\n *\n * Examples:\n * // linear\n * math.polynomialRoot(6, 3) // [-2]\n * math.polynomialRoot(math.complex(6,3), 3) // [-2 - i]\n * math.polynomialRoot(math.complex(6,3), math.complex(2,1)) // [-3 + 0i]\n * // quadratic\n * math.polynomialRoot(2, -3, 1) // [2, 1]\n * math.polynomialRoot(8, 8, 2) // [-2]\n * math.polynomialRoot(-2, 0, 1) // [1.4142135623730951, -1.4142135623730951]\n * math.polynomialRoot(2, -2, 1) // [1 + i, 1 - i]\n * math.polynomialRoot(math.complex(1,3), math.complex(-3, -2), 1) // [2 + i, 1 + i]\n * // cubic\n * math.polynomialRoot(-6, 11, -6, 1) // [1, 3, 2]\n * math.polynomialRoot(-8, 0, 0, 1) // [-1 - 1.7320508075688774i, 2, -1 + 1.7320508075688774i]\n * math.polynomialRoot(0, 8, 8, 2) // [0, -2]\n * math.polynomialRoot(1, 1, 1, 1) // [-1 + 0i, 0 - i, 0 + i]\n *\n * See also:\n * cbrt, sqrt\n *\n * @param {... number | Complex} coeffs\n * The coefficients of the polynomial, starting with with the constant coefficent, followed\n * by the linear coefficient and subsequent coefficients of increasing powers.\n * @return {Array} The distinct roots of the polynomial\n */\n\n return typed(name, {\n 'number|Complex, ...number|Complex': (constant, restCoeffs) => {\n var coeffs = [constant, ...restCoeffs];\n while (coeffs.length > 0 && isZero(coeffs[coeffs.length - 1])) {\n coeffs.pop();\n }\n if (coeffs.length < 2) {\n throw new RangeError(\"Polynomial [\".concat(constant, \", \").concat(restCoeffs, \"] must have a non-zero non-constant coefficient\"));\n }\n switch (coeffs.length) {\n case 2:\n // linear\n return [unaryMinus(divide(coeffs[0], coeffs[1]))];\n case 3:\n {\n // quadratic\n var [c, b, a] = coeffs;\n var denom = multiply(2, a);\n var d1 = multiply(b, b);\n var d2 = multiply(4, a, c);\n if (equalScalar(d1, d2)) return [divide(unaryMinus(b), denom)];\n var discriminant = sqrt(subtract(d1, d2));\n return [divide(subtract(discriminant, b), denom), divide(subtract(unaryMinus(discriminant), b), denom)];\n }\n case 4:\n {\n // cubic, cf. https://en.wikipedia.org/wiki/Cubic_equation\n var [d, _c, _b, _a] = coeffs;\n var _denom = unaryMinus(multiply(3, _a));\n var D0_1 = multiply(_b, _b);\n var D0_2 = multiply(3, _a, _c);\n var D1_1 = add(multiply(2, _b, _b, _b), multiply(27, _a, _a, d));\n var D1_2 = multiply(9, _a, _b, _c);\n if (equalScalar(D0_1, D0_2) && equalScalar(D1_1, D1_2)) {\n return [divide(_b, _denom)];\n }\n var Delta0 = subtract(D0_1, D0_2);\n var Delta1 = subtract(D1_1, D1_2);\n var discriminant1 = add(multiply(18, _a, _b, _c, d), multiply(_b, _b, _c, _c));\n var discriminant2 = add(multiply(4, _b, _b, _b, d), multiply(4, _a, _c, _c, _c), multiply(27, _a, _a, d, d));\n if (equalScalar(discriminant1, discriminant2)) {\n return [divide(subtract(multiply(4, _a, _b, _c), add(multiply(9, _a, _a, d), multiply(_b, _b, _b))), multiply(_a, Delta0)),\n // simple root\n divide(subtract(multiply(9, _a, d), multiply(_b, _c)), multiply(2, Delta0)) // double root\n ];\n }\n // OK, we have three distinct roots\n var Ccubed;\n if (equalScalar(D0_1, D0_2)) {\n Ccubed = Delta1;\n } else {\n Ccubed = divide(add(Delta1, sqrt(subtract(multiply(Delta1, Delta1), multiply(4, Delta0, Delta0, Delta0)))), 2);\n }\n var allRoots = true;\n var rawRoots = cbrt(Ccubed, allRoots).toArray().map(C => divide(add(_b, C, divide(Delta0, C)), _denom));\n return rawRoots.map(r => {\n if (typeOf(r) === 'Complex' && equalScalar(re(r), re(r) + im(r))) {\n return re(r);\n }\n return r;\n });\n }\n default:\n throw new RangeError(\"only implemented for cubic or lower-order polynomials, not \".concat(coeffs));\n }\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// 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;\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;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // 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 if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\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 };\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 if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\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}\nfunction prefinish() {\n var _this = this;\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}\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 cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\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 if (ts.writechunk !== null && !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};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // 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 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}","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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { dual } from './function';\n// -------------------------------------------------------------------------------------\n// Option\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var isNone = function (fa) { return fa._tag === 'None'; };\n/** @internal */\nexport var isSome = function (fa) { return fa._tag === 'Some'; };\n/** @internal */\nexport var none = { _tag: 'None' };\n/** @internal */\nexport var some = function (a) { return ({ _tag: 'Some', value: a }); };\n// -------------------------------------------------------------------------------------\n// Either\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var isLeft = function (ma) { return ma._tag === 'Left'; };\n/** @internal */\nexport var isRight = function (ma) { return ma._tag === 'Right'; };\n/** @internal */\nexport var left = function (e) { return ({ _tag: 'Left', left: e }); };\n/** @internal */\nexport var right = function (a) { return ({ _tag: 'Right', right: a }); };\n// -------------------------------------------------------------------------------------\n// ReadonlyNonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var singleton = function (a) { return [a]; };\n/** @internal */\nexport var isNonEmpty = function (as) { return as.length > 0; };\n/** @internal */\nexport var head = function (as) { return as[0]; };\n/** @internal */\nexport var tail = function (as) { return as.slice(1); };\n// -------------------------------------------------------------------------------------\n// empty\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var emptyReadonlyArray = [];\n/** @internal */\nexport var emptyRecord = {};\n// -------------------------------------------------------------------------------------\n// Record\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var has = Object.prototype.hasOwnProperty;\n// -------------------------------------------------------------------------------------\n// NonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); };\n/** @internal */\nexport var liftNullable = function (F) {\n return function (f, onNullable) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n var o = f.apply(void 0, a);\n return F.fromEither(o == null ? left(onNullable.apply(void 0, a)) : right(o));\n };\n };\n};\n/** @internal */\nexport var liftOption = function (F) {\n return function (f, onNone) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n var o = f.apply(void 0, a);\n return F.fromEither(isNone(o) ? left(onNone.apply(void 0, a)) : right(o.value));\n };\n };\n};\n/** @internal */\nexport var flatMapNullable = function (F, M) {\n return /*#__PURE__*/ dual(3, function (self, f, onNullable) {\n return M.flatMap(self, liftNullable(F)(f, onNullable));\n });\n};\n/** @internal */\nexport var flatMapOption = function (F, M) {\n return /*#__PURE__*/ dual(3, function (self, f, onNone) { return M.flatMap(self, liftOption(F)(f, onNone)); });\n};\n/** @internal */\nexport var flatMapEither = function (F, M) {\n return /*#__PURE__*/ dual(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromEither(f(a)); });\n });\n};\n/** @internal */\nexport var flatMapIO = function (F, M) {\n return /*#__PURE__*/ dual(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromIO(f(a)); });\n });\n};\n/** @internal */\nexport var flatMapTask = function (F, M) {\n return /*#__PURE__*/ dual(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromTask(f(a)); });\n });\n};\n/** @internal */\nexport var flatMapReader = function (F, M) {\n return /*#__PURE__*/ dual(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromReader(f(a)); });\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","import { deepMap } from '../../utils/collection.js';\nimport { factory } from '../../utils/factory.js';\nimport { notNumber } from '../../plain/number/index.js';\nvar name = 'not';\nvar dependencies = ['typed'];\nexport var createNot = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Logical `not`. Flips boolean value of a given parameter.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.not(x)\n *\n * Examples:\n *\n * math.not(2) // returns false\n * math.not(0) // returns true\n * math.not(true) // returns false\n *\n * a = [2, -7, 0]\n * math.not(a) // returns [false, false, true]\n *\n * See also:\n *\n * and, or, xor\n *\n * @param {number | BigNumber | Complex | Unit | Array | Matrix} x First value to check\n * @return {boolean | Array | Matrix}\n * Returns true when input is a zero or empty value.\n */\n return typed(name, {\n 'null | undefined': () => true,\n number: notNumber,\n Complex: function Complex(x) {\n return x.re === 0 && x.im === 0;\n },\n BigNumber: function BigNumber(x) {\n return x.isZero() || x.isNaN();\n },\n Unit: typed.referToSelf(self => x => typed.find(self, x.valueType())(x.value)),\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))\n });\n});","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","import { factory } from '../../utils/factory.js';\nvar name = 'hex';\nvar dependencies = ['typed', 'format'];\n\n/**\n * Format a number as hexadecimal.\n *\n * Syntax:\n *\n * math.hex(value)\n *\n * Examples:\n *\n * math.hex(240) // returns \"0xF0\"\n *\n * See also:\n *\n * oct\n * bin\n *\n * @param {number} value Value to be stringified\n * @param {number} wordSize Optional word size (see `format`)\n * @return {string} The formatted value\n */\nexport var createHex = factory(name, dependencies, _ref => {\n var {\n typed,\n format\n } = _ref;\n return typed(name, {\n 'number | BigNumber': function numberBigNumber(n) {\n return format(n, {\n notation: 'hex'\n });\n },\n 'number | BigNumber, number': function numberBigNumberNumber(n, wordSize) {\n return format(n, {\n notation: 'hex',\n wordSize\n });\n }\n });\n});","import { factory } from '../../utils/factory.js';\nimport { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nvar name = 'equal';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix', 'concat'];\nexport var createEqual = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo07xSSf = createMatAlgo07xSSf({\n typed,\n DenseMatrix\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Test whether two values are equal.\n *\n * The function tests whether the relative difference between x and y is\n * smaller than the configured epsilon. The function cannot be used to\n * compare values smaller than approximately 2.22e-16.\n *\n * For matrices, the function is evaluated element wise.\n * In case of complex numbers, x.re must equal y.re, and x.im must equal y.im.\n *\n * Values `null` and `undefined` are compared strictly, thus `null` is only\n * equal to `null` and nothing else, and `undefined` is only equal to\n * `undefined` and nothing else. Strings are compared by their numerical value.\n *\n * Syntax:\n *\n * math.equal(x, y)\n *\n * Examples:\n *\n * math.equal(2 + 2, 3) // returns false\n * math.equal(2 + 2, 4) // returns true\n *\n * const a = math.unit('50 cm')\n * const b = math.unit('5 m')\n * math.equal(a, b) // returns true\n *\n * const c = [2, 5, 1]\n * const d = [2, 7, 1]\n *\n * math.equal(c, d) // returns [true, false, true]\n * math.deepEqual(c, d) // returns false\n *\n * math.equal(\"1000\", \"1e3\") // returns true\n * math.equal(0, null) // returns false\n *\n * See also:\n *\n * unequal, smaller, smallerEq, larger, largerEq, compare, deepEqual, equalText\n *\n * @param {number | BigNumber | boolean | Complex | Unit | string | Array | Matrix} x First value to compare\n * @param {number | BigNumber | boolean | Complex | Unit | string | Array | Matrix} y Second value to compare\n * @return {boolean | Array | Matrix} Returns true when the compared values are equal, else returns false\n */\n return typed(name, createEqualNumber({\n typed,\n equalScalar\n }), matrixAlgorithmSuite({\n elop: equalScalar,\n SS: matAlgo07xSSf,\n DS: matAlgo03xDSf,\n Ss: matAlgo12xSfs\n }));\n});\nexport var createEqualNumber = factory(name, ['typed', 'equalScalar'], _ref2 => {\n var {\n typed,\n equalScalar\n } = _ref2;\n return typed(name, {\n 'any, any': function anyAny(x, y) {\n // strict equality for null and undefined?\n if (x === null) {\n return y === null;\n }\n if (y === null) {\n return x === null;\n }\n if (x === undefined) {\n return y === undefined;\n }\n if (y === undefined) {\n return x === undefined;\n }\n return equalScalar(x, y);\n }\n });\n});","import { factory } from '../../utils/factory.js';\nimport { getArrayDataType } from '../../utils/array.js';\nimport { typeOf } from '../../utils/is.js';\nvar name = 'getMatrixDataType';\nvar dependencies = ['typed'];\nexport var createGetMatrixDataType = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Find the data type of all elements in a matrix or array,\n * for example 'number' if all items are a number and 'Complex' if all values\n * are complex numbers.\n * If a matrix contains more than one data type, it will return 'mixed'.\n *\n * Syntax:\n *\n * math.getMatrixDataType(x)\n *\n * Examples:\n *\n * const x = [ [1, 2, 3], [4, 5, 6] ]\n * const mixedX = [ [1, true], [2, 3] ]\n * const fractionX = [ [math.fraction(1, 3)], [math.fraction(1, 3)] ]\n * const unitX = [ [math.unit('5cm')], [math.unit('5cm')] ]\n * const bigNumberX = [ [math.bignumber(1)], [math.bignumber(0)] ]\n * const sparse = math.sparse(x)\n * const dense = math.matrix(x)\n * math.getMatrixDataType(x) // returns 'number'\n * math.getMatrixDataType(sparse) // returns 'number'\n * math.getMatrixDataType(dense) // returns 'number'\n * math.getMatrixDataType(mixedX) // returns 'mixed'\n * math.getMatrixDataType(fractionX) // returns 'Fraction'\n * math.getMatrixDataType(unitX) // returns 'Unit'\n * math.getMatrixDataType(bigNumberX) // return 'BigNumber'\n *\n * See also:\n * SparseMatrix, DenseMatrix\n *\n * @param {...Matrix | Array} x The Matrix with values.\n *\n * @return {string} A string representation of the matrix type\n */\n return typed(name, {\n Array: function Array(x) {\n return getArrayDataType(x, typeOf);\n },\n Matrix: function Matrix(x) {\n return x.getDataType();\n }\n });\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","import { factory } from '../../utils/factory.js';\nimport { expm1Number } from '../../plain/number/index.js';\nvar name = 'expm1';\nvar dependencies = ['typed', 'Complex'];\nexport var createExpm1 = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n Complex: _Complex\n } = _ref;\n /**\n * Calculate the value of subtracting 1 from the exponential value.\n * This function is more accurate than `math.exp(x)-1` when `x` is near 0\n * To avoid ambiguity with the matrix exponential `expm`, this function\n * does not operate on matrices; if you wish to apply it elementwise, see\n * the examples.\n *\n * Syntax:\n *\n * math.expm1(x)\n *\n * Examples:\n *\n * math.expm1(2) // returns number 6.38905609893065\n * math.pow(math.e, 2) - 1 // returns number 6.3890560989306495\n * math.expm1(1e-8) // returns number 1.0000000050000001e-8\n * math.exp(1e-8) - 1 // returns number 9.9999999392253e-9\n * math.log(math.expm1(2) + 1) // returns number 2\n *\n * math.map([1, 2, 3], math.expm1)\n * // returns Array [\n * // 1.718281828459045,\n * // 6.3890560989306495,\n * // 19.085536923187668\n * // ]\n *\n * See also:\n *\n * exp, expm, log, pow\n *\n * @param {number | BigNumber | Complex} x The number to exponentiate\n * @return {number | BigNumber | Complex} Exponential of `x`, minus one\n */\n return typed(name, {\n number: expm1Number,\n Complex: function Complex(x) {\n var r = Math.exp(x.re);\n return new _Complex(r * Math.cos(x.im) - 1, r * Math.sin(x.im));\n },\n BigNumber: function BigNumber(x) {\n return x.exp().minus(1);\n }\n });\n});","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","/*global module*/\nvar Buffer = require('buffer').Buffer;\n\nmodule.exports = function toString(obj) {\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number' || Buffer.isBuffer(obj))\n return obj.toString();\n return JSON.stringify(obj);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n // `DOMException.prototype.code` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n // `DOMException.prototype.message` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n // `DOMException.prototype.name` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\n// `DOMException` constants\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","var JsonWebTokenError = require('./lib/JsonWebTokenError');\nvar NotBeforeError = require('./lib/NotBeforeError');\nvar TokenExpiredError = require('./lib/TokenExpiredError');\nvar decode = require('./decode');\nvar timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\n\nvar PUB_KEY_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512'];\nvar RSA_KEY_ALGS = ['RS256', 'RS384', 'RS512'];\nvar HS_ALGS = ['HS256', 'HS384', 'HS512'];\n\nif (PS_SUPPORTED) {\n PUB_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n RSA_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nmodule.exports = function (jwtString, secretOrPublicKey, options, callback) {\n if ((typeof options === 'function') && !callback) {\n callback = options;\n options = {};\n }\n\n if (!options) {\n options = {};\n }\n\n //clone this object since we are going to mutate it.\n options = Object.assign({}, options);\n\n var done;\n\n if (callback) {\n done = callback;\n } else {\n done = function(err, data) {\n if (err) throw err;\n return data;\n };\n }\n\n if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') {\n return done(new JsonWebTokenError('clockTimestamp must be a number'));\n }\n\n if (options.nonce !== undefined && (typeof options.nonce !== 'string' || options.nonce.trim() === '')) {\n return done(new JsonWebTokenError('nonce must be a non-empty string'));\n }\n\n var clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000);\n\n if (!jwtString){\n return done(new JsonWebTokenError('jwt must be provided'));\n }\n\n if (typeof jwtString !== 'string') {\n return done(new JsonWebTokenError('jwt must be a string'));\n }\n\n var parts = jwtString.split('.');\n\n if (parts.length !== 3){\n return done(new JsonWebTokenError('jwt malformed'));\n }\n\n var decodedToken;\n\n try {\n decodedToken = decode(jwtString, { complete: true });\n } catch(err) {\n return done(err);\n }\n\n if (!decodedToken) {\n return done(new JsonWebTokenError('invalid token'));\n }\n\n var header = decodedToken.header;\n var getSecret;\n\n if(typeof secretOrPublicKey === 'function') {\n if(!callback) {\n return done(new JsonWebTokenError('verify must be called asynchronous if secret or public key is provided as a callback'));\n }\n\n getSecret = secretOrPublicKey;\n }\n else {\n getSecret = function(header, secretCallback) {\n return secretCallback(null, secretOrPublicKey);\n };\n }\n\n return getSecret(header, function(err, secretOrPublicKey) {\n if(err) {\n return done(new JsonWebTokenError('error in secret or public key callback: ' + err.message));\n }\n\n var hasSignature = parts[2].trim() !== '';\n\n if (!hasSignature && secretOrPublicKey){\n return done(new JsonWebTokenError('jwt signature is required'));\n }\n\n if (hasSignature && !secretOrPublicKey) {\n return done(new JsonWebTokenError('secret or public key must be provided'));\n }\n\n if (!hasSignature && !options.algorithms) {\n options.algorithms = ['none'];\n }\n\n if (!options.algorithms) {\n options.algorithms = ~secretOrPublicKey.toString().indexOf('BEGIN CERTIFICATE') ||\n ~secretOrPublicKey.toString().indexOf('BEGIN PUBLIC KEY') ? PUB_KEY_ALGS :\n ~secretOrPublicKey.toString().indexOf('BEGIN RSA PUBLIC KEY') ? RSA_KEY_ALGS : HS_ALGS;\n\n }\n\n if (!~options.algorithms.indexOf(decodedToken.header.alg)) {\n return done(new JsonWebTokenError('invalid algorithm'));\n }\n\n var valid;\n\n try {\n valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey);\n } catch (e) {\n return done(e);\n }\n\n if (!valid) {\n return done(new JsonWebTokenError('invalid signature'));\n }\n\n var payload = decodedToken.payload;\n\n if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) {\n if (typeof payload.nbf !== 'number') {\n return done(new JsonWebTokenError('invalid nbf value'));\n }\n if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) {\n return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000)));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) {\n if (typeof payload.exp !== 'number') {\n return done(new JsonWebTokenError('invalid exp value'));\n }\n if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000)));\n }\n }\n\n if (options.audience) {\n var audiences = Array.isArray(options.audience) ? options.audience : [options.audience];\n var target = Array.isArray(payload.aud) ? payload.aud : [payload.aud];\n\n var match = target.some(function (targetAudience) {\n return audiences.some(function (audience) {\n return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience;\n });\n });\n\n if (!match) {\n return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or ')));\n }\n }\n\n if (options.issuer) {\n var invalid_issuer =\n (typeof options.issuer === 'string' && payload.iss !== options.issuer) ||\n (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1);\n\n if (invalid_issuer) {\n return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer));\n }\n }\n\n if (options.subject) {\n if (payload.sub !== options.subject) {\n return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject));\n }\n }\n\n if (options.jwtid) {\n if (payload.jti !== options.jwtid) {\n return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid));\n }\n }\n\n if (options.nonce) {\n if (payload.nonce !== options.nonce) {\n return done(new JsonWebTokenError('jwt nonce invalid. expected: ' + options.nonce));\n }\n }\n\n if (options.maxAge) {\n if (typeof payload.iat !== 'number') {\n return done(new JsonWebTokenError('iat required when maxAge is specified'));\n }\n\n var maxAgeTimestamp = timespan(options.maxAge, payload.iat);\n if (typeof maxAgeTimestamp === 'undefined') {\n return done(new JsonWebTokenError('\"maxAge\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000)));\n }\n }\n\n if (options.complete === true) {\n var signature = decodedToken.signature;\n\n return done(null, {\n header: header,\n payload: payload,\n signature: signature\n });\n }\n\n return done(null, payload);\n });\n};\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banco.vue?vue&type=style&index=0&id=2996c4f4&prod&lang=scss\"","import { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport * as chainable from './Chain';\nimport { chainEitherK as chainEitherK_, fromEitherK as fromEitherK_, tapEither as tapEither_ } from './FromEither';\nimport { constNull, constUndefined, dual, flow, identity, pipe } from './function';\nimport { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\nimport { not } from './Predicate';\nimport { first, last } from './Semigroup';\nimport { separated } from './Separated';\nimport { wiltDefault, witherDefault } from './Witherable';\nimport { guard as guard_ } from './Zero';\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var none = _.none;\n/**\n * Constructs a `Some`. Represents an optional value that exists.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var some = _.some;\nexport function fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? some(a) : none); };\n}\n/**\n * Returns the `Left` value of an `Either` if possible.\n *\n * @example\n * import { getLeft, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getLeft(right(1)), none)\n * assert.deepStrictEqual(getLeft(left('a')), some('a'))\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var getLeft = function (ma) { return (ma._tag === 'Right' ? none : some(ma.left)); };\n/**\n * Returns the `Right` value of an `Either` if possible.\n *\n * @example\n * import { getRight, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getRight(right(1)), some(1))\n * assert.deepStrictEqual(getRight(left('a')), none)\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var getRight = function (ma) { return (ma._tag === 'Left' ? none : some(ma.right)); };\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\nvar _ap = function (fab, fa) { return pipe(fab, ap(fa)); };\nvar _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = foldMap(M);\n return function (fa, f) { return pipe(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };\nvar _traverse = function (F) {\n var traverseF = traverse(F);\n return function (ta, f) { return pipe(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return pipe(fa, alt(that)); };\nvar _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return pipe(wa, extend(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return pipe(fa, partition(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Option';\n/**\n * @category instances\n * @since 2.0.0\n */\nexport var getShow = function (S) { return ({\n show: function (ma) { return (isNone(ma) ? 'none' : \"some(\".concat(S.show(ma.value), \")\")); }\n}); };\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals(none, none), true)\n * assert.strictEqual(E.equals(none, some(1)), false)\n * assert.strictEqual(E.equals(some(1), none), false)\n * assert.strictEqual(E.equals(some(1), some(2)), false)\n * assert.strictEqual(E.equals(some(1), some(1)), true)\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getEq = function (E) { return ({\n equals: function (x, y) { return x === y || (isNone(x) ? isNone(y) : isNone(y) ? false : E.equals(x.value, y.value)); }\n}); };\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const O = getOrd(N.Ord)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getOrd = function (O) { return ({\n equals: getEq(O).equals,\n compare: function (x, y) { return (x === y ? 0 : isSome(x) ? (isSome(y) ? O.compare(x.value, y.value) : 1) : -1); }\n}); };\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/Option'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const M = getMonoid(SemigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getMonoid = function (S) { return ({\n concat: function (x, y) { return (isNone(x) ? y : isNone(y) ? x : some(S.concat(x.value, y.value))); },\n empty: none\n}); };\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport var map = function (f) { return function (fa) {\n return isNone(fa) ? none : some(f(fa.value));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Maps the `Some` value of this `Option` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var as = dual(2, as_(Functor));\n/**\n * Maps the `Some` value of this `Option` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var asUnit = asUnit_(Functor);\n/**\n * @category constructors\n * @since 2.7.0\n */\nexport var of = some;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @since 2.0.0\n */\nexport var ap = function (fa) { return function (fab) {\n return isNone(fab) ? none : isNone(fa) ? none : some(fab.value(fa.value));\n}; };\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Applicative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { return (isNone(ma) ? none : f(ma.value)); });\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap\n};\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var reduce = function (b, f) { return function (fa) {\n return isNone(fa) ? b : f(b, fa.value);\n}; };\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var foldMap = function (M) { return function (f) { return function (fa) {\n return isNone(fa) ? M.empty : f(fa.value);\n}; }; };\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var reduceRight = function (b, f) { return function (fa) {\n return isNone(fa) ? b : f(fa.value, b);\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`.\n *\n * @param self - The first `Option` to be checked.\n * @param that - The `Option` to return if `self` is `None`.\n *\n * @example\n * import * as O from \"fp-ts/Option\"\n *\n * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none)\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1))\n * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b'))\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1))\n *\n * @category error handling\n * @since 2.16.0\n */\nexport var orElse = dual(2, function (self, that) { return (isNone(self) ? that() : self); });\n/**\n * Alias of `orElse`.\n *\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category legacy\n * @since 2.9.0\n */\nexport var altW = orElse;\n/**\n * Alias of `orElse`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var alt = orElse;\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.7.0\n */\nexport var zero = function () { return none; };\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var Zero = {\n URI: URI,\n zero: zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexport var guard = /*#__PURE__*/ guard_(Zero, Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alternative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n alt: _alt,\n zero: zero\n};\n/**\n * @since 2.0.0\n */\nexport var extend = function (f) { return function (wa) {\n return isNone(wa) ? none : some(f(wa));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var compact = /*#__PURE__*/ flatMap(identity);\nvar defaultSeparated = /*#__PURE__*/ separated(none, none);\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var separate = function (ma) {\n return isNone(ma) ? defaultSeparated : separated(getLeft(ma.value), getRight(ma.value));\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var filter = function (predicate) {\n return function (fa) {\n return isNone(fa) ? none : predicate(fa.value) ? fa : none;\n };\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var filterMap = function (f) { return function (fa) {\n return isNone(fa) ? none : f(fa.value);\n}; };\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var partition = function (predicate) {\n return function (fa) {\n return separated(_filter(fa, not(predicate)), _filter(fa, predicate));\n };\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var partitionMap = function (f) { return flow(map(f), separate); };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Filterable = {\n URI: URI,\n map: _map,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nexport var traverse = function (F) {\n return function (f) {\n return function (ta) {\n return isNone(ta) ? F.of(none) : F.map(f(ta.value), some);\n };\n };\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nexport var sequence = function (F) {\n return function (ta) {\n return isNone(ta) ? F.of(none) : F.map(ta.value, some);\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\nvar _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable);\nvar _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable);\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Witherable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @since 2.7.0\n */\nexport var throwError = function () { return none; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap,\n throwError: throwError\n};\n/**\n * Transforms an `Either` to an `Option` discarding the error.\n *\n * Alias of [getRight](#getright)\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromEither = getRight;\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise.\n *\n * @example\n * import { some, none, isSome } from 'fp-ts/Option'\n *\n * assert.strictEqual(isSome(some(1)), true)\n * assert.strictEqual(isSome(none), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isSome = _.isSome;\n/**\n * Returns `true` if the option is `None`, `false` otherwise.\n *\n * @example\n * import { some, none, isNone } from 'fp-ts/Option'\n *\n * assert.strictEqual(isNone(some(1)), false)\n * assert.strictEqual(isNone(none), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isNone = function (fa) { return fa._tag === 'None'; };\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchW = function (onNone, onSome) {\n return function (ma) {\n return isNone(ma) ? onNone() : onSome(ma.value);\n };\n};\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var foldW = matchW;\n/**\n * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is\n * returned, otherwise the function is applied to the value inside the `Some` and the result is returned.\n *\n * @example\n * import { some, none, match } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a some containing 1'\n * )\n *\n * assert.strictEqual(\n * pipe(\n * none,\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a none'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var match = matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport var fold = match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nexport var getOrElseW = function (onNone) {\n return function (ma) {\n return isNone(ma) ? onNone() : ma.value;\n };\n};\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns the given default value\n *\n * @example\n * import { some, none, getOrElse } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var getOrElse = getOrElseW;\n/**\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(Apply);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexport var flatten = compact;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexport var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n * import * as E from 'fp-ts/Either'\n *\n * const compute = (value: number) => pipe(\n * O.of(value),\n * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')),\n * )\n *\n * assert.deepStrictEqual(compute(1), O.of(1))\n * assert.deepStrictEqual(compute(-42), O.none)\n *\n * @category combinators\n * @since 2.16.0\n */\nexport var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain));\n/**\n * @since 2.0.0\n */\nexport var duplicate = /*#__PURE__*/ extend(identity);\n/**\n * @category lifting\n * @since 2.11.0\n */\nexport var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexport var chainEitherK = \n/*#__PURE__*/ chainEitherK_(FromEither, Chain);\n/**\n * Alias of `tapEither`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexport var chainFirstEitherK = tapEither;\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`.\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromNullable = function (a) { return (a == null ? none : some(a)); };\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a\n * `Some`.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\nexport var tryCatch = function (f) {\n try {\n return some(f());\n }\n catch (e) {\n return none;\n }\n};\n/**\n * Converts a function that may throw to one returning a `Option`.\n *\n * @category interop\n * @since 2.10.0\n */\nexport var tryCatchK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return tryCatch(function () { return f.apply(void 0, a); });\n };\n};\n/**\n * Returns a *smart constructor* from a function that returns a nullable value.\n *\n * @example\n * import { fromNullableK, none, some } from 'fp-ts/Option'\n *\n * const f = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const g = fromNullableK(f)\n *\n * assert.deepStrictEqual(g('1'), some(1))\n * assert.deepStrictEqual(g('a'), none)\n *\n * @category lifting\n * @since 2.9.0\n */\nexport var fromNullableK = function (f) { return flow(f, fromNullable); };\n/**\n * This is `chain` + `fromNullable`, useful when working with optional values.\n *\n * @example\n * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Employee {\n * readonly company?: {\n * readonly address?: {\n * readonly street?: {\n * readonly name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee1.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * some('high street')\n * )\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee2.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * none\n * )\n *\n * @category sequencing\n * @since 2.9.0\n */\nexport var chainNullableK = function (f) {\n return function (ma) {\n return isNone(ma) ? none : fromNullable(f(ma.value));\n };\n};\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `null`.\n *\n * @example\n * import { some, none, toNullable } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toNullable\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toNullable\n * ),\n * null\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var toNullable = /*#__PURE__*/ match(constNull, identity);\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`.\n *\n * @example\n * import { some, none, toUndefined } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toUndefined\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toUndefined\n * ),\n * undefined\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var toUndefined = /*#__PURE__*/ match(constUndefined, identity);\nexport function elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return isNone(ma) ? false : E.equals(a, ma.value);\n };\n}\n/**\n * Returns `true` if the predicate is satisfied by the wrapped value\n *\n * @example\n * import { some, none, exists } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 0)\n * ),\n * true\n * )\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 1)\n * ),\n * false\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * exists(n => n > 0)\n * ),\n * false\n * )\n *\n * @since 2.0.0\n */\nexport var exists = function (predicate) {\n return function (ma) {\n return isNone(ma) ? false : predicate(ma.value);\n };\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ chainable.bind(Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(Apply);\n/**\n * @since 2.11.0\n */\nexport var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var o = f(0, _.head(as));\n if (isNone(o)) {\n return none;\n }\n var out = [o.value];\n for (var i = 1; i < as.length; i++) {\n var o_1 = f(i, as[i]);\n if (isNone(o_1)) {\n return none;\n }\n out.push(o_1.value);\n }\n return some(out);\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndex = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArray = function (f) {\n return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); });\n};\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceArray = \n/*#__PURE__*/ traverseArray(identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chain = flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chainFirst = tap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `Refinement` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function getRefinement(getOption) {\n return function (a) { return isSome(getOption(a)); };\n}\n/**\n * Use [`chainNullableK`](#chainnullablek) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var mapNullable = chainNullableK;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option`\n * (where `O` is from `import O from 'fp-ts/Option'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var option = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: flatMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n zero: zero,\n alt: _alt,\n extend: _extend,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplySemigroup = /*#__PURE__*/ getApplySemigroup_(Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplyMonoid = /*#__PURE__*/ getApplicativeMonoid(Applicative);\n/**\n * Use\n *\n * ```ts\n * import { first } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(first())\n * ```\n *\n * instead.\n *\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getFirstMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getFirstMonoid = function () { return getMonoid(first()); };\n/**\n * Use\n *\n * ```ts\n * import { last } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(last())\n * ```\n *\n * instead.\n *\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getLastMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getLastMonoid = function () { return getMonoid(last()); };\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\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","import { factory } from '../../utils/factory.js';\nexport var createUseMatrixForArrayScalar = /* #__PURE__ */factory('useMatrixForArrayScalar', ['typed', 'matrix'], _ref => {\n var {\n typed,\n matrix\n } = _ref;\n return {\n 'Array, number': typed.referTo('DenseMatrix, number', selfDn => (x, y) => selfDn(matrix(x), y).valueOf()),\n 'Array, BigNumber': typed.referTo('DenseMatrix, BigNumber', selfDB => (x, y) => selfDB(matrix(x), y).valueOf()),\n 'number, Array': typed.referTo('number, DenseMatrix', selfnD => (x, y) => selfnD(x, matrix(y)).valueOf()),\n 'BigNumber, Array': typed.referTo('BigNumber, DenseMatrix', selfBD => (x, y) => selfBD(x, matrix(y)).valueOf())\n };\n});","// A port of an algorithm by Johannes Baagøe , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","/**\n * A `Functor` is a type constructor which supports a mapping operation `map`.\n *\n * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type\n * constructor `f` to represent some computational context.\n *\n * Instances must satisfy the following laws:\n *\n * 1. Identity: `F.map(fa, a => a) <-> fa`\n * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)`\n *\n * @since 2.0.0\n */\nimport { pipe } from './function';\nexport function map(F, G) {\n return function (f) { return function (fa) { return F.map(fa, function (ga) { return G.map(ga, f); }); }; };\n}\nexport function flap(F) {\n return function (a) { return function (fab) { return F.map(fab, function (f) { return f(a); }); }; };\n}\nexport function bindTo(F) {\n return function (name) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return (_a = {}, _a[name] = a, _a);\n }); }; };\n}\nfunction let_(F) {\n return function (name, f) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = f(a), _a));\n }); }; };\n}\nexport { \n/**\n * @since 2.13.0\n */\nlet_ as let };\n/** @deprecated */\nexport function getFunctorComposition(F, G) {\n var _map = map(F, G);\n return {\n map: function (fga, f) { return pipe(fga, _map(f)); }\n };\n}\n/** @internal */\nexport function as(F) {\n return function (self, b) { return F.map(self, function () { return b; }); };\n}\n/** @internal */\nexport function asUnit(F) {\n var asM = as(F);\n return function (self) { return asM(self, undefined); };\n}\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;\n};\n","import { deepForEach } from '../../utils/collection.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'multinomial';\nvar dependencies = ['typed', 'add', 'divide', 'multiply', 'factorial', 'isInteger', 'isPositive'];\nexport var createMultinomial = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n add,\n divide,\n multiply,\n factorial,\n isInteger,\n isPositive\n } = _ref;\n /**\n * Multinomial Coefficients compute the number of ways of picking a1, a2, ..., ai unordered outcomes from `n` possibilities.\n *\n * multinomial takes one array of integers as an argument.\n * The following condition must be enforced: every ai <= 0\n *\n * Syntax:\n *\n * math.multinomial(a) // a is an array type\n *\n * Examples:\n *\n * math.multinomial([1,2,1]) // returns 12\n *\n * See also:\n *\n * combinations, factorial\n *\n * @param {number[] | BigNumber[]} a Integer numbers of objects in the subset\n * @return {Number | BigNumber} Multinomial coefficient.\n */\n return typed(name, {\n 'Array | Matrix': function ArrayMatrix(a) {\n var sum = 0;\n var denom = 1;\n deepForEach(a, function (ai) {\n if (!isInteger(ai) || !isPositive(ai)) {\n throw new TypeError('Positive integer value expected in function multinomial');\n }\n sum = add(sum, ai);\n denom = multiply(denom, factorial(ai));\n });\n return divide(factorial(sum), denom);\n }\n });\n});","import Fraction from 'fraction.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'Fraction';\nvar dependencies = [];\nexport var createFractionClass = /* #__PURE__ */factory(name, dependencies, () => {\n /**\n * Attach type information\n */\n Object.defineProperty(Fraction, 'name', {\n value: 'Fraction'\n });\n Fraction.prototype.constructor = Fraction;\n Fraction.prototype.type = 'Fraction';\n Fraction.prototype.isFraction = true;\n\n /**\n * Get a JSON representation of a Fraction containing type information\n * @returns {Object} Returns a JSON object structured as:\n * `{\"mathjs\": \"Fraction\", \"n\": 3, \"d\": 8}`\n */\n Fraction.prototype.toJSON = function () {\n return {\n mathjs: 'Fraction',\n n: this.s * this.n,\n d: this.d\n };\n };\n\n /**\n * Instantiate a Fraction from a JSON object\n * @param {Object} json a JSON object structured as:\n * `{\"mathjs\": \"Fraction\", \"n\": 3, \"d\": 8}`\n * @return {BigNumber}\n */\n Fraction.fromJSON = function (json) {\n return new Fraction(json);\n };\n return Fraction;\n}, {\n isClass: true\n});","import { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';\nimport { roundNumber } from '../../plain/number/index.js';\nvar NO_INT = 'Number of decimals in function round must be an integer';\nvar name = 'round';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'BigNumber', 'DenseMatrix'];\nexport var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n zeros,\n BigNumber,\n DenseMatrix\n } = _ref;\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matAlgo14xDs = createMatAlgo14xDs({\n typed\n });\n\n /**\n * Round a value towards the nearest rounded value.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.round(x)\n * math.round(x, n)\n *\n * Examples:\n *\n * math.round(3.22) // returns number 3\n * math.round(3.82) // returns number 4\n * math.round(-4.2) // returns number -4\n * math.round(-4.7) // returns number -5\n * math.round(3.22, 1) // returns number 3.2\n * math.round(3.88, 1) // returns number 3.9\n * math.round(-4.21, 1) // returns number -4.2\n * math.round(-4.71, 1) // returns number -4.7\n * math.round(math.pi, 3) // returns number 3.142\n * math.round(123.45678, 2) // returns number 123.46\n *\n * const c = math.complex(3.2, -2.7)\n * math.round(c) // returns Complex 3 - 3i\n *\n * math.round([3.2, 3.8, -4.7]) // returns Array [3, 4, -5]\n *\n * See also:\n *\n * ceil, fix, floor\n *\n * @param {number | BigNumber | Fraction | Complex | Array | Matrix} x Number to be rounded\n * @param {number | BigNumber | Array} [n=0] Number of decimals\n * @return {number | BigNumber | Fraction | Complex | Array | Matrix} Rounded value\n */\n return typed(name, {\n number: roundNumber,\n 'number, number': roundNumber,\n 'number, BigNumber': function numberBigNumber(x, n) {\n if (!n.isInteger()) {\n throw new TypeError(NO_INT);\n }\n return new BigNumber(x).toDecimalPlaces(n.toNumber());\n },\n Complex: function Complex(x) {\n return x.round();\n },\n 'Complex, number': function ComplexNumber(x, n) {\n if (n % 1) {\n throw new TypeError(NO_INT);\n }\n return x.round(n);\n },\n 'Complex, BigNumber': function ComplexBigNumber(x, n) {\n if (!n.isInteger()) {\n throw new TypeError(NO_INT);\n }\n var _n = n.toNumber();\n return x.round(_n);\n },\n BigNumber: function BigNumber(x) {\n return x.toDecimalPlaces(0);\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, n) {\n if (!n.isInteger()) {\n throw new TypeError(NO_INT);\n }\n return x.toDecimalPlaces(n.toNumber());\n },\n Fraction: function Fraction(x) {\n return x.round();\n },\n 'Fraction, number': function FractionNumber(x, n) {\n if (n % 1) {\n throw new TypeError(NO_INT);\n }\n return x.round(n);\n },\n 'Fraction, BigNumber': function FractionBigNumber(x, n) {\n if (!n.isInteger()) {\n throw new TypeError(NO_INT);\n }\n return x.round(n.toNumber());\n },\n // deep map collection, skip zeros since round(0) = 0\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self, true)),\n 'SparseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {\n return matAlgo11xS0s(x, y, self, false);\n }),\n 'DenseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {\n return matAlgo14xDs(x, y, self, false);\n }),\n 'Array, number | BigNumber': typed.referToSelf(self => (x, y) => {\n // use matrix implementation\n return matAlgo14xDs(matrix(x), y, self, false).valueOf();\n }),\n 'number | Complex | BigNumber | Fraction, SparseMatrix': typed.referToSelf(self => (x, y) => {\n // check scalar is zero\n if (equalScalar(x, 0)) {\n // do not execute algorithm, result will be a zero matrix\n return zeros(y.size(), y.storage());\n }\n return matAlgo12xSfs(y, x, self, true);\n }),\n 'number | Complex | BigNumber | Fraction, DenseMatrix': typed.referToSelf(self => (x, y) => {\n // check scalar is zero\n if (equalScalar(x, 0)) {\n // do not execute algorithm, result will be a zero matrix\n return zeros(y.size(), y.storage());\n }\n return matAlgo14xDs(y, x, self, true);\n }),\n 'number | Complex | BigNumber | Fraction, Array': typed.referToSelf(self => (x, y) => {\n // use matrix implementation\n return matAlgo14xDs(matrix(y), x, self, true).valueOf();\n })\n });\n});","import { factory } from '../../utils/factory.js';\nvar name = 'matrixFromRows';\nvar dependencies = ['typed', 'matrix', 'flatten', 'size'];\nexport var createMatrixFromRows = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n flatten,\n size\n } = _ref;\n /**\n * Create a dense matrix from vectors as individual rows.\n * If you pass column vectors, they will be transposed (but not conjugated!)\n *\n * Syntax:\n *\n * math.matrixFromRows(...arr)\n * math.matrixFromRows(row1, row2)\n * math.matrixFromRows(row1, row2, row3)\n *\n * Examples:\n *\n * math.matrixFromRows([1, 2, 3], [[4],[5],[6]])\n * math.matrixFromRows(...vectors)\n *\n * See also:\n *\n * matrix, matrixFromColumns, matrixFromFunction, zeros\n *\n * @param {... Array | Matrix} rows Multiple rows\n * @return { number[][] | Matrix } if at least one of the arguments is an array, an array will be returned\n */\n return typed(name, {\n '...Array': function Array(arr) {\n return _createArray(arr);\n },\n '...Matrix': function Matrix(arr) {\n return matrix(_createArray(arr.map(m => m.toArray())));\n }\n\n // TODO implement this properly for SparseMatrix\n });\n\n function _createArray(arr) {\n if (arr.length === 0) throw new TypeError('At least one row is needed to construct a matrix.');\n var N = checkVectorTypeAndReturnLength(arr[0]);\n var result = [];\n for (var row of arr) {\n var rowLength = checkVectorTypeAndReturnLength(row);\n if (rowLength !== N) {\n throw new TypeError('The vectors had different length: ' + (N | 0) + ' ≠ ' + (rowLength | 0));\n }\n result.push(flatten(row));\n }\n return result;\n }\n function checkVectorTypeAndReturnLength(vec) {\n var s = size(vec);\n if (s.length === 1) {\n // 1D vector\n return s[0];\n } else if (s.length === 2) {\n // 2D vector\n if (s[0] === 1) {\n // row vector\n return s[1];\n } else if (s[1] === 1) {\n // col vector\n return s[0];\n } else {\n throw new TypeError('At least one of the arguments is not a vector.');\n }\n } else {\n throw new TypeError('Only one- or two-dimensional vectors are supported.');\n }\n }\n});","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","import { factory } from '../../../utils/factory.js';\nvar name = 'matrix';\nvar dependencies = ['typed', 'Matrix', 'DenseMatrix', 'SparseMatrix'];\nexport var createMatrix = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n Matrix,\n DenseMatrix,\n SparseMatrix\n } = _ref;\n /**\n * Create a Matrix. The function creates a new `math.Matrix` object from\n * an `Array`. A Matrix has utility functions to manipulate the data in the\n * matrix, like getting the size and getting or setting values in the matrix.\n * Supported storage formats are 'dense' and 'sparse'.\n *\n * Syntax:\n *\n * math.matrix() // creates an empty matrix using default storage format (dense).\n * math.matrix(data) // creates a matrix with initial data using default storage format (dense).\n * math.matrix('dense') // creates an empty matrix using the given storage format.\n * math.matrix(data, 'dense') // creates a matrix with initial data using the given storage format.\n * math.matrix(data, 'sparse') // creates a sparse matrix with initial data.\n * math.matrix(data, 'sparse', 'number') // creates a sparse matrix with initial data, number data type.\n *\n * Examples:\n *\n * let m = math.matrix([[1, 2], [3, 4]])\n * m.size() // Array [2, 2]\n * m.resize([3, 2], 5)\n * m.valueOf() // Array [[1, 2], [3, 4], [5, 5]]\n * m.get([1, 0]) // number 3\n *\n * See also:\n *\n * bignumber, boolean, complex, index, number, string, unit, sparse\n *\n * @param {Array | Matrix} [data] A multi dimensional array\n * @param {string} [format] The Matrix storage format, either `'dense'` or `'sparse'`\n * @param {string} [datatype] Type of the values\n *\n * @return {Matrix} The created matrix\n */\n return typed(name, {\n '': function _() {\n return _create([]);\n },\n string: function string(format) {\n return _create([], format);\n },\n 'string, string': function stringString(format, datatype) {\n return _create([], format, datatype);\n },\n Array: function Array(data) {\n return _create(data);\n },\n Matrix: function Matrix(data) {\n return _create(data, data.storage());\n },\n 'Array | Matrix, string': _create,\n 'Array | Matrix, string, string': _create\n });\n\n /**\n * Create a new Matrix with given storage format\n * @param {Array} data\n * @param {string} [format]\n * @param {string} [datatype]\n * @returns {Matrix} Returns a new Matrix\n * @private\n */\n function _create(data, format, datatype) {\n // get storage format constructor\n if (format === 'dense' || format === 'default' || format === undefined) {\n return new DenseMatrix(data, datatype);\n }\n if (format === 'sparse') {\n return new SparseMatrix(data, datatype);\n }\n throw new TypeError('Unknown matrix type ' + JSON.stringify(format) + '.');\n }\n});","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.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\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\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\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\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};\n\nSHA1.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","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","module.exports = {\n decode: require('./decode'),\n verify: require('./verify'),\n sign: require('./sign'),\n JsonWebTokenError: require('./lib/JsonWebTokenError'),\n NotBeforeError: require('./lib/NotBeforeError'),\n TokenExpiredError: require('./lib/TokenExpiredError'),\n};\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","module.exports = __webpack_public_path__ + \"img/logoCliente.66a70dc2.png\";","import { factory } from '../../utils/factory.js';\nvar name = 'hasNumericValue';\nvar dependencies = ['typed', 'isNumeric'];\nexport var createHasNumericValue = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n isNumeric\n } = _ref;\n /**\n * Test whether a value is an numeric value.\n *\n * In case of a string, true is returned if the string contains a numeric value.\n *\n * Syntax:\n *\n * math.hasNumericValue(x)\n *\n * Examples:\n *\n * math.hasNumericValue(2) // returns true\n * math.hasNumericValue('2') // returns true\n * math.isNumeric('2') // returns false\n * math.hasNumericValue(0) // returns true\n * math.hasNumericValue(math.bignumber(500)) // returns true\n * math.hasNumericValue(math.fraction(4)) // returns true\n * math.hasNumericValue(math.complex('2-4i')) // returns false\n * math.hasNumericValue(false) // returns true\n * math.hasNumericValue([2.3, 'foo', false]) // returns [true, false, true]\n *\n * See also:\n *\n * isZero, isPositive, isNegative, isInteger, isNumeric\n *\n * @param {*} x Value to be tested\n * @return {boolean} Returns true when `x` is a `number`, `BigNumber`,\n * `Fraction`, `Boolean`, or a `String` containing number. Returns false for other types.\n * Throws an error in case of unknown types.\n */\n return typed(name, {\n boolean: () => true,\n string: function string(x) {\n return x.trim().length > 0 && !isNaN(Number(x));\n },\n any: function any(x) {\n return isNumeric(x);\n }\n });\n});","import { hasOwnProperty } from './object.js';\n\n/**\n * Get a property of a plain object\n * Throws an error in case the object is not a plain object or the\n * property is not defined on the object itself\n * @param {Object} object\n * @param {string} prop\n * @return {*} Returns the property value when safe\n */\nfunction getSafeProperty(object, prop) {\n // only allow getting safe properties of a plain object\n if (isPlainObject(object) && isSafeProperty(object, prop)) {\n return object[prop];\n }\n if (typeof object[prop] === 'function' && isSafeMethod(object, prop)) {\n throw new Error('Cannot access method \"' + prop + '\" as a property');\n }\n throw new Error('No access to property \"' + prop + '\"');\n}\n\n/**\n * Set a property on a plain object.\n * Throws an error in case the object is not a plain object or the\n * property would override an inherited property like .constructor or .toString\n * @param {Object} object\n * @param {string} prop\n * @param {*} value\n * @return {*} Returns the value\n */\n// TODO: merge this function into access.js?\nfunction setSafeProperty(object, prop, value) {\n // only allow setting safe properties of a plain object\n if (isPlainObject(object) && isSafeProperty(object, prop)) {\n object[prop] = value;\n return value;\n }\n throw new Error('No access to property \"' + prop + '\"');\n}\nfunction getSafeProperties(object) {\n return Object.keys(object).filter(prop => hasOwnProperty(object, prop));\n}\nfunction hasSafeProperty(object, prop) {\n return prop in object;\n}\n\n/**\n * Test whether a property is safe to use for an object.\n * For example .toString and .constructor are not safe\n * @param {string} prop\n * @return {boolean} Returns true when safe\n */\nfunction isSafeProperty(object, prop) {\n if (!object || typeof object !== 'object') {\n return false;\n }\n // SAFE: whitelisted\n // e.g length\n if (hasOwnProperty(safeNativeProperties, prop)) {\n return true;\n }\n // UNSAFE: inherited from Object prototype\n // e.g constructor\n if (prop in Object.prototype) {\n // 'in' is used instead of hasOwnProperty for nodejs v0.10\n // which is inconsistent on root prototypes. It is safe\n // here because Object.prototype is a root object\n return false;\n }\n // UNSAFE: inherited from Function prototype\n // e.g call, apply\n if (prop in Function.prototype) {\n // 'in' is used instead of hasOwnProperty for nodejs v0.10\n // which is inconsistent on root prototypes. It is safe\n // here because Function.prototype is a root object\n return false;\n }\n return true;\n}\n\n/**\n * Validate whether a method is safe.\n * Throws an error when that's not the case.\n * @param {Object} object\n * @param {string} method\n * @return {function} Returns the method when valid\n */\nfunction getSafeMethod(object, method) {\n if (!isSafeMethod(object, method)) {\n throw new Error('No access to method \"' + method + '\"');\n }\n return object[method];\n}\n\n/**\n * Check whether a method is safe.\n * Throws an error when that's not the case (for example for `constructor`).\n * @param {Object} object\n * @param {string} method\n * @return {boolean} Returns true when safe, false otherwise\n */\nfunction isSafeMethod(object, method) {\n if (object === null || object === undefined || typeof object[method] !== 'function') {\n return false;\n }\n // UNSAFE: ghosted\n // e.g overridden toString\n // Note that IE10 doesn't support __proto__ and we can't do this check there.\n if (hasOwnProperty(object, method) && Object.getPrototypeOf && method in Object.getPrototypeOf(object)) {\n return false;\n }\n // SAFE: whitelisted\n // e.g toString\n if (hasOwnProperty(safeNativeMethods, method)) {\n return true;\n }\n // UNSAFE: inherited from Object prototype\n // e.g constructor\n if (method in Object.prototype) {\n // 'in' is used instead of hasOwnProperty for nodejs v0.10\n // which is inconsistent on root prototypes. It is safe\n // here because Object.prototype is a root object\n return false;\n }\n // UNSAFE: inherited from Function prototype\n // e.g call, apply\n if (method in Function.prototype) {\n // 'in' is used instead of hasOwnProperty for nodejs v0.10\n // which is inconsistent on root prototypes. It is safe\n // here because Function.prototype is a root object\n return false;\n }\n return true;\n}\nfunction isPlainObject(object) {\n return typeof object === 'object' && object && object.constructor === Object;\n}\nvar safeNativeProperties = {\n length: true,\n name: true\n};\nvar safeNativeMethods = {\n toString: true,\n valueOf: true,\n toLocaleString: true\n};\nexport { getSafeProperty };\nexport { setSafeProperty };\nexport { isSafeProperty };\nexport { hasSafeProperty };\nexport { getSafeProperties };\nexport { getSafeMethod };\nexport { isSafeMethod };\nexport { isPlainObject };","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\nvar JWS_REGEX = /^[a-zA-Z0-9\\-_]+?\\.[a-zA-Z0-9\\-_]+?\\.([a-zA-Z0-9\\-_]+)?$/;\n\nfunction isObject(thing) {\n return Object.prototype.toString.call(thing) === '[object Object]';\n}\n\nfunction safeJsonParse(thing) {\n if (isObject(thing))\n return thing;\n try { return JSON.parse(thing); }\n catch (e) { return undefined; }\n}\n\nfunction headerFromJWS(jwsSig) {\n var encodedHeader = jwsSig.split('.', 1)[0];\n return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary'));\n}\n\nfunction securedInputFromJWS(jwsSig) {\n return jwsSig.split('.', 2).join('.');\n}\n\nfunction signatureFromJWS(jwsSig) {\n return jwsSig.split('.')[2];\n}\n\nfunction payloadFromJWS(jwsSig, encoding) {\n encoding = encoding || 'utf8';\n var payload = jwsSig.split('.')[1];\n return Buffer.from(payload, 'base64').toString(encoding);\n}\n\nfunction isValidJws(string) {\n return JWS_REGEX.test(string) && !!headerFromJWS(string);\n}\n\nfunction jwsVerify(jwsSig, algorithm, secretOrKey) {\n if (!algorithm) {\n var err = new Error(\"Missing algorithm parameter for jws.verify\");\n err.code = \"MISSING_ALGORITHM\";\n throw err;\n }\n jwsSig = toString(jwsSig);\n var signature = signatureFromJWS(jwsSig);\n var securedInput = securedInputFromJWS(jwsSig);\n var algo = jwa(algorithm);\n return algo.verify(securedInput, signature, secretOrKey);\n}\n\nfunction jwsDecode(jwsSig, opts) {\n opts = opts || {};\n jwsSig = toString(jwsSig);\n\n if (!isValidJws(jwsSig))\n return null;\n\n var header = headerFromJWS(jwsSig);\n\n if (!header)\n return null;\n\n var payload = payloadFromJWS(jwsSig);\n if (header.typ === 'JWT' || opts.json)\n payload = JSON.parse(payload, opts.encoding);\n\n return {\n header: header,\n payload: payload,\n signature: signatureFromJWS(jwsSig)\n };\n}\n\nfunction VerifyStream(opts) {\n opts = opts || {};\n var secretOrKey = opts.secret||opts.publicKey||opts.key;\n var secretStream = new DataStream(secretOrKey);\n this.readable = true;\n this.algorithm = opts.algorithm;\n this.encoding = opts.encoding;\n this.secret = this.publicKey = this.key = secretStream;\n this.signature = new DataStream(opts.signature);\n this.secret.once('close', function () {\n if (!this.signature.writable && this.readable)\n this.verify();\n }.bind(this));\n\n this.signature.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.verify();\n }.bind(this));\n}\nutil.inherits(VerifyStream, Stream);\nVerifyStream.prototype.verify = function verify() {\n try {\n var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);\n var obj = jwsDecode(this.signature.buffer, this.encoding);\n this.emit('done', valid, obj);\n this.emit('data', valid);\n this.emit('end');\n this.readable = false;\n return valid;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nVerifyStream.decode = jwsDecode;\nVerifyStream.isValid = isValidJws;\nVerifyStream.verify = jwsVerify;\n\nmodule.exports = VerifyStream;\n","import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';\nimport { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';\nimport { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';\nimport { createMatAlgo08xS0Sid } from '../../type/matrix/utils/matAlgo08xS0Sid.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { rightLogShiftNumber } from '../../plain/number/index.js';\nimport { createUseMatrixForArrayScalar } from './useMatrixForArrayScalar.js';\nvar name = 'rightLogShift';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix', 'concat'];\nexport var createRightLogShift = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n zeros,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo01xDSid = createMatAlgo01xDSid({\n typed\n });\n var matAlgo02xDS0 = createMatAlgo02xDS0({\n typed,\n equalScalar\n });\n var matAlgo08xS0Sid = createMatAlgo08xS0Sid({\n typed,\n equalScalar\n });\n var matAlgo10xSids = createMatAlgo10xSids({\n typed,\n DenseMatrix\n });\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matAlgo14xDs = createMatAlgo14xDs({\n typed\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n var useMatrixForArrayScalar = createUseMatrixForArrayScalar({\n typed,\n matrix\n });\n\n /**\n * Bitwise right logical shift of value x by y number of bits, `x >>> y`.\n * For matrices, the function is evaluated element wise.\n * For units, the function is evaluated on the best prefix base.\n *\n * Syntax:\n *\n * math.rightLogShift(x, y)\n *\n * Examples:\n *\n * math.rightLogShift(4, 2) // returns number 1\n *\n * math.rightLogShift([16, 32, 64], 4) // returns Array [1, 2, 4]\n *\n * See also:\n *\n * bitAnd, bitNot, bitOr, bitXor, leftShift, rightLogShift\n *\n * @param {number | Array | Matrix} x Value to be shifted\n * @param {number} y Amount of shifts\n * @return {number | Array | Matrix} `x` zero-filled shifted right `y` times\n */\n\n return typed(name, {\n 'number, number': rightLogShiftNumber,\n // 'BigNumber, BigNumber': ..., // TODO: implement BigNumber support for rightLogShift\n\n 'SparseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {\n // check scalar\n if (equalScalar(y, 0)) {\n return x.clone();\n }\n return matAlgo11xS0s(x, y, self, false);\n }),\n 'DenseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {\n // check scalar\n if (equalScalar(y, 0)) {\n return x.clone();\n }\n return matAlgo14xDs(x, y, self, false);\n }),\n 'number | BigNumber, SparseMatrix': typed.referToSelf(self => (x, y) => {\n // check scalar\n if (equalScalar(x, 0)) {\n return zeros(y.size(), y.storage());\n }\n return matAlgo10xSids(y, x, self, true);\n }),\n 'number | BigNumber, DenseMatrix': typed.referToSelf(self => (x, y) => {\n // check scalar\n if (equalScalar(x, 0)) {\n return zeros(y.size(), y.storage());\n }\n return matAlgo14xDs(y, x, self, true);\n })\n }, useMatrixForArrayScalar, matrixAlgorithmSuite({\n SS: matAlgo08xS0Sid,\n DS: matAlgo01xDSid,\n SD: matAlgo02xDS0\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// 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\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 this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\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/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\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;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\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 // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') 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 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 this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\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 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 // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\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}\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(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})();\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 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}\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\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\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);\n\n // legacy.\n this.writable = true;\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 Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.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 er;\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 if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\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 if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\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};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\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};\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});\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}\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});\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 state.length += len;\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 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 return ret;\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}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\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);\n // this can emit finish, and it will always happen\n // after error\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);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\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 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\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 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 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 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 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 if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\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 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) endWritable(this, state, cb);\n return this;\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});\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 errorOrDestroy(stream, 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' && !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}\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 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 if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\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\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\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 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 }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\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","import { factory } from '../../utils/factory.js';\nimport { extend } from '../../utils/object.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';\nvar name = 'divide';\nvar dependencies = ['typed', 'matrix', 'multiply', 'equalScalar', 'divideScalar', 'inv'];\nexport var createDivide = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n multiply,\n equalScalar,\n divideScalar,\n inv\n } = _ref;\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matAlgo14xDs = createMatAlgo14xDs({\n typed\n });\n\n /**\n * Divide two values, `x / y`.\n * To divide matrices, `x` is multiplied with the inverse of `y`: `x * inv(y)`.\n *\n * Syntax:\n *\n * math.divide(x, y)\n *\n * Examples:\n *\n * math.divide(2, 3) // returns number 0.6666666666666666\n *\n * const a = math.complex(5, 14)\n * const b = math.complex(4, 1)\n * math.divide(a, b) // returns Complex 2 + 3i\n *\n * const c = [[7, -6], [13, -4]]\n * const d = [[1, 2], [4, 3]]\n * math.divide(c, d) // returns Array [[-9, 4], [-11, 6]]\n *\n * const e = math.unit('18 km')\n * math.divide(e, 4.5) // returns Unit 4 km\n *\n * See also:\n *\n * multiply\n *\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x Numerator\n * @param {number | BigNumber | Fraction | Complex | Array | Matrix} y Denominator\n * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Quotient, `x / y`\n */\n return typed('divide', extend({\n // we extend the signatures of divideScalar with signatures dealing with matrices\n\n 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(x, y) {\n // TODO: implement matrix right division using pseudo inverse\n // https://www.mathworks.nl/help/matlab/ref/mrdivide.html\n // https://www.gnu.org/software/octave/doc/interpreter/Arithmetic-Ops.html\n // https://stackoverflow.com/questions/12263932/how-does-gnu-octave-matrix-division-work-getting-unexpected-behaviour\n return multiply(x, inv(y));\n },\n 'DenseMatrix, any': function DenseMatrixAny(x, y) {\n return matAlgo14xDs(x, y, divideScalar, false);\n },\n 'SparseMatrix, any': function SparseMatrixAny(x, y) {\n return matAlgo11xS0s(x, y, divideScalar, false);\n },\n 'Array, any': function ArrayAny(x, y) {\n // use matrix implementation\n return matAlgo14xDs(matrix(x), y, divideScalar, false).valueOf();\n },\n 'any, Array | Matrix': function anyArrayMatrix(x, y) {\n return multiply(x, inv(y));\n }\n }, divideScalar.signatures));\n});","import { isBigNumber } from '../../utils/is.js';\nimport { resize } from '../../utils/array.js';\nimport { isInteger } from '../../utils/number.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'identity';\nvar dependencies = ['typed', 'config', 'matrix', 'BigNumber', 'DenseMatrix', 'SparseMatrix'];\nexport var createIdentity = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n matrix,\n BigNumber,\n DenseMatrix,\n SparseMatrix\n } = _ref;\n /**\n * Create a 2-dimensional identity matrix with size m x n or n x n.\n * The matrix has ones on the diagonal and zeros elsewhere.\n *\n * Syntax:\n *\n * math.identity(n)\n * math.identity(n, format)\n * math.identity(m, n)\n * math.identity(m, n, format)\n * math.identity([m, n])\n * math.identity([m, n], format)\n *\n * Examples:\n *\n * math.identity(3) // returns [[1, 0, 0], [0, 1, 0], [0, 0, 1]]\n * math.identity(3, 2) // returns [[1, 0], [0, 1], [0, 0]]\n *\n * const A = [[1, 2, 3], [4, 5, 6]]\n * math.identity(math.size(A)) // returns [[1, 0, 0], [0, 1, 0]]\n *\n * See also:\n *\n * diag, ones, zeros, size, range\n *\n * @param {...number | Matrix | Array} size The size for the matrix\n * @param {string} [format] The Matrix storage format\n *\n * @return {Matrix | Array | number} A matrix with ones on the diagonal.\n */\n return typed(name, {\n '': function _() {\n return config.matrix === 'Matrix' ? matrix([]) : [];\n },\n string: function string(format) {\n return matrix(format);\n },\n 'number | BigNumber': function numberBigNumber(rows) {\n return _identity(rows, rows, config.matrix === 'Matrix' ? 'dense' : undefined);\n },\n 'number | BigNumber, string': function numberBigNumberString(rows, format) {\n return _identity(rows, rows, format);\n },\n 'number | BigNumber, number | BigNumber': function numberBigNumberNumberBigNumber(rows, cols) {\n return _identity(rows, cols, config.matrix === 'Matrix' ? 'dense' : undefined);\n },\n 'number | BigNumber, number | BigNumber, string': function numberBigNumberNumberBigNumberString(rows, cols, format) {\n return _identity(rows, cols, format);\n },\n Array: function Array(size) {\n return _identityVector(size);\n },\n 'Array, string': function ArrayString(size, format) {\n return _identityVector(size, format);\n },\n Matrix: function Matrix(size) {\n return _identityVector(size.valueOf(), size.storage());\n },\n 'Matrix, string': function MatrixString(size, format) {\n return _identityVector(size.valueOf(), format);\n }\n });\n function _identityVector(size, format) {\n switch (size.length) {\n case 0:\n return format ? matrix(format) : [];\n case 1:\n return _identity(size[0], size[0], format);\n case 2:\n return _identity(size[0], size[1], format);\n default:\n throw new Error('Vector containing two values expected');\n }\n }\n\n /**\n * Create an identity matrix\n * @param {number | BigNumber} rows\n * @param {number | BigNumber} cols\n * @param {string} [format]\n * @returns {Matrix}\n * @private\n */\n function _identity(rows, cols, format) {\n // BigNumber constructor with the right precision\n var Big = isBigNumber(rows) || isBigNumber(cols) ? BigNumber : null;\n if (isBigNumber(rows)) rows = rows.toNumber();\n if (isBigNumber(cols)) cols = cols.toNumber();\n if (!isInteger(rows) || rows < 1) {\n throw new Error('Parameters in function identity must be positive integers');\n }\n if (!isInteger(cols) || cols < 1) {\n throw new Error('Parameters in function identity must be positive integers');\n }\n var one = Big ? new BigNumber(1) : 1;\n var defaultValue = Big ? new Big(0) : 0;\n var size = [rows, cols];\n\n // check we need to return a matrix\n if (format) {\n // create diagonal matrix (use optimized implementation for storage format)\n if (format === 'sparse') {\n return SparseMatrix.diagonal(size, one, 0, defaultValue);\n }\n if (format === 'dense') {\n return DenseMatrix.diagonal(size, one, 0, defaultValue);\n }\n throw new TypeError(\"Unknown matrix type \\\"\".concat(format, \"\\\"\"));\n }\n\n // create and resize array\n var res = resize([], size, defaultValue);\n // fill in ones on the diagonal\n var minimum = rows < cols ? rows : cols;\n // fill diagonal\n for (var d = 0; d < minimum; d++) {\n res[d][d] = one;\n }\n return res;\n }\n});","import { eqStrict } from './Eq';\nimport { constant, constTrue, pipe } from './function';\n// -------------------------------------------------------------------------------------\n// defaults\n// -------------------------------------------------------------------------------------\n/**\n * @category defaults\n * @since 2.10.0\n */\nexport var equalsDefault = function (compare) {\n return function (first, second) {\n return first === second || compare(first, second) === 0;\n };\n};\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var fromCompare = function (compare) { return ({\n equals: equalsDefault(compare),\n compare: function (first, second) { return (first === second ? 0 : compare(first, second)); }\n}); };\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Given a tuple of `Ord`s returns an `Ord` for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Ord'\n * import * as B from 'fp-ts/boolean'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n *\n * const O = tuple(S.Ord, N.Ord, B.Ord)\n * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1)\n *\n * @since 2.10.0\n */\nexport var tuple = function () {\n var ords = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ords[_i] = arguments[_i];\n }\n return fromCompare(function (first, second) {\n var i = 0;\n for (; i < ords.length - 1; i++) {\n var r = ords[i].compare(first[i], second[i]);\n if (r !== 0) {\n return r;\n }\n }\n return ords[i].compare(first[i], second[i]);\n });\n};\n/**\n * @since 2.10.0\n */\nexport var reverse = function (O) { return fromCompare(function (first, second) { return O.compare(second, first); }); };\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return pipe(fa, contramap(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for ordering (meaning we have an `Ord`)\n *\n * For example, given the following `User` type, there are lots of possible choices for `X`,\n * but let's say we want to sort a list of users by `lastName`.\n *\n * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord`) and we know how to go from `User -> string`,\n * using `contramap` we can do this\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import { contramap, Ord } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const ordLastName: Ord = S.Ord\n *\n * const ordByLastName: Ord = pipe(\n * ordLastName,\n * contramap((user) => user.lastName)\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordByLastName)([\n * { firstName: 'a', lastName: 'd' },\n * { firstName: 'c', lastName: 'b' }\n * ]),\n * [\n * { firstName: 'c', lastName: 'b' },\n * { firstName: 'a', lastName: 'd' }\n * ]\n * )\n *\n * @since 2.0.0\n */\nexport var contramap = function (f) { return function (fa) {\n return fromCompare(function (first, second) { return fa.compare(f(first), f(second)); });\n}; };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Ord';\n/**\n * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings.\n *\n * For example the following snippet builds an `Ord` for a type `User` which\n * sorts by `created` date descending, and **then** `lastName`\n *\n * @example\n * import * as D from 'fp-ts/Date'\n * import { pipe } from 'fp-ts/function'\n * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly id: string\n * readonly lastName: string\n * readonly created: Date\n * }\n *\n * const ordByLastName: Ord = pipe(\n * S.Ord,\n * contramap((user) => user.lastName)\n * )\n *\n * const ordByCreated: Ord = pipe(\n * D.Ord,\n * contramap((user) => user.created)\n * )\n *\n * const ordUserByCreatedDescThenLastName = getSemigroup().concat(\n * reverse(ordByCreated),\n * ordByLastName\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordUserByCreatedDescThenLastName)([\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }\n * ]),\n * [\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }\n * ]\n * )\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getSemigroup = function () { return ({\n concat: function (first, second) {\n return fromCompare(function (a, b) {\n var ox = first.compare(a, b);\n return ox !== 0 ? ox : second.compare(a, b);\n });\n }\n}); };\n/**\n * Returns a `Monoid` such that:\n *\n * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2`\n * - its `empty` value is an `Ord` that always considers compared elements equal\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import { contramap, reverse, getMonoid } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as B from 'fp-ts/boolean'\n * import { pipe } from 'fp-ts/function'\n * import { concatAll } from 'fp-ts/Monoid'\n * import * as N from 'fp-ts/number'\n *\n * interface User {\n * readonly id: number\n * readonly name: string\n * readonly age: number\n * readonly rememberMe: boolean\n * }\n *\n * const byName = pipe(\n * S.Ord,\n * contramap((p: User) => p.name)\n * )\n *\n * const byAge = pipe(\n * N.Ord,\n * contramap((p: User) => p.age)\n * )\n *\n * const byRememberMe = pipe(\n * B.Ord,\n * contramap((p: User) => p.rememberMe)\n * )\n *\n * const M = getMonoid()\n *\n * const users: Array = [\n * { id: 1, name: 'Guido', age: 47, rememberMe: false },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true }\n * ]\n *\n * // sort by name, then by age, then by `rememberMe`\n * const O1 = concatAll(M)([byName, byAge, byRememberMe])\n * assert.deepStrictEqual(sort(O1)(users), [\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * // now `rememberMe = true` first, then by name, then by age\n * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge])\n * assert.deepStrictEqual(sort(O2)(users), [\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * @category instances\n * @since 2.4.0\n */\nexport var getMonoid = function () { return ({\n concat: getSemigroup().concat,\n empty: fromCompare(function () { return 0; })\n}); };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Contravariant = {\n URI: URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nexport var trivial = {\n equals: constTrue,\n compare: /*#__PURE__*/ constant(0)\n};\n/**\n * @since 2.11.0\n */\nexport var equals = function (O) {\n return function (second) {\n return function (first) {\n return first === second || O.compare(first, second) === 0;\n };\n };\n};\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly less than_ another\n *\n * @since 2.0.0\n */\nexport var lt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === -1;\n };\n};\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly greater than_ another\n *\n * @since 2.0.0\n */\nexport var gt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === 1;\n };\n};\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly less than_ another\n *\n * @since 2.0.0\n */\nexport var leq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== 1;\n };\n};\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly greater than_ another\n *\n * @since 2.0.0\n */\nexport var geq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== -1;\n };\n};\n// TODO: curry in v3\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nexport var min = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) < 1 ? first : second;\n };\n};\n// TODO: curry in v3\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nexport var max = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) > -1 ? first : second;\n };\n};\n/**\n * Clamp a value between a minimum and a maximum\n *\n * @since 2.0.0\n */\nexport var clamp = function (O) {\n var minO = min(O);\n var maxO = max(O);\n return function (low, hi) { return function (a) { return maxO(minO(a, hi), low); }; };\n};\n/**\n * Test whether a value is between a minimum and a maximum (inclusive)\n *\n * @since 2.0.0\n */\nexport var between = function (O) {\n var ltO = lt(O);\n var gtO = gt(O);\n return function (low, hi) { return function (a) { return ltO(a, low) || gtO(a, hi) ? false : true; }; };\n};\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getTupleOrd = tuple;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getDualOrd = reverse;\n/**\n * Use [`Contravariant`](#contravariant) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var ord = Contravariant;\n// default compare for primitive types\nfunction compare(first, second) {\n return first < second ? -1 : first > second ? 1 : 0;\n}\nvar strictOrd = {\n equals: eqStrict.equals,\n compare: compare\n};\n/**\n * Use [`Ord`](./boolean.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var ordBoolean = strictOrd;\n/**\n * Use [`Ord`](./string.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var ordString = strictOrd;\n/**\n * Use [`Ord`](./number.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var ordNumber = strictOrd;\n/**\n * Use [`Ord`](./Date.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var ordDate = /*#__PURE__*/ pipe(ordNumber, \n/*#__PURE__*/\ncontramap(function (date) { return date.valueOf(); }));\n","import { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nvar name = 'im';\nvar dependencies = ['typed'];\nexport var createIm = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Get the imaginary part of a complex number.\n * For a complex number `a + bi`, the function returns `b`.\n *\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.im(x)\n *\n * Examples:\n *\n * const a = math.complex(2, 3)\n * math.re(a) // returns number 2\n * math.im(a) // returns number 3\n *\n * math.re(math.complex('-5.2i')) // returns number -5.2\n * math.re(math.complex(2.4)) // returns number 0\n *\n * See also:\n *\n * re, conj, abs, arg\n *\n * @param {number | BigNumber | Complex | Array | Matrix} x\n * A complex number or array with complex numbers\n * @return {number | BigNumber | Array | Matrix} The imaginary part of x\n */\n return typed(name, {\n number: () => 0,\n 'BigNumber | Fraction': x => x.mul(0),\n Complex: x => x.im,\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))\n });\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport { factory } from '../../../utils/factory.js';\nvar name = 'qr';\nvar dependencies = ['typed', 'matrix', 'zeros', 'identity', 'isZero', 'equal', 'sign', 'sqrt', 'conj', 'unaryMinus', 'addScalar', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'complex'];\nexport var createQr = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n zeros,\n identity,\n isZero,\n equal,\n sign,\n sqrt,\n conj,\n unaryMinus,\n addScalar,\n divideScalar,\n multiplyScalar,\n subtractScalar,\n complex\n } = _ref;\n /**\n * Calculate the Matrix QR decomposition. Matrix `A` is decomposed in\n * two matrices (`Q`, `R`) where `Q` is an\n * orthogonal matrix and `R` is an upper triangular matrix.\n *\n * Syntax:\n *\n * math.qr(A)\n *\n * Example:\n *\n * const m = [\n * [1, -1, 4],\n * [1, 4, -2],\n * [1, 4, 2],\n * [1, -1, 0]\n * ]\n * const result = math.qr(m)\n * // r = {\n * // Q: [\n * // [0.5, -0.5, 0.5],\n * // [0.5, 0.5, -0.5],\n * // [0.5, 0.5, 0.5],\n * // [0.5, -0.5, -0.5],\n * // ],\n * // R: [\n * // [2, 3, 2],\n * // [0, 5, -2],\n * // [0, 0, 4],\n * // [0, 0, 0]\n * // ]\n * // }\n *\n * See also:\n *\n * lup, lusolve\n *\n * @param {Matrix | Array} A A two dimensional matrix or array\n * for which to get the QR decomposition.\n *\n * @return {{Q: Array | Matrix, R: Array | Matrix}} Q: the orthogonal\n * matrix and R: the upper triangular matrix\n */\n return _extends(typed(name, {\n DenseMatrix: function DenseMatrix(m) {\n return _denseQR(m);\n },\n SparseMatrix: function SparseMatrix(m) {\n return _sparseQR(m);\n },\n Array: function Array(a) {\n // create dense matrix from array\n var m = matrix(a);\n // lup, use matrix implementation\n var r = _denseQR(m);\n // result\n return {\n Q: r.Q.valueOf(),\n R: r.R.valueOf()\n };\n }\n }), {\n _denseQRimpl\n });\n function _denseQRimpl(m) {\n // rows & columns (m x n)\n var rows = m._size[0]; // m\n var cols = m._size[1]; // n\n\n var Q = identity([rows], 'dense');\n var Qdata = Q._data;\n var R = m.clone();\n var Rdata = R._data;\n\n // vars\n var i, j, k;\n var w = zeros([rows], '');\n for (k = 0; k < Math.min(cols, rows); ++k) {\n /*\n * **k-th Household matrix**\n *\n * The matrix I - 2*v*transpose(v)\n * x = first column of A\n * x1 = first element of x\n * alpha = x1 / |x1| * |x|\n * e1 = tranpose([1, 0, 0, ...])\n * u = x - alpha * e1\n * v = u / |u|\n *\n * Household matrix = I - 2 * v * tranpose(v)\n *\n * * Initially Q = I and R = A.\n * * Household matrix is a reflection in a plane normal to v which\n * will zero out all but the top right element in R.\n * * Appplying reflection to both Q and R will not change product.\n * * Repeat this process on the (1,1) minor to get R as an upper\n * triangular matrix.\n * * Reflections leave the magnitude of the columns of Q unchanged\n * so Q remains othoganal.\n *\n */\n\n var pivot = Rdata[k][k];\n var sgn = unaryMinus(equal(pivot, 0) ? 1 : sign(pivot));\n var conjSgn = conj(sgn);\n var alphaSquared = 0;\n for (i = k; i < rows; i++) {\n alphaSquared = addScalar(alphaSquared, multiplyScalar(Rdata[i][k], conj(Rdata[i][k])));\n }\n var alpha = multiplyScalar(sgn, sqrt(alphaSquared));\n if (!isZero(alpha)) {\n // first element in vector u\n var u1 = subtractScalar(pivot, alpha);\n\n // w = v * u1 / |u| (only elements k to (rows-1) are used)\n w[k] = 1;\n for (i = k + 1; i < rows; i++) {\n w[i] = divideScalar(Rdata[i][k], u1);\n }\n\n // tau = - conj(u1 / alpha)\n var tau = unaryMinus(conj(divideScalar(u1, alpha)));\n var s = void 0;\n\n /*\n * tau and w have been choosen so that\n *\n * 2 * v * tranpose(v) = tau * w * tranpose(w)\n */\n\n /*\n * -- calculate R = R - tau * w * tranpose(w) * R --\n * Only do calculation with rows k to (rows-1)\n * Additionally columns 0 to (k-1) will not be changed by this\n * multiplication so do not bother recalculating them\n */\n for (j = k; j < cols; j++) {\n s = 0.0;\n\n // calculate jth element of [tranpose(w) * R]\n for (i = k; i < rows; i++) {\n s = addScalar(s, multiplyScalar(conj(w[i]), Rdata[i][j]));\n }\n\n // calculate the jth element of [tau * transpose(w) * R]\n s = multiplyScalar(s, tau);\n for (i = k; i < rows; i++) {\n Rdata[i][j] = multiplyScalar(subtractScalar(Rdata[i][j], multiplyScalar(w[i], s)), conjSgn);\n }\n }\n /*\n * -- calculate Q = Q - tau * Q * w * transpose(w) --\n * Q is a square matrix (rows x rows)\n * Only do calculation with columns k to (rows-1)\n * Additionally rows 0 to (k-1) will not be changed by this\n * multiplication so do not bother recalculating them\n */\n for (i = 0; i < rows; i++) {\n s = 0.0;\n\n // calculate ith element of [Q * w]\n for (j = k; j < rows; j++) {\n s = addScalar(s, multiplyScalar(Qdata[i][j], w[j]));\n }\n\n // calculate the ith element of [tau * Q * w]\n s = multiplyScalar(s, tau);\n for (j = k; j < rows; ++j) {\n Qdata[i][j] = divideScalar(subtractScalar(Qdata[i][j], multiplyScalar(s, conj(w[j]))), conjSgn);\n }\n }\n }\n }\n\n // return matrices\n return {\n Q,\n R,\n toString: function toString() {\n return 'Q: ' + this.Q.toString() + '\\nR: ' + this.R.toString();\n }\n };\n }\n function _denseQR(m) {\n var ret = _denseQRimpl(m);\n var Rdata = ret.R._data;\n if (m._data.length > 0) {\n var zero = Rdata[0][0].type === 'Complex' ? complex(0) : 0;\n for (var i = 0; i < Rdata.length; ++i) {\n for (var j = 0; j < i && j < (Rdata[0] || []).length; ++j) {\n Rdata[i][j] = zero;\n }\n }\n }\n return ret;\n }\n function _sparseQR(m) {\n throw new Error('qr not implemented for sparse matrices yet');\n }\n});","import { reshape as arrayReshape } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'reshape';\nvar dependencies = ['typed', 'isInteger', 'matrix'];\nexport var createReshape = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n isInteger\n } = _ref;\n /**\n * Reshape a multi dimensional array to fit the specified dimensions\n *\n * Syntax:\n *\n * math.reshape(x, sizes)\n *\n * Examples:\n *\n * math.reshape([1, 2, 3, 4, 5, 6], [2, 3])\n * // returns Array [[1, 2, 3], [4, 5, 6]]\n *\n * math.reshape([[1, 2], [3, 4]], [1, 4])\n * // returns Array [[1, 2, 3, 4]]\n *\n * math.reshape([[1, 2], [3, 4]], [4])\n * // returns Array [1, 2, 3, 4]\n *\n * const x = math.matrix([1, 2, 3, 4, 5, 6, 7, 8])\n * math.reshape(x, [2, 2, 2])\n * // returns Matrix [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]\n *\n * math.reshape([1, 2, 3, 4], [-1, 2])\n * // returns Matrix [[1, 2], [3, 4]]\n *\n * See also:\n *\n * size, squeeze, resize\n *\n * @param {Array | Matrix | *} x Matrix to be reshaped\n * @param {number[]} sizes One dimensional array with integral sizes for\n * each dimension. One -1 is allowed as wildcard,\n * which calculates this dimension automatically.\n *\n * @return {* | Array | Matrix} A reshaped clone of matrix `x`\n *\n * @throws {TypeError} If `sizes` does not contain solely integers\n * @throws {DimensionError} If the product of the new dimension sizes does\n * not equal that of the old ones\n */\n return typed(name, {\n 'Matrix, Array': function MatrixArray(x, sizes) {\n return x.reshape(sizes, true);\n },\n 'Array, Array': function ArrayArray(x, sizes) {\n sizes.forEach(function (size) {\n if (!isInteger(size)) {\n throw new TypeError('Invalid size for dimension: ' + size);\n }\n });\n return arrayReshape(x, sizes);\n }\n });\n});","import { factory } from '../../utils/factory.js';\nimport { xgcdNumber } from '../../plain/number/index.js';\nvar name = 'xgcd';\nvar dependencies = ['typed', 'config', 'matrix', 'BigNumber'];\nexport var createXgcd = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n matrix,\n BigNumber\n } = _ref;\n /**\n * Calculate the extended greatest common divisor for two values.\n * See https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm.\n *\n * Syntax:\n *\n * math.xgcd(a, b)\n *\n * Examples:\n *\n * math.xgcd(8, 12) // returns [4, -1, 1]\n * math.gcd(8, 12) // returns 4\n * math.xgcd(36163, 21199) // returns [1247, -7, 12]\n *\n * See also:\n *\n * gcd, lcm\n *\n * @param {number | BigNumber} a An integer number\n * @param {number | BigNumber} b An integer number\n * @return {Array} Returns an array containing 3 integers `[div, m, n]`\n * where `div = gcd(a, b)` and `a*m + b*n = div`\n */\n return typed(name, {\n 'number, number': function numberNumber(a, b) {\n var res = xgcdNumber(a, b);\n return config.matrix === 'Array' ? res : matrix(res);\n },\n 'BigNumber, BigNumber': _xgcdBigNumber\n // TODO: implement support for Fraction\n });\n\n /**\n * Calculate xgcd for two BigNumbers\n * @param {BigNumber} a\n * @param {BigNumber} b\n * @return {BigNumber[]} result\n * @private\n */\n function _xgcdBigNumber(a, b) {\n // source: https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm\n var\n // used to swap two variables\n t;\n var\n // quotient\n q;\n var\n // remainder\n r;\n var zero = new BigNumber(0);\n var one = new BigNumber(1);\n var x = zero;\n var lastx = one;\n var y = one;\n var lasty = zero;\n if (!a.isInt() || !b.isInt()) {\n throw new Error('Parameters in function xgcd must be integer numbers');\n }\n while (!b.isZero()) {\n q = a.div(b).floor();\n r = a.mod(b);\n t = x;\n x = lastx.minus(q.times(x));\n lastx = t;\n t = y;\n y = lasty.minus(q.times(y));\n lasty = t;\n a = b;\n b = r;\n }\n var res;\n if (a.lt(zero)) {\n res = [a.neg(), lastx.neg(), lasty.neg()];\n } else {\n res = [a, !a.isZero() ? lastx : 0, lasty];\n }\n return config.matrix === 'Array' ? res : matrix(res);\n }\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","'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","import { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nimport { log10Number } from '../../plain/number/index.js';\nvar name = 'log10';\nvar dependencies = ['typed', 'config', 'Complex'];\nexport var createLog10 = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n Complex: _Complex\n } = _ref;\n /**\n * Calculate the 10-base logarithm of a value. This is the same as calculating `log(x, 10)`.\n *\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.log10(x)\n *\n * Examples:\n *\n * math.log10(0.00001) // returns -5\n * math.log10(10000) // returns 4\n * math.log(10000) / math.log(10) // returns 4\n * math.pow(10, 4) // returns 10000\n *\n * See also:\n *\n * exp, log, log1p, log2\n *\n * @param {number | BigNumber | Complex | Array | Matrix} x\n * Value for which to calculate the logarithm.\n * @return {number | BigNumber | Complex | Array | Matrix}\n * Returns the 10-base logarithm of `x`\n */\n return typed(name, {\n number: function number(x) {\n if (x >= 0 || config.predictable) {\n return log10Number(x);\n } else {\n // negative value -> complex value computation\n return new _Complex(x, 0).log().div(Math.LN10);\n }\n },\n Complex: function Complex(x) {\n return new _Complex(x).log().div(Math.LN10);\n },\n BigNumber: function BigNumber(x) {\n if (!x.isNegative() || config.predictable) {\n return x.log();\n } else {\n // downgrade to number, return Complex valued result\n return new _Complex(x.toNumber(), 0).log().div(Math.LN10);\n }\n },\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))\n });\n});","import { factory } from '../../utils/factory.js';\nimport { acothNumber } from '../../plain/number/index.js';\nvar name = 'acoth';\nvar dependencies = ['typed', 'config', 'Complex', 'BigNumber'];\nexport var createAcoth = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n Complex,\n BigNumber: _BigNumber\n } = _ref;\n /**\n * Calculate the hyperbolic arccotangent of a value,\n * defined as `acoth(x) = atanh(1/x) = (ln((x+1)/x) + ln(x/(x-1))) / 2`.\n *\n * To avoid confusion with the matrix hyperbolic arccotangent, this\n * function does not apply to matrices.\n *\n * Syntax:\n *\n * math.acoth(x)\n *\n * Examples:\n *\n * math.acoth(0.5) // returns 0.8047189562170503\n *\n * See also:\n *\n * acsch, asech\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} Hyperbolic arccotangent of x\n */\n return typed(name, {\n number: function number(x) {\n if (x >= 1 || x <= -1 || config.predictable) {\n return acothNumber(x);\n }\n return new Complex(x, 0).acoth();\n },\n Complex: function Complex(x) {\n return x.acoth();\n },\n BigNumber: function BigNumber(x) {\n return new _BigNumber(1).div(x).atanh();\n }\n });\n});","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-right');\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, {\n trimEnd: trimEnd\n});\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","import { factory } from '../../utils/factory.js';\nimport { atanhNumber } from '../../plain/number/index.js';\nvar name = 'atanh';\nvar dependencies = ['typed', 'config', 'Complex'];\nexport var createAtanh = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n Complex\n } = _ref;\n /**\n * Calculate the hyperbolic arctangent of a value,\n * defined as `atanh(x) = ln((1 + x)/(1 - x)) / 2`.\n *\n * To avoid confusion with the matrix hyperbolic arctangent, this function\n * does not apply to matrices.\n *\n * Syntax:\n *\n * math.atanh(x)\n *\n * Examples:\n *\n * math.atanh(0.5) // returns 0.5493061443340549\n *\n * See also:\n *\n * acosh, asinh\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} Hyperbolic arctangent of x\n */\n return typed(name, {\n number: function number(x) {\n if (x <= 1 && x >= -1 || config.predictable) {\n return atanhNumber(x);\n }\n return new Complex(x, 0).atanh();\n },\n Complex: function Complex(x) {\n return x.atanh();\n },\n BigNumber: function BigNumber(x) {\n return x.atanh();\n }\n });\n});","import { clone } from '../../../utils/object.js';\nexport function createComplexEigs(_ref) {\n var {\n addScalar,\n subtract,\n flatten,\n multiply,\n multiplyScalar,\n divideScalar,\n sqrt,\n abs,\n bignumber,\n diag,\n inv,\n qr,\n usolve,\n usolveAll,\n equal,\n complex,\n larger,\n smaller,\n matrixFromColumns,\n dot\n } = _ref;\n /**\n * @param {number[][]} arr the matrix to find eigenvalues of\n * @param {number} N size of the matrix\n * @param {number|BigNumber} prec precision, anything lower will be considered zero\n * @param {'number'|'BigNumber'|'Complex'} type\n * @param {boolean} findVectors should we find eigenvectors?\n *\n * @returns {{ values: number[], vectors: number[][] }}\n */\n function complexEigs(arr, N, prec, type, findVectors) {\n if (findVectors === undefined) {\n findVectors = true;\n }\n\n // TODO check if any row/col are zero except the diagonal\n\n // make sure corresponding rows and columns have similar magnitude\n // important because of numerical stability\n // MODIFIES arr by side effect!\n var R = balance(arr, N, prec, type, findVectors);\n\n // R is the row transformation matrix\n // arr = A' = R A R⁻¹, A is the original matrix\n // (if findVectors is false, R is undefined)\n // (And so to return to original matrix: A = R⁻¹ arr R)\n\n // TODO if magnitudes of elements vary over many orders,\n // move greatest elements to the top left corner\n\n // using similarity transformations, reduce the matrix\n // to Hessenberg form (upper triangular plus one subdiagonal row)\n // updates the transformation matrix R with new row operationsq\n // MODIFIES arr by side effect!\n reduceToHessenberg(arr, N, prec, type, findVectors, R);\n // still true that original A = R⁻¹ arr R)\n\n // find eigenvalues\n var {\n values,\n C\n } = iterateUntilTriangular(arr, N, prec, type, findVectors);\n\n // values is the list of eigenvalues, C is the column\n // transformation matrix that transforms arr, the hessenberg\n // matrix, to upper triangular\n // (So U = C⁻¹ arr C and the relationship between current arr\n // and original A is unchanged.)\n\n var vectors;\n if (findVectors) {\n vectors = findEigenvectors(arr, N, C, R, values, prec, type);\n vectors = matrixFromColumns(...vectors);\n }\n return {\n values,\n vectors\n };\n }\n\n /**\n * @param {number[][]} arr\n * @param {number} N\n * @param {number} prec\n * @param {'number'|'BigNumber'|'Complex'} type\n * @returns {number[][]}\n */\n function balance(arr, N, prec, type, findVectors) {\n var big = type === 'BigNumber';\n var cplx = type === 'Complex';\n var realzero = big ? bignumber(0) : 0;\n var one = big ? bignumber(1) : cplx ? complex(1) : 1;\n var realone = big ? bignumber(1) : 1;\n\n // base of the floating-point arithmetic\n var radix = big ? bignumber(10) : 2;\n var radixSq = multiplyScalar(radix, radix);\n\n // the diagonal transformation matrix R\n var Rdiag;\n if (findVectors) {\n Rdiag = Array(N).fill(one);\n }\n\n // this isn't the only time we loop thru the matrix...\n var last = false;\n while (!last) {\n // ...haha I'm joking! unless...\n last = true;\n for (var i = 0; i < N; i++) {\n // compute the taxicab norm of i-th column and row\n // TODO optimize for complex numbers\n var colNorm = realzero;\n var rowNorm = realzero;\n for (var j = 0; j < N; j++) {\n if (i === j) continue;\n var c = abs(arr[i][j]); // should be real\n colNorm = addScalar(colNorm, c);\n rowNorm = addScalar(rowNorm, c);\n }\n if (!equal(colNorm, 0) && !equal(rowNorm, 0)) {\n // find integer power closest to balancing the matrix\n // (we want to scale only by integer powers of radix,\n // so that we don't lose any precision due to round-off)\n\n var f = realone;\n var _c = colNorm;\n var rowDivRadix = divideScalar(rowNorm, radix);\n var rowMulRadix = multiplyScalar(rowNorm, radix);\n while (smaller(_c, rowDivRadix)) {\n _c = multiplyScalar(_c, radixSq);\n f = multiplyScalar(f, radix);\n }\n while (larger(_c, rowMulRadix)) {\n _c = divideScalar(_c, radixSq);\n f = divideScalar(f, radix);\n }\n\n // check whether balancing is needed\n // condition = (c + rowNorm) / f < 0.95 * (colNorm + rowNorm)\n var condition = smaller(divideScalar(addScalar(_c, rowNorm), f), multiplyScalar(addScalar(colNorm, rowNorm), 0.95));\n\n // apply balancing similarity transformation\n if (condition) {\n // we should loop once again to check whether\n // another rebalancing is needed\n last = false;\n var g = divideScalar(1, f);\n for (var _j = 0; _j < N; _j++) {\n if (i === _j) {\n continue;\n }\n arr[i][_j] = multiplyScalar(arr[i][_j], f);\n arr[_j][i] = multiplyScalar(arr[_j][i], g);\n }\n\n // keep track of transformations\n if (findVectors) {\n Rdiag[i] = multiplyScalar(Rdiag[i], f);\n }\n }\n }\n }\n }\n\n // return the diagonal row transformation matrix\n return diag(Rdiag);\n }\n\n /**\n * @param {number[][]} arr\n * @param {number} N\n * @param {number} prec\n * @param {'number'|'BigNumber'|'Complex'} type\n * @param {boolean} findVectors\n * @param {number[][]} R the row transformation matrix that will be modified\n */\n function reduceToHessenberg(arr, N, prec, type, findVectors, R) {\n var big = type === 'BigNumber';\n var cplx = type === 'Complex';\n var zero = big ? bignumber(0) : cplx ? complex(0) : 0;\n if (big) {\n prec = bignumber(prec);\n }\n for (var i = 0; i < N - 2; i++) {\n // Find the largest subdiag element in the i-th col\n\n var maxIndex = 0;\n var max = zero;\n for (var j = i + 1; j < N; j++) {\n var el = arr[j][i];\n if (smaller(abs(max), abs(el))) {\n max = el;\n maxIndex = j;\n }\n }\n\n // This col is pivoted, no need to do anything\n if (smaller(abs(max), prec)) {\n continue;\n }\n if (maxIndex !== i + 1) {\n // Interchange maxIndex-th and (i+1)-th row\n var tmp1 = arr[maxIndex];\n arr[maxIndex] = arr[i + 1];\n arr[i + 1] = tmp1;\n\n // Interchange maxIndex-th and (i+1)-th column\n for (var _j2 = 0; _j2 < N; _j2++) {\n var tmp2 = arr[_j2][maxIndex];\n arr[_j2][maxIndex] = arr[_j2][i + 1];\n arr[_j2][i + 1] = tmp2;\n }\n\n // keep track of transformations\n if (findVectors) {\n var tmp3 = R[maxIndex];\n R[maxIndex] = R[i + 1];\n R[i + 1] = tmp3;\n }\n }\n\n // Reduce following rows and columns\n for (var _j3 = i + 2; _j3 < N; _j3++) {\n var n = divideScalar(arr[_j3][i], max);\n if (n === 0) {\n continue;\n }\n\n // from j-th row subtract n-times (i+1)th row\n for (var k = 0; k < N; k++) {\n arr[_j3][k] = subtract(arr[_j3][k], multiplyScalar(n, arr[i + 1][k]));\n }\n\n // to (i+1)th column add n-times j-th column\n for (var _k = 0; _k < N; _k++) {\n arr[_k][i + 1] = addScalar(arr[_k][i + 1], multiplyScalar(n, arr[_k][_j3]));\n }\n\n // keep track of transformations\n if (findVectors) {\n for (var _k2 = 0; _k2 < N; _k2++) {\n R[_j3][_k2] = subtract(R[_j3][_k2], multiplyScalar(n, R[i + 1][_k2]));\n }\n }\n }\n }\n return R;\n }\n\n /**\n * @returns {{values: values, C: Matrix}}\n * @see Press, Wiliams: Numerical recipes in Fortran 77\n * @see https://en.wikipedia.org/wiki/QR_algorithm\n */\n function iterateUntilTriangular(A, N, prec, type, findVectors) {\n var big = type === 'BigNumber';\n var cplx = type === 'Complex';\n var one = big ? bignumber(1) : cplx ? complex(1) : 1;\n if (big) {\n prec = bignumber(prec);\n }\n\n // The Francis Algorithm\n // The core idea of this algorithm is that doing successive\n // A' = Q⁺AQ transformations will eventually converge to block-\n // upper-triangular with diagonal blocks either 1x1 or 2x2.\n // The Q here is the one from the QR decomposition, A = QR.\n // Since the eigenvalues of a block-upper-triangular matrix are\n // the eigenvalues of its diagonal blocks and we know how to find\n // eigenvalues of a 2x2 matrix, we know the eigenvalues of A.\n\n var arr = clone(A);\n\n // the list of converged eigenvalues\n var lambdas = [];\n\n // size of arr, which will get smaller as eigenvalues converge\n var n = N;\n\n // the diagonal of the block-diagonal matrix that turns\n // converged 2x2 matrices into upper triangular matrices\n var Sdiag = [];\n\n // N×N matrix describing the overall transformation done during the QR algorithm\n var Qtotal = findVectors ? diag(Array(N).fill(one)) : undefined;\n\n // n×n matrix describing the QR transformations done since last convergence\n var Qpartial = findVectors ? diag(Array(n).fill(one)) : undefined;\n\n // last eigenvalue converged before this many steps\n var lastConvergenceBefore = 0;\n while (lastConvergenceBefore <= 100) {\n lastConvergenceBefore += 1;\n\n // TODO if the convergence is slow, do something clever\n\n // Perform the factorization\n\n var k = 0; // TODO set close to an eigenvalue\n\n for (var i = 0; i < n; i++) {\n arr[i][i] = subtract(arr[i][i], k);\n }\n\n // TODO do an implicit QR transformation\n var {\n Q,\n R\n } = qr(arr);\n arr = multiply(R, Q);\n for (var _i = 0; _i < n; _i++) {\n arr[_i][_i] = addScalar(arr[_i][_i], k);\n }\n\n // keep track of transformations\n if (findVectors) {\n Qpartial = multiply(Qpartial, Q);\n }\n\n // The rightmost diagonal element converged to an eigenvalue\n if (n === 1 || smaller(abs(arr[n - 1][n - 2]), prec)) {\n lastConvergenceBefore = 0;\n lambdas.push(arr[n - 1][n - 1]);\n\n // keep track of transformations\n if (findVectors) {\n Sdiag.unshift([[1]]);\n inflateMatrix(Qpartial, N);\n Qtotal = multiply(Qtotal, Qpartial);\n if (n > 1) {\n Qpartial = diag(Array(n - 1).fill(one));\n }\n }\n\n // reduce the matrix size\n n -= 1;\n arr.pop();\n for (var _i2 = 0; _i2 < n; _i2++) {\n arr[_i2].pop();\n }\n\n // The rightmost diagonal 2x2 block converged\n } else if (n === 2 || smaller(abs(arr[n - 2][n - 3]), prec)) {\n lastConvergenceBefore = 0;\n var ll = eigenvalues2x2(arr[n - 2][n - 2], arr[n - 2][n - 1], arr[n - 1][n - 2], arr[n - 1][n - 1]);\n lambdas.push(...ll);\n\n // keep track of transformations\n if (findVectors) {\n Sdiag.unshift(jordanBase2x2(arr[n - 2][n - 2], arr[n - 2][n - 1], arr[n - 1][n - 2], arr[n - 1][n - 1], ll[0], ll[1], prec, type));\n inflateMatrix(Qpartial, N);\n Qtotal = multiply(Qtotal, Qpartial);\n if (n > 2) {\n Qpartial = diag(Array(n - 2).fill(one));\n }\n }\n\n // reduce the matrix size\n n -= 2;\n arr.pop();\n arr.pop();\n for (var _i3 = 0; _i3 < n; _i3++) {\n arr[_i3].pop();\n arr[_i3].pop();\n }\n }\n if (n === 0) {\n break;\n }\n }\n\n // standard sorting\n lambdas.sort((a, b) => +subtract(abs(a), abs(b)));\n\n // the algorithm didn't converge\n if (lastConvergenceBefore > 100) {\n var err = Error('The eigenvalues failed to converge. Only found these eigenvalues: ' + lambdas.join(', '));\n err.values = lambdas;\n err.vectors = [];\n throw err;\n }\n\n // combine the overall QR transformation Qtotal with the subsequent\n // transformation S that turns the diagonal 2x2 blocks to upper triangular\n var C = findVectors ? multiply(Qtotal, blockDiag(Sdiag, N)) : undefined;\n return {\n values: lambdas,\n C\n };\n }\n\n /**\n * @param {Matrix} A hessenberg-form matrix\n * @param {number} N size of A\n * @param {Matrix} C column transformation matrix that turns A into upper triangular\n * @param {Matrix} R similarity that turns original matrix into A\n * @param {number[]} values array of eigenvalues of A\n * @param {'number'|'BigNumber'|'Complex'} type\n * @returns {number[][]} eigenvalues\n */\n function findEigenvectors(A, N, C, R, values, prec, type) {\n var Cinv = inv(C);\n var U = multiply(Cinv, A, C);\n var big = type === 'BigNumber';\n var cplx = type === 'Complex';\n var zero = big ? bignumber(0) : cplx ? complex(0) : 0;\n var one = big ? bignumber(1) : cplx ? complex(1) : 1;\n\n // turn values into a kind of \"multiset\"\n // this way it is easier to find eigenvectors\n var uniqueValues = [];\n var multiplicities = [];\n for (var λ of values) {\n var i = indexOf(uniqueValues, λ, equal);\n if (i === -1) {\n uniqueValues.push(λ);\n multiplicities.push(1);\n } else {\n multiplicities[i] += 1;\n }\n }\n\n // find eigenvectors by solving U − λE = 0\n // TODO replace with an iterative eigenvector algorithm\n // (this one might fail for imprecise eigenvalues)\n\n var vectors = [];\n var len = uniqueValues.length;\n var b = Array(N).fill(zero);\n var E = diag(Array(N).fill(one));\n\n // eigenvalues for which usolve failed (due to numerical error)\n var failedLambdas = [];\n var _loop = function _loop() {\n var λ = uniqueValues[_i4];\n var S = subtract(U, multiply(λ, E)); // the characteristic matrix\n\n var solutions = usolveAll(S, b);\n solutions.shift(); // ignore the null vector\n\n // looks like we missed something, try inverse iteration\n while (solutions.length < multiplicities[_i4]) {\n var approxVec = inverseIterate(S, N, solutions, prec, type);\n if (approxVec == null) {\n // no more vectors were found\n failedLambdas.push(λ);\n break;\n }\n solutions.push(approxVec);\n }\n\n // Transform back into original array coordinates\n var correction = multiply(inv(R), C);\n solutions = solutions.map(v => multiply(correction, v));\n vectors.push(...solutions.map(v => flatten(v)));\n };\n for (var _i4 = 0; _i4 < len; _i4++) {\n _loop();\n }\n if (failedLambdas.length !== 0) {\n var err = new Error('Failed to find eigenvectors for the following eigenvalues: ' + failedLambdas.join(', '));\n err.values = values;\n err.vectors = vectors;\n throw err;\n }\n return vectors;\n }\n\n /**\n * Compute the eigenvalues of an 2x2 matrix\n * @return {[number,number]}\n */\n function eigenvalues2x2(a, b, c, d) {\n // λ± = ½ trA ± ½ √( tr²A - 4 detA )\n var trA = addScalar(a, d);\n var detA = subtract(multiplyScalar(a, d), multiplyScalar(b, c));\n var x = multiplyScalar(trA, 0.5);\n var y = multiplyScalar(sqrt(subtract(multiplyScalar(trA, trA), multiplyScalar(4, detA))), 0.5);\n return [addScalar(x, y), subtract(x, y)];\n }\n\n /**\n * For an 2x2 matrix compute the transformation matrix S,\n * so that SAS⁻¹ is an upper triangular matrix\n * @return {[[number,number],[number,number]]}\n * @see https://math.berkeley.edu/~ogus/old/Math_54-05/webfoils/jordan.pdf\n * @see http://people.math.harvard.edu/~knill/teaching/math21b2004/exhibits/2dmatrices/index.html\n */\n function jordanBase2x2(a, b, c, d, l1, l2, prec, type) {\n var big = type === 'BigNumber';\n var cplx = type === 'Complex';\n var zero = big ? bignumber(0) : cplx ? complex(0) : 0;\n var one = big ? bignumber(1) : cplx ? complex(1) : 1;\n\n // matrix is already upper triangular\n // return an identity matrix\n if (smaller(abs(c), prec)) {\n return [[one, zero], [zero, one]];\n }\n\n // matrix is diagonalizable\n // return its eigenvectors as columns\n if (larger(abs(subtract(l1, l2)), prec)) {\n return [[subtract(l1, d), subtract(l2, d)], [c, c]];\n }\n\n // matrix is not diagonalizable\n // compute off-diagonal elements of N = A - λI\n // N₁₂ = 0 ⇒ S = ( N⃗₁, I⃗₁ )\n // N₁₂ ≠ 0 ⇒ S = ( N⃗₂, I⃗₂ )\n\n var na = subtract(a, l1);\n var nb = subtract(b, l1);\n var nc = subtract(c, l1);\n var nd = subtract(d, l1);\n if (smaller(abs(nb), prec)) {\n return [[na, one], [nc, zero]];\n } else {\n return [[nb, zero], [nd, one]];\n }\n }\n\n /**\n * Enlarge the matrix from n×n to N×N, setting the new\n * elements to 1 on diagonal and 0 elsewhere\n */\n function inflateMatrix(arr, N) {\n // add columns\n for (var i = 0; i < arr.length; i++) {\n arr[i].push(...Array(N - arr[i].length).fill(0));\n }\n\n // add rows\n for (var _i5 = arr.length; _i5 < N; _i5++) {\n arr.push(Array(N).fill(0));\n arr[_i5][_i5] = 1;\n }\n return arr;\n }\n\n /**\n * Create a block-diagonal matrix with the given square matrices on the diagonal\n * @param {Matrix[] | number[][][]} arr array of matrices to be placed on the diagonal\n * @param {number} N the size of the resulting matrix\n */\n function blockDiag(arr, N) {\n var M = [];\n for (var i = 0; i < N; i++) {\n M[i] = Array(N).fill(0);\n }\n var I = 0;\n for (var sub of arr) {\n var n = sub.length;\n for (var _i6 = 0; _i6 < n; _i6++) {\n for (var j = 0; j < n; j++) {\n M[I + _i6][I + j] = sub[_i6][j];\n }\n }\n I += n;\n }\n return M;\n }\n\n /**\n * Finds the index of an element in an array using a custom equality function\n * @template T\n * @param {Array} arr array in which to search\n * @param {T} el the element to find\n * @param {function(T, T): boolean} fn the equality function, first argument is an element of `arr`, the second is always `el`\n * @returns {number} the index of `el`, or -1 when it's not in `arr`\n */\n function indexOf(arr, el, fn) {\n for (var i = 0; i < arr.length; i++) {\n if (fn(arr[i], el)) {\n return i;\n }\n }\n return -1;\n }\n\n /**\n * Provided a near-singular upper-triangular matrix A and a list of vectors,\n * finds an eigenvector of A with the smallest eigenvalue, which is orthogonal\n * to each vector in the list\n * @template T\n * @param {T[][]} A near-singular square matrix\n * @param {number} N dimension\n * @param {T[][]} orthog list of vectors\n * @param {number} prec epsilon\n * @param {'number'|'BigNumber'|'Complex'} type\n * @return {T[] | null} eigenvector\n *\n * @see Numerical Recipes for Fortran 77 – 11.7 Eigenvalues or Eigenvectors by Inverse Iteration\n */\n function inverseIterate(A, N, orthog, prec, type) {\n var largeNum = type === 'BigNumber' ? bignumber(1000) : 1000;\n var b; // the vector\n\n // you better choose a random vector before I count to five\n var i = 0;\n while (true) {\n b = randomOrthogonalVector(N, orthog, type);\n b = usolve(A, b);\n if (larger(norm(b), largeNum)) {\n break;\n }\n if (++i >= 5) {\n return null;\n }\n }\n\n // you better converge before I count to ten\n i = 0;\n while (true) {\n var c = usolve(A, b);\n if (smaller(norm(orthogonalComplement(b, [c])), prec)) {\n break;\n }\n if (++i >= 10) {\n return null;\n }\n b = normalize(c);\n }\n return b;\n }\n\n /**\n * Generates a random unit vector of dimension N, orthogonal to each vector in the list\n * @template T\n * @param {number} N dimension\n * @param {T[][]} orthog list of vectors\n * @param {'number'|'BigNumber'|'Complex'} type\n * @returns {T[]} random vector\n */\n function randomOrthogonalVector(N, orthog, type) {\n var big = type === 'BigNumber';\n var cplx = type === 'Complex';\n\n // generate random vector with the correct type\n var v = Array(N).fill(0).map(_ => 2 * Math.random() - 1);\n if (big) {\n v = v.map(n => bignumber(n));\n }\n if (cplx) {\n v = v.map(n => complex(n));\n }\n\n // project to orthogonal complement\n v = orthogonalComplement(v, orthog);\n\n // normalize\n return normalize(v, type);\n }\n\n /**\n * Project vector v to the orthogonal complement of an array of vectors\n */\n function orthogonalComplement(v, orthog) {\n for (var w of orthog) {\n // v := v − (w, v)/∥w∥² w\n v = subtract(v, multiply(divideScalar(dot(w, v), dot(w, w)), w));\n }\n return v;\n }\n\n /**\n * Calculate the norm of a vector.\n * We can't use math.norm because factory can't handle circular dependency.\n * Seriously, I'm really fed up with factory.\n */\n function norm(v) {\n return abs(sqrt(dot(v, v)));\n }\n\n /**\n * Normalize a vector\n * @template T\n * @param {T[]} v\n * @param {'number'|'BigNumber'|'Complex'} type\n * @returns {T[]} normalized vec\n */\n function normalize(v, type) {\n var big = type === 'BigNumber';\n var cplx = type === 'Complex';\n var one = big ? bignumber(1) : cplx ? complex(1) : 1;\n return multiply(divideScalar(one, norm(v)), v);\n }\n return complexEigs;\n}","import { clone } from '../../../utils/object.js';\nexport function createRealSymmetric(_ref) {\n var {\n config,\n addScalar,\n subtract,\n abs,\n atan,\n cos,\n sin,\n multiplyScalar,\n inv,\n bignumber,\n multiply,\n add\n } = _ref;\n /**\n * @param {number[] | BigNumber[]} arr\n * @param {number} N\n * @param {number} prec\n * @param {'number' | 'BigNumber'} type\n */\n function main(arr, N) {\n var prec = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : config.epsilon;\n var type = arguments.length > 3 ? arguments[3] : undefined;\n if (type === 'number') {\n return diag(arr, prec);\n }\n if (type === 'BigNumber') {\n return diagBig(arr, prec);\n }\n throw TypeError('Unsupported data type: ' + type);\n }\n\n // diagonalization implementation for number (efficient)\n function diag(x, precision) {\n var N = x.length;\n var e0 = Math.abs(precision / N);\n var psi;\n var Sij = new Array(N);\n // Sij is Identity Matrix\n for (var i = 0; i < N; i++) {\n Sij[i] = createArray(N, 0);\n Sij[i][i] = 1.0;\n }\n // initial error\n var Vab = getAij(x);\n while (Math.abs(Vab[1]) >= Math.abs(e0)) {\n var _i = Vab[0][0];\n var j = Vab[0][1];\n psi = getTheta(x[_i][_i], x[j][j], x[_i][j]);\n x = x1(x, psi, _i, j);\n Sij = Sij1(Sij, psi, _i, j);\n Vab = getAij(x);\n }\n var Ei = createArray(N, 0); // eigenvalues\n for (var _i2 = 0; _i2 < N; _i2++) {\n Ei[_i2] = x[_i2][_i2];\n }\n return sorting(clone(Ei), clone(Sij));\n }\n\n // diagonalization implementation for bigNumber\n function diagBig(x, precision) {\n var N = x.length;\n var e0 = abs(precision / N);\n var psi;\n var Sij = new Array(N);\n // Sij is Identity Matrix\n for (var i = 0; i < N; i++) {\n Sij[i] = createArray(N, 0);\n Sij[i][i] = 1.0;\n }\n // initial error\n var Vab = getAijBig(x);\n while (abs(Vab[1]) >= abs(e0)) {\n var _i3 = Vab[0][0];\n var j = Vab[0][1];\n psi = getThetaBig(x[_i3][_i3], x[j][j], x[_i3][j]);\n x = x1Big(x, psi, _i3, j);\n Sij = Sij1Big(Sij, psi, _i3, j);\n Vab = getAijBig(x);\n }\n var Ei = createArray(N, 0); // eigenvalues\n for (var _i4 = 0; _i4 < N; _i4++) {\n Ei[_i4] = x[_i4][_i4];\n }\n // return [clone(Ei), clone(Sij)]\n return sorting(clone(Ei), clone(Sij));\n }\n\n // get angle\n function getTheta(aii, ajj, aij) {\n var denom = ajj - aii;\n if (Math.abs(denom) <= config.epsilon) {\n return Math.PI / 4.0;\n } else {\n return 0.5 * Math.atan(2.0 * aij / (ajj - aii));\n }\n }\n\n // get angle\n function getThetaBig(aii, ajj, aij) {\n var denom = subtract(ajj, aii);\n if (abs(denom) <= config.epsilon) {\n return bignumber(-1).acos().div(4);\n } else {\n return multiplyScalar(0.5, atan(multiply(2.0, aij, inv(denom))));\n }\n }\n\n // update eigvec\n function Sij1(Sij, theta, i, j) {\n var N = Sij.length;\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n var Ski = createArray(N, 0);\n var Skj = createArray(N, 0);\n for (var k = 0; k < N; k++) {\n Ski[k] = c * Sij[k][i] - s * Sij[k][j];\n Skj[k] = s * Sij[k][i] + c * Sij[k][j];\n }\n for (var _k = 0; _k < N; _k++) {\n Sij[_k][i] = Ski[_k];\n Sij[_k][j] = Skj[_k];\n }\n return Sij;\n }\n // update eigvec for overlap\n function Sij1Big(Sij, theta, i, j) {\n var N = Sij.length;\n var c = cos(theta);\n var s = sin(theta);\n var Ski = createArray(N, bignumber(0));\n var Skj = createArray(N, bignumber(0));\n for (var k = 0; k < N; k++) {\n Ski[k] = subtract(multiplyScalar(c, Sij[k][i]), multiplyScalar(s, Sij[k][j]));\n Skj[k] = addScalar(multiplyScalar(s, Sij[k][i]), multiplyScalar(c, Sij[k][j]));\n }\n for (var _k2 = 0; _k2 < N; _k2++) {\n Sij[_k2][i] = Ski[_k2];\n Sij[_k2][j] = Skj[_k2];\n }\n return Sij;\n }\n\n // update matrix\n function x1Big(Hij, theta, i, j) {\n var N = Hij.length;\n var c = bignumber(cos(theta));\n var s = bignumber(sin(theta));\n var c2 = multiplyScalar(c, c);\n var s2 = multiplyScalar(s, s);\n var Aki = createArray(N, bignumber(0));\n var Akj = createArray(N, bignumber(0));\n // 2cs Hij\n var csHij = multiply(bignumber(2), c, s, Hij[i][j]);\n // Aii\n var Aii = addScalar(subtract(multiplyScalar(c2, Hij[i][i]), csHij), multiplyScalar(s2, Hij[j][j]));\n var Ajj = add(multiplyScalar(s2, Hij[i][i]), csHij, multiplyScalar(c2, Hij[j][j]));\n // 0 to i\n for (var k = 0; k < N; k++) {\n Aki[k] = subtract(multiplyScalar(c, Hij[i][k]), multiplyScalar(s, Hij[j][k]));\n Akj[k] = addScalar(multiplyScalar(s, Hij[i][k]), multiplyScalar(c, Hij[j][k]));\n }\n // Modify Hij\n Hij[i][i] = Aii;\n Hij[j][j] = Ajj;\n Hij[i][j] = bignumber(0);\n Hij[j][i] = bignumber(0);\n // 0 to i\n for (var _k3 = 0; _k3 < N; _k3++) {\n if (_k3 !== i && _k3 !== j) {\n Hij[i][_k3] = Aki[_k3];\n Hij[_k3][i] = Aki[_k3];\n Hij[j][_k3] = Akj[_k3];\n Hij[_k3][j] = Akj[_k3];\n }\n }\n return Hij;\n }\n\n // update matrix\n function x1(Hij, theta, i, j) {\n var N = Hij.length;\n var c = Math.cos(theta);\n var s = Math.sin(theta);\n var c2 = c * c;\n var s2 = s * s;\n var Aki = createArray(N, 0);\n var Akj = createArray(N, 0);\n // Aii\n var Aii = c2 * Hij[i][i] - 2 * c * s * Hij[i][j] + s2 * Hij[j][j];\n var Ajj = s2 * Hij[i][i] + 2 * c * s * Hij[i][j] + c2 * Hij[j][j];\n // 0 to i\n for (var k = 0; k < N; k++) {\n Aki[k] = c * Hij[i][k] - s * Hij[j][k];\n Akj[k] = s * Hij[i][k] + c * Hij[j][k];\n }\n // Modify Hij\n Hij[i][i] = Aii;\n Hij[j][j] = Ajj;\n Hij[i][j] = 0;\n Hij[j][i] = 0;\n // 0 to i\n for (var _k4 = 0; _k4 < N; _k4++) {\n if (_k4 !== i && _k4 !== j) {\n Hij[i][_k4] = Aki[_k4];\n Hij[_k4][i] = Aki[_k4];\n Hij[j][_k4] = Akj[_k4];\n Hij[_k4][j] = Akj[_k4];\n }\n }\n return Hij;\n }\n\n // get max off-diagonal value from Upper Diagonal\n function getAij(Mij) {\n var N = Mij.length;\n var maxMij = 0;\n var maxIJ = [0, 1];\n for (var i = 0; i < N; i++) {\n for (var j = i + 1; j < N; j++) {\n if (Math.abs(maxMij) < Math.abs(Mij[i][j])) {\n maxMij = Math.abs(Mij[i][j]);\n maxIJ = [i, j];\n }\n }\n }\n return [maxIJ, maxMij];\n }\n\n // get max off-diagonal value from Upper Diagonal\n function getAijBig(Mij) {\n var N = Mij.length;\n var maxMij = 0;\n var maxIJ = [0, 1];\n for (var i = 0; i < N; i++) {\n for (var j = i + 1; j < N; j++) {\n if (abs(maxMij) < abs(Mij[i][j])) {\n maxMij = abs(Mij[i][j]);\n maxIJ = [i, j];\n }\n }\n }\n return [maxIJ, maxMij];\n }\n\n // sort results\n function sorting(E, S) {\n var N = E.length;\n var values = Array(N);\n var vectors = Array(N);\n for (var k = 0; k < N; k++) {\n vectors[k] = Array(N);\n }\n for (var i = 0; i < N; i++) {\n var minID = 0;\n var minE = E[0];\n for (var j = 0; j < E.length; j++) {\n if (abs(E[j]) < abs(minE)) {\n minID = j;\n minE = E[minID];\n }\n }\n values[i] = E.splice(minID, 1)[0];\n for (var _k5 = 0; _k5 < N; _k5++) {\n vectors[_k5][i] = S[_k5][minID];\n S[_k5].splice(minID, 1);\n }\n }\n return {\n values,\n vectors\n };\n }\n\n /**\n * Create an array of a certain size and fill all items with an initial value\n * @param {number} size\n * @param {number} value\n * @return {number[]}\n */\n function createArray(size, value) {\n // TODO: as soon as all browsers support Array.fill, use that instead (IE doesn't support it)\n var array = new Array(size);\n for (var i = 0; i < size; i++) {\n array[i] = value;\n }\n return array;\n }\n return main;\n}","import { factory } from '../../utils/factory.js';\nimport { format } from '../../utils/string.js';\nimport { createComplexEigs } from './eigs/complexEigs.js';\nimport { createRealSymmetric } from './eigs/realSymetric.js';\nimport { typeOf, isNumber, isBigNumber, isComplex, isFraction } from '../../utils/is.js';\nvar name = 'eigs';\n\n// The absolute state of math.js's dependency system:\nvar dependencies = ['config', 'typed', 'matrix', 'addScalar', 'equal', 'subtract', 'abs', 'atan', 'cos', 'sin', 'multiplyScalar', 'divideScalar', 'inv', 'bignumber', 'multiply', 'add', 'larger', 'column', 'flatten', 'number', 'complex', 'sqrt', 'diag', 'qr', 'usolve', 'usolveAll', 'im', 're', 'smaller', 'matrixFromColumns', 'dot'];\nexport var createEigs = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n config,\n typed,\n matrix,\n addScalar,\n subtract,\n equal,\n abs,\n atan,\n cos,\n sin,\n multiplyScalar,\n divideScalar,\n inv,\n bignumber,\n multiply,\n add,\n larger,\n column,\n flatten,\n number,\n complex,\n sqrt,\n diag,\n qr,\n usolve,\n usolveAll,\n im,\n re,\n smaller,\n matrixFromColumns,\n dot\n } = _ref;\n var doRealSymetric = createRealSymmetric({\n config,\n addScalar,\n subtract,\n column,\n flatten,\n equal,\n abs,\n atan,\n cos,\n sin,\n multiplyScalar,\n inv,\n bignumber,\n complex,\n multiply,\n add\n });\n var doComplexEigs = createComplexEigs({\n config,\n addScalar,\n subtract,\n multiply,\n multiplyScalar,\n flatten,\n divideScalar,\n sqrt,\n abs,\n bignumber,\n diag,\n qr,\n inv,\n usolve,\n usolveAll,\n equal,\n complex,\n larger,\n smaller,\n matrixFromColumns,\n dot\n });\n\n /**\n * Compute eigenvalues and eigenvectors of a matrix. The eigenvalues are sorted by their absolute value, ascending.\n * An eigenvalue with multiplicity k will be listed k times. The eigenvectors are returned as columns of a matrix –\n * the eigenvector that belongs to the j-th eigenvalue in the list (eg. `values[j]`) is the j-th column (eg. `column(vectors, j)`).\n * If the algorithm fails to converge, it will throw an error – in that case, however, you may still find useful information\n * in `err.values` and `err.vectors`.\n *\n * Syntax:\n *\n * math.eigs(x, [prec])\n *\n * Examples:\n *\n * const { eigs, multiply, column, transpose } = math\n * const H = [[5, 2.3], [2.3, 1]]\n * const ans = eigs(H) // returns {values: [E1,E2...sorted], vectors: [v1,v2.... corresponding vectors as columns]}\n * const E = ans.values\n * const U = ans.vectors\n * multiply(H, column(U, 0)) // returns multiply(E[0], column(U, 0))\n * const UTxHxU = multiply(transpose(U), H, U) // diagonalizes H\n * E[0] == UTxHxU[0][0] // returns true\n *\n * See also:\n *\n * inv\n *\n * @param {Array | Matrix} x Matrix to be diagonalized\n *\n * @param {number | BigNumber} [prec] Precision, default value: 1e-15\n * @return {{values: Array|Matrix, vectors: Array|Matrix}} Object containing an array of eigenvalues and a matrix with eigenvectors as columns.\n *\n */\n return typed('eigs', {\n Array: function Array(x) {\n var mat = matrix(x);\n return computeValuesAndVectors(mat);\n },\n 'Array, number|BigNumber': function ArrayNumberBigNumber(x, prec) {\n var mat = matrix(x);\n return computeValuesAndVectors(mat, prec);\n },\n Matrix: function Matrix(mat) {\n var {\n values,\n vectors\n } = computeValuesAndVectors(mat);\n return {\n values: matrix(values),\n vectors: matrix(vectors)\n };\n },\n 'Matrix, number|BigNumber': function MatrixNumberBigNumber(mat, prec) {\n var {\n values,\n vectors\n } = computeValuesAndVectors(mat, prec);\n return {\n values: matrix(values),\n vectors: matrix(vectors)\n };\n }\n });\n function computeValuesAndVectors(mat, prec) {\n if (prec === undefined) {\n prec = config.epsilon;\n }\n var size = mat.size();\n if (size.length !== 2 || size[0] !== size[1]) {\n throw new RangeError('Matrix must be square (size: ' + format(size) + ')');\n }\n var arr = mat.toArray();\n var N = size[0];\n if (isReal(arr, N, prec)) {\n coerceReal(arr, N);\n if (isSymmetric(arr, N, prec)) {\n var _type = coerceTypes(mat, arr, N);\n return doRealSymetric(arr, N, prec, _type);\n }\n }\n var type = coerceTypes(mat, arr, N);\n return doComplexEigs(arr, N, prec, type);\n }\n\n /** @return {boolean} */\n function isSymmetric(arr, N, prec) {\n for (var i = 0; i < N; i++) {\n for (var j = i; j < N; j++) {\n // TODO proper comparison of bignum and frac\n if (larger(bignumber(abs(subtract(arr[i][j], arr[j][i]))), prec)) {\n return false;\n }\n }\n }\n return true;\n }\n\n /** @return {boolean} */\n function isReal(arr, N, prec) {\n for (var i = 0; i < N; i++) {\n for (var j = 0; j < N; j++) {\n // TODO proper comparison of bignum and frac\n if (larger(bignumber(abs(im(arr[i][j]))), prec)) {\n return false;\n }\n }\n }\n return true;\n }\n function coerceReal(arr, N) {\n for (var i = 0; i < N; i++) {\n for (var j = 0; j < N; j++) {\n arr[i][j] = re(arr[i][j]);\n }\n }\n }\n\n /** @return {'number' | 'BigNumber' | 'Complex'} */\n function coerceTypes(mat, arr, N) {\n /** @type {string} */\n var type = mat.datatype();\n if (type === 'number' || type === 'BigNumber' || type === 'Complex') {\n return type;\n }\n var hasNumber = false;\n var hasBig = false;\n var hasComplex = false;\n for (var i = 0; i < N; i++) {\n for (var j = 0; j < N; j++) {\n var el = arr[i][j];\n if (isNumber(el) || isFraction(el)) {\n hasNumber = true;\n } else if (isBigNumber(el)) {\n hasBig = true;\n } else if (isComplex(el)) {\n hasComplex = true;\n } else {\n throw TypeError('Unsupported type in Matrix: ' + typeOf(el));\n }\n }\n }\n if (hasBig && hasComplex) {\n console.warn('Complex BigNumbers not supported, this operation will lose precission.');\n }\n if (hasComplex) {\n for (var _i = 0; _i < N; _i++) {\n for (var _j = 0; _j < N; _j++) {\n arr[_i][_j] = complex(arr[_i][_j]);\n }\n }\n return 'Complex';\n }\n if (hasBig) {\n for (var _i2 = 0; _i2 < N; _i2++) {\n for (var _j2 = 0; _j2 < N; _j2++) {\n arr[_i2][_j2] = bignumber(arr[_i2][_j2]);\n }\n }\n return 'BigNumber';\n }\n if (hasNumber) {\n for (var _i3 = 0; _i3 < N; _i3++) {\n for (var _j3 = 0; _j3 < N; _j3++) {\n arr[_i3][_j3] = number(arr[_i3][_j3]);\n }\n }\n return 'number';\n } else {\n throw TypeError('Matrix contains unsupported types only.');\n }\n }\n});","import { isInteger } from '../../utils/number.js';\nimport { product } from '../../utils/product.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'permutations';\nvar dependencies = ['typed', 'factorial'];\nexport var createPermutations = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n factorial\n } = _ref;\n /**\n * Compute the number of ways of obtaining an ordered subset of `k` elements\n * from a set of `n` elements.\n *\n * Permutations only takes integer arguments.\n * The following condition must be enforced: k <= n.\n *\n * Syntax:\n *\n * math.permutations(n)\n * math.permutations(n, k)\n *\n * Examples:\n *\n * math.permutations(5) // 120\n * math.permutations(5, 3) // 60\n *\n * See also:\n *\n * combinations, combinationsWithRep, factorial\n *\n * @param {number | BigNumber} n The number of objects in total\n * @param {number | BigNumber} [k] The number of objects in the subset\n * @return {number | BigNumber} The number of permutations\n */\n return typed(name, {\n 'number | BigNumber': factorial,\n 'number, number': function numberNumber(n, k) {\n if (!isInteger(n) || n < 0) {\n throw new TypeError('Positive integer value expected in function permutations');\n }\n if (!isInteger(k) || k < 0) {\n throw new TypeError('Positive integer value expected in function permutations');\n }\n if (k > n) {\n throw new TypeError('second argument k must be less than or equal to first argument n');\n }\n // Permute n objects, k at a time\n return product(n - k + 1, n);\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(n, k) {\n var result, i;\n if (!isPositiveInteger(n) || !isPositiveInteger(k)) {\n throw new TypeError('Positive integer value expected in function permutations');\n }\n if (k.gt(n)) {\n throw new TypeError('second argument k must be less than or equal to first argument n');\n }\n var one = n.mul(0).add(1);\n result = one;\n for (i = n.minus(k).plus(1); i.lte(n); i = i.plus(1)) {\n result = result.times(i);\n }\n return result;\n }\n\n // TODO: implement support for collection in permutations\n });\n});\n\n/**\n * Test whether BigNumber n is a positive integer\n * @param {BigNumber} n\n * @returns {boolean} isPositiveInteger\n */\nfunction isPositiveInteger(n) {\n return n.isInteger() && n.gte(0);\n}","import Decimal from 'decimal.js';\nimport { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nimport { nearlyEqual } from '../../utils/number.js';\nimport { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';\nvar name = 'floor';\nvar dependencies = ['typed', 'config', 'round', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];\nexport var createFloorNumber = /* #__PURE__ */factory(name, ['typed', 'config', 'round'], _ref => {\n var {\n typed,\n config,\n round\n } = _ref;\n return typed(name, {\n number: function number(x) {\n if (nearlyEqual(x, round(x), config.epsilon)) {\n return round(x);\n } else {\n return Math.floor(x);\n }\n },\n 'number, number': function numberNumber(x, n) {\n if (nearlyEqual(x, round(x, n), config.epsilon)) {\n return round(x, n);\n } else {\n var [number, exponent] = \"\".concat(x, \"e\").split('e');\n var result = Math.floor(Number(\"\".concat(number, \"e\").concat(Number(exponent) + n)));\n [number, exponent] = \"\".concat(result, \"e\").split('e');\n return Number(\"\".concat(number, \"e\").concat(Number(exponent) - n));\n }\n }\n });\n});\nexport var createFloor = /* #__PURE__ */factory(name, dependencies, _ref2 => {\n var {\n typed,\n config,\n round,\n matrix,\n equalScalar,\n zeros,\n DenseMatrix\n } = _ref2;\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matAlgo14xDs = createMatAlgo14xDs({\n typed\n });\n var floorNumber = createFloorNumber({\n typed,\n config,\n round\n });\n /**\n * Round a value towards minus infinity.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.floor(x)\n * math.floor(x, n)\n *\n * Examples:\n *\n * math.floor(3.2) // returns number 3\n * math.floor(3.8) // returns number 3\n * math.floor(-4.2) // returns number -5\n * math.floor(-4.7) // returns number -5\n *\n * math.floor(3.212, 2) // returns number 3.21\n * math.floor(3.288, 2) // returns number 3.28\n * math.floor(-4.212, 2) // returns number -4.22\n * math.floor(-4.782, 2) // returns number -4.79\n *\n * const c = math.complex(3.24, -2.71)\n * math.floor(c) // returns Complex 3 - 3i\n * math.floor(c, 1) // returns Complex 3.2 -2.8i\n *\n * math.floor([3.2, 3.8, -4.7]) // returns Array [3, 3, -5]\n * math.floor([3.21, 3.82, -4.71], 1) // returns Array [3.2, 3.8, -4.8]\n *\n * math.floor(math.tau, [2, 3]) // returns Array [6.28, 6.283]\n *\n * // Note that floor(array, array) currently not implemented.\n *\n * See also:\n *\n * ceil, fix, round\n *\n * @param {number | BigNumber | Fraction | Complex | Array | Matrix} x Number to be rounded\n * @param {number | BigNumber | Array} [n=0] Number of decimals\n * @return {number | BigNumber | Fraction | Complex | Array | Matrix} Rounded value\n */\n return typed('floor', {\n number: floorNumber.signatures.number,\n 'number,number': floorNumber.signatures['number,number'],\n Complex: function Complex(x) {\n return x.floor();\n },\n 'Complex, number': function ComplexNumber(x, n) {\n return x.floor(n);\n },\n 'Complex, BigNumber': function ComplexBigNumber(x, n) {\n return x.floor(n.toNumber());\n },\n BigNumber: function BigNumber(x) {\n if (bigNearlyEqual(x, round(x), config.epsilon)) {\n return round(x);\n } else {\n return x.floor();\n }\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, n) {\n if (bigNearlyEqual(x, round(x, n), config.epsilon)) {\n return round(x, n);\n } else {\n return x.toDecimalPlaces(n.toNumber(), Decimal.ROUND_FLOOR);\n }\n },\n Fraction: function Fraction(x) {\n return x.floor();\n },\n 'Fraction, number': function FractionNumber(x, n) {\n return x.floor(n);\n },\n 'Fraction, BigNumber': function FractionBigNumber(x, n) {\n return x.floor(n.toNumber());\n },\n 'Array | Matrix': typed.referToSelf(self => x => {\n // deep map collection, skip zeros since floor(0) = 0\n return deepMap(x, self, true);\n }),\n 'Array, number | BigNumber': typed.referToSelf(self => (x, n) => {\n // deep map collection, skip zeros since ceil(0) = 0\n return deepMap(x, i => self(i, n), true);\n }),\n 'SparseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {\n return matAlgo11xS0s(x, y, self, false);\n }),\n 'DenseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {\n return matAlgo14xDs(x, y, self, false);\n }),\n 'number | Complex | Fraction | BigNumber, Array': typed.referToSelf(self => (x, y) => {\n // use matrix implementation\n return matAlgo14xDs(matrix(y), x, self, true).valueOf();\n }),\n 'number | Complex | Fraction | BigNumber, Matrix': typed.referToSelf(self => (x, y) => {\n if (equalScalar(x, 0)) return zeros(y.size(), y.storage());\n if (y.storage() === 'dense') {\n return matAlgo14xDs(y, x, self, true);\n }\n return matAlgo12xSfs(y, x, self, true);\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","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","import { factory } from '../../utils/factory.js';\nimport { createTrigUnit } from './trigUnit.js';\nvar name = 'sin';\nvar dependencies = ['typed'];\nexport var createSin = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n var trigUnit = createTrigUnit({\n typed\n });\n\n /**\n * Calculate the sine of a value.\n *\n * To avoid confusion with the matrix sine, this function does not apply\n * to matrices.\n *\n * Syntax:\n *\n * math.sin(x)\n *\n * Examples:\n *\n * math.sin(2) // returns number 0.9092974268256813\n * math.sin(math.pi / 4) // returns number 0.7071067811865475\n * math.sin(math.unit(90, 'deg')) // returns number 1\n * math.sin(math.unit(30, 'deg')) // returns number 0.5\n *\n * const angle = 0.2\n * math.pow(math.sin(angle), 2) + math.pow(math.cos(angle), 2) // returns number ~1\n *\n * See also:\n *\n * cos, tan\n *\n * @param {number | BigNumber | Complex | Unit} x Function input\n * @return {number | BigNumber | Complex} Sine of x\n */\n return typed(name, {\n number: Math.sin,\n 'Complex | BigNumber': x => x.sin()\n }, trigUnit);\n});","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","import { factory } from '../../utils/factory.js';\nimport { isMatrix } from '../../utils/is.js';\nimport { clone } from '../../utils/object.js';\nimport { validateIndex } from '../../utils/array.js';\nvar name = 'column';\nvar dependencies = ['typed', 'Index', 'matrix', 'range'];\nexport var createColumn = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n Index,\n matrix,\n range\n } = _ref;\n /**\n * Return a column from a Matrix.\n *\n * Syntax:\n *\n * math.column(value, index)\n *\n * Example:\n *\n * // get a column\n * const d = [[1, 2], [3, 4]]\n * math.column(d, 1) // returns [[2], [4]]\n *\n * See also:\n *\n * row\n *\n * @param {Array | Matrix } value An array or matrix\n * @param {number} column The index of the column\n * @return {Array | Matrix} The retrieved column\n */\n return typed(name, {\n 'Matrix, number': _column,\n 'Array, number': function ArrayNumber(value, column) {\n return _column(matrix(clone(value)), column).valueOf();\n }\n });\n\n /**\n * Retrieve a column of a matrix\n * @param {Matrix } value A matrix\n * @param {number} column The index of the column\n * @return {Matrix} The retrieved column\n */\n function _column(value, column) {\n // check dimensions\n if (value.size().length !== 2) {\n throw new Error('Only two dimensional matrix is supported');\n }\n validateIndex(column, value.size()[1]);\n var rowRange = range(0, value.size()[0]);\n var index = new Index(rowRange, column);\n var result = value.subset(index);\n return isMatrix(result) ? result : matrix([[result]]);\n }\n});","import { factory } from '../../utils/factory.js';\nimport { acotNumber } from '../../plain/number/index.js';\nvar name = 'acot';\nvar dependencies = ['typed', 'BigNumber'];\nexport var createAcot = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n BigNumber: _BigNumber\n } = _ref;\n /**\n * Calculate the inverse cotangent of a value, defined as `acot(x) = atan(1/x)`.\n *\n * To avoid confusion with the matrix arccotanget, this function does not\n * apply to matrices.\n *\n * Syntax:\n *\n * math.acot(x)\n *\n * Examples:\n *\n * math.acot(0.5) // returns number 1.1071487177940904\n * math.acot(2) // returns number 0.4636476090008061\n * math.acot(math.cot(1.5)) // returns number 1.5\n *\n * See also:\n *\n * cot, atan\n *\n * @param {number | BigNumber| Complex} x Function input\n * @return {number | BigNumber| Complex} The arc cotangent of x\n */\n return typed(name, {\n number: acotNumber,\n Complex: function Complex(x) {\n return x.acot();\n },\n BigNumber: function BigNumber(x) {\n return new _BigNumber(1).div(x).atan();\n }\n });\n});","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","import { deepMap } from '../../utils/collection.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'factorial';\nvar dependencies = ['typed', 'gamma'];\nexport var createFactorial = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n gamma\n } = _ref;\n /**\n * Compute the factorial of a value\n *\n * Factorial only supports an integer value as argument.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.factorial(n)\n *\n * Examples:\n *\n * math.factorial(5) // returns 120\n * math.factorial(3) // returns 6\n *\n * See also:\n *\n * combinations, combinationsWithRep, gamma, permutations\n *\n * @param {number | BigNumber | Array | Matrix} n An integer number\n * @return {number | BigNumber | Array | Matrix} The factorial of `n`\n */\n return typed(name, {\n number: function number(n) {\n if (n < 0) {\n throw new Error('Value must be non-negative');\n }\n return gamma(n + 1);\n },\n BigNumber: function BigNumber(n) {\n if (n.isNegative()) {\n throw new Error('Value must be non-negative');\n }\n return gamma(n.plus(1));\n },\n 'Array | Matrix': typed.referToSelf(self => n => deepMap(n, self))\n });\n});","import { isInteger } from '../../utils/number.js';\nvar n1 = 'number';\nexport function isIntegerNumber(x) {\n return isInteger(x);\n}\nisIntegerNumber.signature = n1;\nexport function isNegativeNumber(x) {\n return x < 0;\n}\nisNegativeNumber.signature = n1;\nexport function isPositiveNumber(x) {\n return x > 0;\n}\nisPositiveNumber.signature = n1;\nexport function isZeroNumber(x) {\n return x === 0;\n}\nisZeroNumber.signature = n1;\nexport function isNaNNumber(x) {\n return Number.isNaN(x);\n}\nisNaNNumber.signature = n1;","import { bitAndBigNumber } from '../../utils/bignumber/bitwise.js';\nimport { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatAlgo06xS0S0 } from '../../type/matrix/utils/matAlgo06xS0S0.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { bitAndNumber } from '../../plain/number/index.js';\nvar name = 'bitAnd';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'concat'];\nexport var createBitAnd = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n concat\n } = _ref;\n var matAlgo02xDS0 = createMatAlgo02xDS0({\n typed,\n equalScalar\n });\n var matAlgo06xS0S0 = createMatAlgo06xS0S0({\n typed,\n equalScalar\n });\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Bitwise AND two values, `x & y`.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.bitAnd(x, y)\n *\n * Examples:\n *\n * math.bitAnd(53, 131) // returns number 1\n *\n * math.bitAnd([1, 12, 31], 42) // returns Array [0, 8, 10]\n *\n * See also:\n *\n * bitNot, bitOr, bitXor, leftShift, rightArithShift, rightLogShift\n *\n * @param {number | BigNumber | Array | Matrix} x First value to and\n * @param {number | BigNumber | Array | Matrix} y Second value to and\n * @return {number | BigNumber | Array | Matrix} AND of `x` and `y`\n */\n return typed(name, {\n 'number, number': bitAndNumber,\n 'BigNumber, BigNumber': bitAndBigNumber\n }, matrixAlgorithmSuite({\n SS: matAlgo06xS0S0,\n DS: matAlgo02xDS0,\n Ss: matAlgo11xS0s\n }));\n});","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\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 while (p = p.next) ret += s + p.data;\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 while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\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 return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\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 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) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\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 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) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","import { factory } from '../../../utils/factory.js';\nimport { createSolveValidation } from './utils/solveValidation.js';\nvar name = 'usolveAll';\nvar dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'equalScalar', 'DenseMatrix'];\nexport var createUsolveAll = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n divideScalar,\n multiplyScalar,\n subtractScalar,\n equalScalar,\n DenseMatrix\n } = _ref;\n var solveValidation = createSolveValidation({\n DenseMatrix\n });\n\n /**\n * Finds all solutions of a linear equation system by backward substitution. Matrix must be an upper triangular matrix.\n *\n * `U * x = b`\n *\n * Syntax:\n *\n * math.usolveAll(U, b)\n *\n * Examples:\n *\n * const a = [[-2, 3], [2, 1]]\n * const b = [11, 9]\n * const x = usolveAll(a, b) // [ [[8], [9]] ]\n *\n * See also:\n *\n * usolve, lup, slu, usolve, lusolve\n *\n * @param {Matrix, Array} U A N x N matrix or array (U)\n * @param {Matrix, Array} b A column vector with the b values\n *\n * @return {DenseMatrix[] | Array[]} An array of affine-independent column vectors (x) that solve the linear system\n */\n return typed(name, {\n 'SparseMatrix, Array | Matrix': function SparseMatrixArrayMatrix(m, b) {\n return _sparseBackwardSubstitution(m, b);\n },\n 'DenseMatrix, Array | Matrix': function DenseMatrixArrayMatrix(m, b) {\n return _denseBackwardSubstitution(m, b);\n },\n 'Array, Array | Matrix': function ArrayArrayMatrix(a, b) {\n var m = matrix(a);\n var R = _denseBackwardSubstitution(m, b);\n return R.map(r => r.valueOf());\n }\n });\n function _denseBackwardSubstitution(m, b_) {\n // the algorithm is derived from\n // https://www.overleaf.com/read/csvgqdxggyjv\n\n // array of right-hand sides\n var B = [solveValidation(m, b_, true)._data.map(e => e[0])];\n var M = m._data;\n var rows = m._size[0];\n var columns = m._size[1];\n\n // loop columns backwards\n for (var i = columns - 1; i >= 0; i--) {\n var L = B.length;\n\n // loop right-hand sides\n for (var k = 0; k < L; k++) {\n var b = B[k];\n if (!equalScalar(M[i][i], 0)) {\n // non-singular row\n\n b[i] = divideScalar(b[i], M[i][i]);\n for (var j = i - 1; j >= 0; j--) {\n // b[j] -= b[i] * M[j,i]\n b[j] = subtractScalar(b[j], multiplyScalar(b[i], M[j][i]));\n }\n } else if (!equalScalar(b[i], 0)) {\n // singular row, nonzero RHS\n\n if (k === 0) {\n // There is no valid solution\n return [];\n } else {\n // This RHS is invalid but other solutions may still exist\n B.splice(k, 1);\n k -= 1;\n L -= 1;\n }\n } else if (k === 0) {\n // singular row, RHS is zero\n\n var bNew = [...b];\n bNew[i] = 1;\n for (var _j = i - 1; _j >= 0; _j--) {\n bNew[_j] = subtractScalar(bNew[_j], M[_j][i]);\n }\n B.push(bNew);\n }\n }\n }\n return B.map(x => new DenseMatrix({\n data: x.map(e => [e]),\n size: [rows, 1]\n }));\n }\n function _sparseBackwardSubstitution(m, b_) {\n // array of right-hand sides\n var B = [solveValidation(m, b_, true)._data.map(e => e[0])];\n var rows = m._size[0];\n var columns = m._size[1];\n var values = m._values;\n var index = m._index;\n var ptr = m._ptr;\n\n // loop columns backwards\n for (var i = columns - 1; i >= 0; i--) {\n var L = B.length;\n\n // loop right-hand sides\n for (var k = 0; k < L; k++) {\n var b = B[k];\n\n // values & indices (column i)\n var iValues = [];\n var iIndices = [];\n\n // first & last indeces in column\n var firstIndex = ptr[i];\n var lastIndex = ptr[i + 1];\n\n // find the value at [i, i]\n var Mii = 0;\n for (var j = lastIndex - 1; j >= firstIndex; j--) {\n var J = index[j];\n // check row\n if (J === i) {\n Mii = values[j];\n } else if (J < i) {\n // store upper triangular\n iValues.push(values[j]);\n iIndices.push(J);\n }\n }\n if (!equalScalar(Mii, 0)) {\n // non-singular row\n\n b[i] = divideScalar(b[i], Mii);\n\n // loop upper triangular\n for (var _j2 = 0, _lastIndex = iIndices.length; _j2 < _lastIndex; _j2++) {\n var _J = iIndices[_j2];\n b[_J] = subtractScalar(b[_J], multiplyScalar(b[i], iValues[_j2]));\n }\n } else if (!equalScalar(b[i], 0)) {\n // singular row, nonzero RHS\n\n if (k === 0) {\n // There is no valid solution\n return [];\n } else {\n // This RHS is invalid but other solutions may still exist\n B.splice(k, 1);\n k -= 1;\n L -= 1;\n }\n } else if (k === 0) {\n // singular row, RHS is zero\n\n var bNew = [...b];\n bNew[i] = 1;\n\n // loop upper triangular\n for (var _j3 = 0, _lastIndex2 = iIndices.length; _j3 < _lastIndex2; _j3++) {\n var _J2 = iIndices[_j3];\n bNew[_J2] = subtractScalar(bNew[_J2], iValues[_j3]);\n }\n B.push(bNew);\n }\n }\n }\n return B.map(x => new DenseMatrix({\n data: x.map(e => [e]),\n size: [rows, 1]\n }));\n }\n});","var timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\nvar includes = require('lodash.includes');\nvar isBoolean = require('lodash.isboolean');\nvar isInteger = require('lodash.isinteger');\nvar isNumber = require('lodash.isnumber');\nvar isPlainObject = require('lodash.isplainobject');\nvar isString = require('lodash.isstring');\nvar once = require('lodash.once');\n\nvar SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none']\nif (PS_SUPPORTED) {\n SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nvar sign_options_schema = {\n expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"expiresIn\" should be a number of seconds or string representing a timespan' },\n notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"notBefore\" should be a number of seconds or string representing a timespan' },\n audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '\"audience\" must be a string or array' },\n algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '\"algorithm\" must be a valid string enum value' },\n header: { isValid: isPlainObject, message: '\"header\" must be an object' },\n encoding: { isValid: isString, message: '\"encoding\" must be a string' },\n issuer: { isValid: isString, message: '\"issuer\" must be a string' },\n subject: { isValid: isString, message: '\"subject\" must be a string' },\n jwtid: { isValid: isString, message: '\"jwtid\" must be a string' },\n noTimestamp: { isValid: isBoolean, message: '\"noTimestamp\" must be a boolean' },\n keyid: { isValid: isString, message: '\"keyid\" must be a string' },\n mutatePayload: { isValid: isBoolean, message: '\"mutatePayload\" must be a boolean' }\n};\n\nvar registered_claims_schema = {\n iat: { isValid: isNumber, message: '\"iat\" should be a number of seconds' },\n exp: { isValid: isNumber, message: '\"exp\" should be a number of seconds' },\n nbf: { isValid: isNumber, message: '\"nbf\" should be a number of seconds' }\n};\n\nfunction validate(schema, allowUnknown, object, parameterName) {\n if (!isPlainObject(object)) {\n throw new Error('Expected \"' + parameterName + '\" to be a plain object.');\n }\n Object.keys(object)\n .forEach(function(key) {\n var validator = schema[key];\n if (!validator) {\n if (!allowUnknown) {\n throw new Error('\"' + key + '\" is not allowed in \"' + parameterName + '\"');\n }\n return;\n }\n if (!validator.isValid(object[key])) {\n throw new Error(validator.message);\n }\n });\n}\n\nfunction validateOptions(options) {\n return validate(sign_options_schema, false, options, 'options');\n}\n\nfunction validatePayload(payload) {\n return validate(registered_claims_schema, true, payload, 'payload');\n}\n\nvar options_to_payload = {\n 'audience': 'aud',\n 'issuer': 'iss',\n 'subject': 'sub',\n 'jwtid': 'jti'\n};\n\nvar options_for_objects = [\n 'expiresIn',\n 'notBefore',\n 'noTimestamp',\n 'audience',\n 'issuer',\n 'subject',\n 'jwtid',\n];\n\nmodule.exports = function (payload, secretOrPrivateKey, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n\n var isObjectPayload = typeof payload === 'object' &&\n !Buffer.isBuffer(payload);\n\n var header = Object.assign({\n alg: options.algorithm || 'HS256',\n typ: isObjectPayload ? 'JWT' : undefined,\n kid: options.keyid\n }, options.header);\n\n function failure(err) {\n if (callback) {\n return callback(err);\n }\n throw err;\n }\n\n if (!secretOrPrivateKey && options.algorithm !== 'none') {\n return failure(new Error('secretOrPrivateKey must have a value'));\n }\n\n if (typeof payload === 'undefined') {\n return failure(new Error('payload is required'));\n } else if (isObjectPayload) {\n try {\n validatePayload(payload);\n }\n catch (error) {\n return failure(error);\n }\n if (!options.mutatePayload) {\n payload = Object.assign({},payload);\n }\n } else {\n var invalid_options = options_for_objects.filter(function (opt) {\n return typeof options[opt] !== 'undefined';\n });\n\n if (invalid_options.length > 0) {\n return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload'));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') {\n return failure(new Error('Bad \"options.expiresIn\" option the payload already has an \"exp\" property.'));\n }\n\n if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') {\n return failure(new Error('Bad \"options.notBefore\" option the payload already has an \"nbf\" property.'));\n }\n\n try {\n validateOptions(options);\n }\n catch (error) {\n return failure(error);\n }\n\n var timestamp = payload.iat || Math.floor(Date.now() / 1000);\n\n if (options.noTimestamp) {\n delete payload.iat;\n } else if (isObjectPayload) {\n payload.iat = timestamp;\n }\n\n if (typeof options.notBefore !== 'undefined') {\n try {\n payload.nbf = timespan(options.notBefore, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.nbf === 'undefined') {\n return failure(new Error('\"notBefore\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') {\n try {\n payload.exp = timespan(options.expiresIn, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.exp === 'undefined') {\n return failure(new Error('\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n Object.keys(options_to_payload).forEach(function (key) {\n var claim = options_to_payload[key];\n if (typeof options[key] !== 'undefined') {\n if (typeof payload[claim] !== 'undefined') {\n return failure(new Error('Bad \"options.' + key + '\" option. The payload already has an \"' + claim + '\" property.'));\n }\n payload[claim] = options[key];\n }\n });\n\n var encoding = options.encoding || 'utf8';\n\n if (typeof callback === 'function') {\n callback = callback && once(callback);\n\n jws.createSign({\n header: header,\n privateKey: secretOrPrivateKey,\n payload: payload,\n encoding: encoding\n }).once('error', callback)\n .once('done', function (signature) {\n callback(null, signature);\n });\n } else {\n return jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding});\n }\n};\n","export var printTemplate = /\\$([\\w.]+)/g;","import { factory } from '../../utils/factory.js';\nimport { isMatrix } from '../../utils/is.js';\nvar name = 'dot';\nvar dependencies = ['typed', 'addScalar', 'multiplyScalar', 'conj', 'size'];\nexport var createDot = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n addScalar,\n multiplyScalar,\n conj,\n size\n } = _ref;\n /**\n * Calculate the dot product of two vectors. The dot product of\n * `A = [a1, a2, ..., an]` and `B = [b1, b2, ..., bn]` is defined as:\n *\n * dot(A, B) = conj(a1) * b1 + conj(a2) * b2 + ... + conj(an) * bn\n *\n * Syntax:\n *\n * math.dot(x, y)\n *\n * Examples:\n *\n * math.dot([2, 4, 1], [2, 2, 3]) // returns number 15\n * math.multiply([2, 4, 1], [2, 2, 3]) // returns number 15\n *\n * See also:\n *\n * multiply, cross\n *\n * @param {Array | Matrix} x First vector\n * @param {Array | Matrix} y Second vector\n * @return {number} Returns the dot product of `x` and `y`\n */\n return typed(name, {\n 'Array | DenseMatrix, Array | DenseMatrix': _denseDot,\n 'SparseMatrix, SparseMatrix': _sparseDot\n });\n function _validateDim(x, y) {\n var xSize = _size(x);\n var ySize = _size(y);\n var xLen, yLen;\n if (xSize.length === 1) {\n xLen = xSize[0];\n } else if (xSize.length === 2 && xSize[1] === 1) {\n xLen = xSize[0];\n } else {\n throw new RangeError('Expected a column vector, instead got a matrix of size (' + xSize.join(', ') + ')');\n }\n if (ySize.length === 1) {\n yLen = ySize[0];\n } else if (ySize.length === 2 && ySize[1] === 1) {\n yLen = ySize[0];\n } else {\n throw new RangeError('Expected a column vector, instead got a matrix of size (' + ySize.join(', ') + ')');\n }\n if (xLen !== yLen) throw new RangeError('Vectors must have equal length (' + xLen + ' != ' + yLen + ')');\n if (xLen === 0) throw new RangeError('Cannot calculate the dot product of empty vectors');\n return xLen;\n }\n function _denseDot(a, b) {\n var N = _validateDim(a, b);\n var adata = isMatrix(a) ? a._data : a;\n var adt = isMatrix(a) ? a._datatype : undefined;\n var bdata = isMatrix(b) ? b._data : b;\n var bdt = isMatrix(b) ? b._datatype : undefined;\n\n // are these 2-dimensional column vectors? (as opposed to 1-dimensional vectors)\n var aIsColumn = _size(a).length === 2;\n var bIsColumn = _size(b).length === 2;\n var add = addScalar;\n var mul = multiplyScalar;\n\n // process data types\n if (adt && bdt && adt === bdt && typeof adt === 'string') {\n var dt = adt;\n // find signatures that matches (dt, dt)\n add = typed.find(addScalar, [dt, dt]);\n mul = typed.find(multiplyScalar, [dt, dt]);\n }\n\n // both vectors 1-dimensional\n if (!aIsColumn && !bIsColumn) {\n var c = mul(conj(adata[0]), bdata[0]);\n for (var i = 1; i < N; i++) {\n c = add(c, mul(conj(adata[i]), bdata[i]));\n }\n return c;\n }\n\n // a is 1-dim, b is column\n if (!aIsColumn && bIsColumn) {\n var _c = mul(conj(adata[0]), bdata[0][0]);\n for (var _i = 1; _i < N; _i++) {\n _c = add(_c, mul(conj(adata[_i]), bdata[_i][0]));\n }\n return _c;\n }\n\n // a is column, b is 1-dim\n if (aIsColumn && !bIsColumn) {\n var _c2 = mul(conj(adata[0][0]), bdata[0]);\n for (var _i2 = 1; _i2 < N; _i2++) {\n _c2 = add(_c2, mul(conj(adata[_i2][0]), bdata[_i2]));\n }\n return _c2;\n }\n\n // both vectors are column\n if (aIsColumn && bIsColumn) {\n var _c3 = mul(conj(adata[0][0]), bdata[0][0]);\n for (var _i3 = 1; _i3 < N; _i3++) {\n _c3 = add(_c3, mul(conj(adata[_i3][0]), bdata[_i3][0]));\n }\n return _c3;\n }\n }\n function _sparseDot(x, y) {\n _validateDim(x, y);\n var xindex = x._index;\n var xvalues = x._values;\n var yindex = y._index;\n var yvalues = y._values;\n\n // TODO optimize add & mul using datatype\n var c = 0;\n var add = addScalar;\n var mul = multiplyScalar;\n var i = 0;\n var j = 0;\n while (i < xindex.length && j < yindex.length) {\n var I = xindex[i];\n var J = yindex[j];\n if (I < J) {\n i++;\n continue;\n }\n if (I > J) {\n j++;\n continue;\n }\n if (I === J) {\n c = add(c, mul(xvalues[i], yvalues[j]));\n i++;\n j++;\n }\n }\n return c;\n }\n\n // TODO remove this once #1771 is fixed\n function _size(x) {\n return isMatrix(x) ? x.size() : size(x);\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// 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}","var DefaultSection={name:\"default-section\",props:{section:{type:Object,required:!0},currentIndex:{type:[Number,String],required:!1,default:1/0},renderSuggestion:{type:Function,required:!1},normalizeItemFunction:{type:Function,required:!0},componentAttrPrefix:{type:String,required:!0},componentAttrIdAutosuggest:{type:String,required:!0}},data:function(){return{_currentIndex:this.currentIndex}},computed:{list:function(){var t=this.section,e=t.limit,n=t.data;return n.length0&&!e}},sectionConfigs:{type:Object,required:!1,default:function(){return{default:{onSelected:null}}}},onSelected:{type:Function,required:!1,default:null},componentAttrIdAutosuggest:{type:String,required:!1,default:\"autosuggest\"},componentAttrClassAutosuggestResultsContainer:{type:String,required:!1,default:null},componentAttrClassAutosuggestResults:{type:String,required:!1,default:null},componentAttrPrefix:{type:String,required:!1,default:\"autosuggest\"}},data:function(){return{internalValue:null,searchInputOriginal:null,currentIndex:null,currentItem:null,loading:!1,didSelectFromOptions:!1,defaultInputProps:{type:\"text\",autocomplete:\"off\"},clientXMouseDownInitial:null}},computed:{internal_inputProps:function(){return Object.assign({},this.defaultInputProps,this.inputProps)},listeners:function(){var t=this;return Object.assign({},this.$listeners,{input:function(t){},click:function(){t.loading=!1,t.$listeners.click&&t.$listeners.click(t.currentItem),t.$nextTick(function(){t.ensureItemVisible(t.currentItem,t.currentIndex)})},selected:function(){t.currentItem&&t.sectionConfigs[t.currentItem.name]&&t.sectionConfigs[t.currentItem.name].onSelected?t.sectionConfigs[t.currentItem.name].onSelected(t.currentItem,t.searchInputOriginal):t.sectionConfigs.default.onSelected?t.sectionConfigs.default.onSelected(null,t.searchInputOriginal):t.$listeners.selected&&t.$emit(\"selected\",t.currentItem,t.currentIndex),t.setChangeItem(null)}})},isOpen:function(){return this.shouldRenderSuggestions(this.totalResults,this.loading)},computedSections:function(){var t=this,e=0;return this.suggestions.map(function(n){if(n.data){var s,i,r,o,u=n.name?n.name:defaultSectionConfig.name,l=null;t.sectionConfigs[u]&&(s=t.sectionConfigs[u].limit,r=t.sectionConfigs[u].type,i=t.sectionConfigs[u].label,o=t.sectionConfigs[u].ulClass,l=t.sectionConfigs[u].liClass),r=r||defaultSectionConfig.type,s=(s=s||t.limit)||1/0,s=n.data.length=n?n:s.length)},0)},_componentAttrClassAutosuggestResultsContainer:function(){return this.componentAttrClassAutosuggestResultsContainer||this.componentAttrPrefix+\"__results-container\"},_componentAttrClassAutosuggestResults:function(){return this.componentAttrClassAutosuggestResults||this.componentAttrPrefix+\"__results\"}},watch:{value:{handler:function(t){this.internalValue=t},immediate:!0},isOpen:{handler:function(t,e){t!==e&&this.$emit(t?\"opened\":\"closed\")},immediate:!0}},created:function(){this.loading=!0},mounted:function(){document.addEventListener(\"mouseup\",this.onDocumentMouseUp),document.addEventListener(\"mousedown\",this.onDocumentMouseDown)},beforeDestroy:function(){document.removeEventListener(\"mouseup\",this.onDocumentMouseUp),document.removeEventListener(\"mousedown\",this.onDocumentMouseDown)},methods:{inputHandler:function(t){var e=t.target.value;this.$emit(\"input\",e),this.internalValue=e,this.didSelectFromOptions||(this.searchInputOriginal=e,this.currentIndex=null)},getSectionRef:function(t){return\"computed_section_\"+t},getItemByIndex:function(t){var e=!1;if(null===t)return e;for(var n=0;n=this.computedSections[n].start_index&&t<=this.computedSections[n].end_index){var s=t-this.computedSections[n].start_index,i=this.computedSections[n].name,r=this.$refs[this.getSectionRef(\"\"+i+n)][0];if(r){e=this.normalizeItem(this.computedSections[n].name,this.computedSections[n].type,r.section.label,r.section.liClass,r.getItemByIndex(s));break}}return e},handleKeyStroke:function(t){var e=this,n=t.keyCode;if(!([16,9,17,18,91,93].indexOf(n)>-1)){var s=!this.isOpen;if(this.loading=!1,this.didSelectFromOptions=!1,this.isOpen)switch(n){case 40:case 38:if(t.preventDefault(),38===n&&null===this.currentIndex)break;var i=40===n?1:-1,r=Math.max((parseInt(this.currentIndex)||0)+(s?0:i),INDEX_IS_FOCUSED_ON_INPUT);this.setCurrentIndex(r,this.totalResults),this.didSelectFromOptions=!0,this.totalResults>0&&this.currentIndex>=0?(this.setChangeItem(this.getItemByIndex(this.currentIndex)),this.didSelectFromOptions=!0):this.currentIndex===INDEX_IS_FOCUSED_ON_INPUT&&(this.setChangeItem(null),this.internalValue=this.searchInputOriginal,t.preventDefault()),this.$nextTick(function(){e.ensureItemVisible(e.currentItem,e.currentIndex)});break;case 13:t.preventDefault(),this.totalResults>0&&this.currentIndex>=0&&(this.setChangeItem(this.getItemByIndex(this.currentIndex),!0),this.didSelectFromOptions=!0),this.loading=!0,this.listeners.selected(this.didSelectFromOptions);break;case 27:this.loading=!0,this.currentIndex=null,this.internalValue=this.searchInputOriginal,this.$emit(\"input\",this.searchInputOriginal),t.preventDefault()}}},setChangeItem:function(t,e){if(void 0===e&&(e=!1),null!==this.currentIndex&&t){if(t){this.currentItem=t,this.$emit(\"item-changed\",t,this.currentIndex);var n=this.getSuggestionValue(t);this.internalValue=n,e&&(this.searchInputOriginal=n),this.ensureItemVisible(t,this.currentIndex)}}else this.currentItem=null,this.$emit(\"item-changed\",null,null)},normalizeItem:function(t,e,n,s,i){return{name:t,type:e,label:n,liClass:i.liClass||s,item:i}},ensureItemVisible:function(t,e,n){var s=this.$el.querySelector(n||\".\"+this._componentAttrClassAutosuggestResults);if(s){var i=s.querySelector(\"#\"+this.componentAttrPrefix+\"__results-item--\"+e);if(i){var r=s.clientHeight,o=s.scrollTop,u=i.clientHeight,l=i.offsetTop;u+l>=o+r?s.scrollTop=u+l-r:l0&&(s.scrollTop=l)}}},updateCurrentIndex:function(t){this.setCurrentIndex(t,-1,!0)},clickedOnScrollbar:function(t,e){var n=this.$el.querySelector(\".\"+this._componentAttrClassAutosuggestResults),s=n&&n.clientWidth<=e+17&&e+17<=n.clientWidth+34;return\"DIV\"===t.target.tagName&&n&&s||!1},onDocumentMouseDown:function(t){var e=t.target.getBoundingClientRect?t.target.getBoundingClientRect():0;this.clientXMouseDownInitial=t.clientX-e.left},onDocumentMouseUp:function(t){if(!this.$el.contains(t.target))return this.loading=!0,void(this.currentIndex=null);\"INPUT\"===t.target.tagName||this.clickedOnScrollbar(t,this.clientXMouseDownInitial)||(this.loading=!0,this.didSelectFromOptions=!0,this.setChangeItem(this.getItemByIndex(this.currentIndex),!0),this.listeners.selected(!0))},setCurrentIndex:function(t,e,n){void 0===e&&(e=-1),void 0===n&&(n=!1);var s=t;n||(null===this.currentIndex||t>=e)&&(s=0);this.currentIndex=s;var i=this.$el.querySelector(\"#\"+this.componentAttrPrefix+\"__results-item--\"+this.currentIndex),r=this.componentAttrPrefix+\"__results-item--highlighted\";this.$el.querySelector(\".\"+r)&&removeClass(this.$el.querySelector(\".\"+r),r),i&&addClass(i,r)}}},VueAutosuggestPlugin={install:function(t){t.component(\"vue-autosuggest-default-section\",DefaultSection),t.component(\"vue-autosuggest\",VueAutosuggest)}};\"undefined\"!=typeof window&&window.Vue&&window.Vue.use(VueAutosuggestPlugin);export default VueAutosuggestPlugin;export{VueAutosuggest,DefaultSection};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, 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} else {\n // old school shim for old browsers\n module.exports = 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","var JsonWebTokenError = function (message, error) {\n Error.call(this, message);\n if(Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = 'JsonWebTokenError';\n this.message = message;\n if (error) this.inner = error;\n};\n\nJsonWebTokenError.prototype = Object.create(Error.prototype);\nJsonWebTokenError.prototype.constructor = JsonWebTokenError;\n\nmodule.exports = JsonWebTokenError;\n","import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatAlgo14xDs } from '../../type/matrix/utils/matAlgo14xDs.js';\nimport { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';\nimport { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';\nimport { createMatAlgo08xS0Sid } from '../../type/matrix/utils/matAlgo08xS0Sid.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { createUseMatrixForArrayScalar } from './useMatrixForArrayScalar.js';\nimport { leftShiftNumber } from '../../plain/number/index.js';\nimport { leftShiftBigNumber } from '../../utils/bignumber/bitwise.js';\nvar name = 'leftShift';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix', 'concat'];\nexport var createLeftShift = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n zeros,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo01xDSid = createMatAlgo01xDSid({\n typed\n });\n var matAlgo02xDS0 = createMatAlgo02xDS0({\n typed,\n equalScalar\n });\n var matAlgo08xS0Sid = createMatAlgo08xS0Sid({\n typed,\n equalScalar\n });\n var matAlgo10xSids = createMatAlgo10xSids({\n typed,\n DenseMatrix\n });\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matAlgo14xDs = createMatAlgo14xDs({\n typed\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n var useMatrixForArrayScalar = createUseMatrixForArrayScalar({\n typed,\n matrix\n });\n\n /**\n * Bitwise left logical shift of a value x by y number of bits, `x << y`.\n * For matrices, the function is evaluated element wise.\n * For units, the function is evaluated on the best prefix base.\n *\n * Syntax:\n *\n * math.leftShift(x, y)\n *\n * Examples:\n *\n * math.leftShift(1, 2) // returns number 4\n *\n * math.leftShift([1, 2, 4], 4) // returns Array [16, 32, 64]\n *\n * See also:\n *\n * leftShift, bitNot, bitOr, bitXor, rightArithShift, rightLogShift\n *\n * @param {number | BigNumber | Array | Matrix} x Value to be shifted\n * @param {number | BigNumber} y Amount of shifts\n * @return {number | BigNumber | Array | Matrix} `x` shifted left `y` times\n */\n return typed(name, {\n 'number, number': leftShiftNumber,\n 'BigNumber, BigNumber': leftShiftBigNumber,\n 'SparseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {\n // check scalar\n if (equalScalar(y, 0)) {\n return x.clone();\n }\n return matAlgo11xS0s(x, y, self, false);\n }),\n 'DenseMatrix, number | BigNumber': typed.referToSelf(self => (x, y) => {\n // check scalar\n if (equalScalar(y, 0)) {\n return x.clone();\n }\n return matAlgo14xDs(x, y, self, false);\n }),\n 'number | BigNumber, SparseMatrix': typed.referToSelf(self => (x, y) => {\n // check scalar\n if (equalScalar(x, 0)) {\n return zeros(y.size(), y.storage());\n }\n return matAlgo10xSids(y, x, self, true);\n }),\n 'number | BigNumber, DenseMatrix': typed.referToSelf(self => (x, y) => {\n // check scalar\n if (equalScalar(x, 0)) {\n return zeros(y.size(), y.storage());\n }\n return matAlgo14xDs(y, x, self, true);\n })\n }, useMatrixForArrayScalar, matrixAlgorithmSuite({\n SS: matAlgo08xS0Sid,\n DS: matAlgo01xDSid,\n SD: matAlgo02xDS0\n }));\n});","/* eslint-disable no-loss-of-precision */\n\nimport { isInteger } from '../../utils/number.js';\nimport { product } from '../../utils/product.js';\nexport function gammaNumber(n) {\n var x;\n if (isInteger(n)) {\n if (n <= 0) {\n return isFinite(n) ? Infinity : NaN;\n }\n if (n > 171) {\n return Infinity; // Will overflow\n }\n\n return product(1, n - 1);\n }\n if (n < 0.5) {\n return Math.PI / (Math.sin(Math.PI * n) * gammaNumber(1 - n));\n }\n if (n >= 171.35) {\n return Infinity; // will overflow\n }\n\n if (n > 85.0) {\n // Extended Stirling Approx\n var twoN = n * n;\n var threeN = twoN * n;\n var fourN = threeN * n;\n var fiveN = fourN * n;\n return Math.sqrt(2 * Math.PI / n) * Math.pow(n / Math.E, n) * (1 + 1 / (12 * n) + 1 / (288 * twoN) - 139 / (51840 * threeN) - 571 / (2488320 * fourN) + 163879 / (209018880 * fiveN) + 5246819 / (75246796800 * fiveN * n));\n }\n --n;\n x = gammaP[0];\n for (var i = 1; i < gammaP.length; ++i) {\n x += gammaP[i] / (n + i);\n }\n var t = n + gammaG + 0.5;\n return Math.sqrt(2 * Math.PI) * Math.pow(t, n + 0.5) * Math.exp(-t) * x;\n}\ngammaNumber.signature = 'number';\n\n// TODO: comment on the variables g and p\n\nexport var gammaG = 4.7421875;\nexport var gammaP = [0.99999999999999709182, 57.156235665862923517, -59.597960355475491248, 14.136097974741747174, -0.49191381609762019978, 0.33994649984811888699e-4, 0.46523628927048575665e-4, -0.98374475304879564677e-4, 0.15808870322491248884e-3, -0.21026444172410488319e-3, 0.21743961811521264320e-3, -0.16431810653676389022e-3, 0.84418223983852743293e-4, -0.26190838401581408670e-4, 0.36899182659531622704e-5];\n\n// lgamma implementation ref: https://mrob.com/pub/ries/lanczos-gamma.html#code\n\n// log(2 * pi) / 2\nexport var lnSqrt2PI = 0.91893853320467274178;\nexport var lgammaG = 5; // Lanczos parameter \"g\"\nexport var lgammaN = 7; // Range of coefficients \"n\"\n\nexport var lgammaSeries = [1.000000000190015, 76.18009172947146, -86.50532032941677, 24.01409824083091, -1.231739572450155, 0.1208650973866179e-2, -0.5395239384953e-5];\nexport function lgammaNumber(n) {\n if (n < 0) return NaN;\n if (n === 0) return Infinity;\n if (!isFinite(n)) return n;\n if (n < 0.5) {\n // Use Euler's reflection formula:\n // gamma(z) = PI / (sin(PI * z) * gamma(1 - z))\n return Math.log(Math.PI / Math.sin(Math.PI * n)) - lgammaNumber(1 - n);\n }\n\n // Compute the logarithm of the Gamma function using the Lanczos method\n\n n = n - 1;\n var base = n + lgammaG + 0.5; // Base of the Lanczos exponential\n var sum = lgammaSeries[0];\n\n // We start with the terms that have the smallest coefficients and largest denominator\n for (var i = lgammaN - 1; i >= 1; i--) {\n sum += lgammaSeries[i] / (n + i);\n }\n return lnSqrt2PI + (n + 0.5) * Math.log(base) - base + Math.log(sum);\n}\nlgammaNumber.signature = 'number';","import { clone } from '../../utils/object.js';\nimport { format } from '../../utils/string.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'transpose';\nvar dependencies = ['typed', 'matrix'];\nexport var createTranspose = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix\n } = _ref;\n /**\n * Transpose a matrix. All values of the matrix are reflected over its\n * main diagonal. Only applicable to two dimensional matrices containing\n * a vector (i.e. having size `[1,n]` or `[n,1]`). One dimensional\n * vectors and scalars return the input unchanged.\n *\n * Syntax:\n *\n * math.transpose(x)\n *\n * Examples:\n *\n * const A = [[1, 2, 3], [4, 5, 6]]\n * math.transpose(A) // returns [[1, 4], [2, 5], [3, 6]]\n *\n * See also:\n *\n * diag, inv, subset, squeeze\n *\n * @param {Array | Matrix} x Matrix to be transposed\n * @return {Array | Matrix} The transposed matrix\n */\n return typed(name, {\n Array: x => transposeMatrix(matrix(x)).valueOf(),\n Matrix: transposeMatrix,\n any: clone // scalars\n });\n\n function transposeMatrix(x) {\n // matrix size\n var size = x.size();\n\n // result\n var c;\n\n // process dimensions\n switch (size.length) {\n case 1:\n // vector\n c = x.clone();\n break;\n case 2:\n {\n // rows and columns\n var rows = size[0];\n var columns = size[1];\n\n // check columns\n if (columns === 0) {\n // throw exception\n throw new RangeError('Cannot transpose a 2D matrix with no columns (size: ' + format(size) + ')');\n }\n\n // process storage format\n switch (x.storage()) {\n case 'dense':\n c = _denseTranspose(x, rows, columns);\n break;\n case 'sparse':\n c = _sparseTranspose(x, rows, columns);\n break;\n }\n }\n break;\n default:\n // multi dimensional\n throw new RangeError('Matrix must be a vector or two dimensional (size: ' + format(size) + ')');\n }\n return c;\n }\n function _denseTranspose(m, rows, columns) {\n // matrix array\n var data = m._data;\n // transposed matrix data\n var transposed = [];\n var transposedRow;\n // loop columns\n for (var j = 0; j < columns; j++) {\n // initialize row\n transposedRow = transposed[j] = [];\n // loop rows\n for (var i = 0; i < rows; i++) {\n // set data\n transposedRow[i] = clone(data[i][j]);\n }\n }\n // return matrix\n return m.createDenseMatrix({\n data: transposed,\n size: [columns, rows],\n datatype: m._datatype\n });\n }\n function _sparseTranspose(m, rows, columns) {\n // matrix arrays\n var values = m._values;\n var index = m._index;\n var ptr = m._ptr;\n // result matrices\n var cvalues = values ? [] : undefined;\n var cindex = [];\n var cptr = [];\n // row counts\n var w = [];\n for (var x = 0; x < rows; x++) {\n w[x] = 0;\n }\n // vars\n var p, l, j;\n // loop values in matrix\n for (p = 0, l = index.length; p < l; p++) {\n // number of values in row\n w[index[p]]++;\n }\n // cumulative sum\n var sum = 0;\n // initialize cptr with the cummulative sum of row counts\n for (var i = 0; i < rows; i++) {\n // update cptr\n cptr.push(sum);\n // update sum\n sum += w[i];\n // update w\n w[i] = cptr[i];\n }\n // update cptr\n cptr.push(sum);\n // loop columns\n for (j = 0; j < columns; j++) {\n // values & index in column\n for (var k0 = ptr[j], k1 = ptr[j + 1], k = k0; k < k1; k++) {\n // C values & index\n var q = w[index[k]]++;\n // C[j, i] = A[i, j]\n cindex[q] = j;\n // check we need to process values (pattern matrix)\n if (values) {\n cvalues[q] = clone(values[k]);\n }\n }\n }\n // return matrix\n return m.createSparseMatrix({\n values: cvalues,\n index: cindex,\n ptr: cptr,\n size: [columns, rows],\n datatype: m._datatype\n });\n }\n});","import { factory } from '../../utils/factory.js';\nimport { sinhNumber } from '../../plain/number/index.js';\nvar name = 'sinh';\nvar dependencies = ['typed'];\nexport var createSinh = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Calculate the hyperbolic sine of a value,\n * defined as `sinh(x) = 1/2 * (exp(x) - exp(-x))`.\n *\n * To avoid confusion with the matrix hyperbolic sine, this function does\n * not apply to matrices.\n *\n * Syntax:\n *\n * math.sinh(x)\n *\n * Examples:\n *\n * math.sinh(0.5) // returns number 0.5210953054937474\n *\n * See also:\n *\n * cosh, tanh\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} Hyperbolic sine of x\n */\n return typed(name, {\n number: sinhNumber,\n 'Complex | BigNumber': x => x.sinh()\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","import { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js';\nimport { nearlyEqual } from '../../utils/number.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { createCompareUnits } from './compareUnits.js';\nvar name = 'largerEq';\nvar dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];\nexport var createLargerEq = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n matrix,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo07xSSf = createMatAlgo07xSSf({\n typed,\n DenseMatrix\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n var compareUnits = createCompareUnits({\n typed\n });\n\n /**\n * Test whether value x is larger or equal to y.\n *\n * The function returns true when x is larger than y or the relative\n * difference between x and y is smaller than the configured epsilon. The\n * function cannot be used to compare values smaller than approximately 2.22e-16.\n *\n * For matrices, the function is evaluated element wise.\n * Strings are compared by their numerical value.\n *\n * Syntax:\n *\n * math.largerEq(x, y)\n *\n * Examples:\n *\n * math.larger(2, 1 + 1) // returns false\n * math.largerEq(2, 1 + 1) // returns true\n *\n * See also:\n *\n * equal, unequal, smaller, smallerEq, larger, compare\n *\n * @param {number | BigNumber | Fraction | boolean | Unit | string | Array | Matrix} x First value to compare\n * @param {number | BigNumber | Fraction | boolean | Unit | string | Array | Matrix} y Second value to compare\n * @return {boolean | Array | Matrix} Returns true when the x is larger or equal to y, else returns false\n */\n return typed(name, createLargerEqNumber({\n typed,\n config\n }), {\n 'boolean, boolean': (x, y) => x >= y,\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n return x.gte(y) || bigNearlyEqual(x, y, config.epsilon);\n },\n 'Fraction, Fraction': (x, y) => x.compare(y) !== -1,\n 'Complex, Complex': function ComplexComplex() {\n throw new TypeError('No ordering relation is defined for complex numbers');\n }\n }, compareUnits, matrixAlgorithmSuite({\n SS: matAlgo07xSSf,\n DS: matAlgo03xDSf,\n Ss: matAlgo12xSfs\n }));\n});\nexport var createLargerEqNumber = /* #__PURE__ */factory(name, ['typed', 'config'], _ref2 => {\n var {\n typed,\n config\n } = _ref2;\n return typed(name, {\n 'number, number': function numberNumber(x, y) {\n return x >= y || nearlyEqual(x, y, config.epsilon);\n }\n });\n});","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineBuiltInAccessor(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function sticky() {\n if (this === RegExpPrototype) return;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw new $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","module.exports = require('./lib/_stream_writable.js');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","import { factory } from '../../utils/factory.js';\nimport { isInteger } from '../../utils/number.js';\nimport { product } from '../../utils/product.js';\nvar name = 'combinationsWithRep';\nvar dependencies = ['typed'];\nexport var createCombinationsWithRep = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Compute the number of ways of picking `k` unordered outcomes from `n`\n * possibilities, allowing individual outcomes to be repeated more than once.\n *\n * CombinationsWithRep only takes integer arguments.\n * The following condition must be enforced: k <= n + k -1.\n *\n * Syntax:\n *\n * math.combinationsWithRep(n, k)\n *\n * Examples:\n *\n * math.combinationsWithRep(7, 5) // returns 462\n *\n * See also:\n *\n * combinations, permutations, factorial\n *\n * @param {number | BigNumber} n Total number of objects in the set\n * @param {number | BigNumber} k Number of objects in the subset\n * @return {number | BigNumber} Number of possible combinations with replacement.\n */\n return typed(name, {\n 'number, number': function numberNumber(n, k) {\n if (!isInteger(n) || n < 0) {\n throw new TypeError('Positive integer value expected in function combinationsWithRep');\n }\n if (!isInteger(k) || k < 0) {\n throw new TypeError('Positive integer value expected in function combinationsWithRep');\n }\n if (n < 1) {\n throw new TypeError('k must be less than or equal to n + k - 1');\n }\n if (k < n - 1) {\n var _prodrange = product(n, n + k - 1);\n return _prodrange / product(1, k);\n }\n var prodrange = product(k + 1, n + k - 1);\n return prodrange / product(1, n - 1);\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(n, k) {\n var BigNumber = n.constructor;\n var result, i;\n var one = new BigNumber(1);\n var nMinusOne = n.minus(one);\n if (!isPositiveInteger(n) || !isPositiveInteger(k)) {\n throw new TypeError('Positive integer value expected in function combinationsWithRep');\n }\n if (n.lt(one)) {\n throw new TypeError('k must be less than or equal to n + k - 1 in function combinationsWithRep');\n }\n result = one;\n if (k.lt(nMinusOne)) {\n for (i = one; i.lte(nMinusOne); i = i.plus(one)) {\n result = result.times(k.plus(i)).dividedBy(i);\n }\n } else {\n for (i = one; i.lte(k); i = i.plus(one)) {\n result = result.times(nMinusOne.plus(i)).dividedBy(i);\n }\n }\n return result;\n }\n });\n});\n\n/**\n * Test whether BigNumber n is a positive integer\n * @param {BigNumber} n\n * @returns {boolean} isPositiveInteger\n */\nfunction isPositiveInteger(n) {\n return n.isInteger() && n.gte(0);\n}","import { factory } from '../../utils/factory.js';\nimport { createTrigUnit } from './trigUnit.js';\nvar name = 'tan';\nvar dependencies = ['typed'];\nexport var createTan = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n var trigUnit = createTrigUnit({\n typed\n });\n\n /**\n * Calculate the tangent of a value. `tan(x)` is equal to `sin(x) / cos(x)`.\n *\n * To avoid confusion with the matrix tangent, this function does not apply\n * to matrices.\n *\n * Syntax:\n *\n * math.tan(x)\n *\n * Examples:\n *\n * math.tan(0.5) // returns number 0.5463024898437905\n * math.sin(0.5) / math.cos(0.5) // returns number 0.5463024898437905\n * math.tan(math.pi / 4) // returns number 1\n * math.tan(math.unit(45, 'deg')) // returns number 1\n *\n * See also:\n *\n * atan, sin, cos\n *\n * @param {number | BigNumber | Complex | Unit} x Function input\n * @return {number | BigNumber | Complex} Tangent of x\n */\n return typed(name, {\n number: Math.tan,\n 'Complex | BigNumber': x => x.tan()\n }, trigUnit);\n});","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n","import { isIndex } from '../../utils/is.js';\nimport { clone } from '../../utils/object.js';\nimport { isEmptyIndex, validateIndex, validateIndexSourceSize } from '../../utils/array.js';\nimport { getSafeProperty, setSafeProperty } from '../../utils/customs.js';\nimport { DimensionError } from '../../error/DimensionError.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'subset';\nvar dependencies = ['typed', 'matrix', 'zeros', 'add'];\nexport var createSubset = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n zeros,\n add\n } = _ref;\n /**\n * Get or set a subset of a matrix or string.\n *\n * Syntax:\n * math.subset(value, index) // retrieve a subset\n * math.subset(value, index, replacement [, defaultValue]) // replace a subset\n *\n * Examples:\n *\n * // get a subset\n * const d = [[1, 2], [3, 4]]\n * math.subset(d, math.index(1, 0)) // returns 3\n * math.subset(d, math.index([0, 1], 1)) // returns [[2], [4]]\n * math.subset(d, math.index([false, true], 0)) // returns [[3]]\n *\n * // replace a subset\n * const e = []\n * const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 0, 6]]\n * const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 0, 6], [0, 7, 0]]\n * math.subset(g, math.index([false, true], 1), 8) // returns [[5, 0, 6], [0, 8, 0]]\n *\n * // get submatrix using ranges\n * const M = [\n * [1,2,3],\n * [4,5,6],\n * [7,8,9]\n * ]\n * math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1, 2, 3], [4, 5, 6]]\n *\n * See also:\n *\n * size, resize, squeeze, index\n *\n * @param {Array | Matrix | string} matrix An array, matrix, or string\n * @param {Index} index\n * For each dimension of the target, specifies an index or a list of\n * indices to fetch or set. `subset` uses the cartesian product of\n * the indices specified in each dimension.\n * @param {*} [replacement] An array, matrix, or scalar.\n * If provided, the subset is replaced with replacement.\n * If not provided, the subset is returned\n * @param {*} [defaultValue=undefined] Default value, filled in on new entries when\n * the matrix is resized. If not provided,\n * math.matrix elements will be left undefined.\n * @return {Array | Matrix | string} Either the retrieved subset or the updated matrix.\n */\n\n return typed(name, {\n // get subset\n 'Matrix, Index': function MatrixIndex(value, index) {\n if (isEmptyIndex(index)) {\n return matrix();\n }\n validateIndexSourceSize(value, index);\n return value.subset(index);\n },\n 'Array, Index': typed.referTo('Matrix, Index', function (subsetRef) {\n return function (value, index) {\n var subsetResult = subsetRef(matrix(value), index);\n return index.isScalar() ? subsetResult : subsetResult.valueOf();\n };\n }),\n 'Object, Index': _getObjectProperty,\n 'string, Index': _getSubstring,\n // set subset\n 'Matrix, Index, any, any': function MatrixIndexAnyAny(value, index, replacement, defaultValue) {\n if (isEmptyIndex(index)) {\n return value;\n }\n validateIndexSourceSize(value, index);\n return value.clone().subset(index, _broadcastReplacement(replacement, index), defaultValue);\n },\n 'Array, Index, any, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) {\n return function (value, index, replacement, defaultValue) {\n var subsetResult = subsetRef(matrix(value), index, replacement, defaultValue);\n return subsetResult.isMatrix ? subsetResult.valueOf() : subsetResult;\n };\n }),\n 'Array, Index, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) {\n return function (value, index, replacement) {\n return subsetRef(matrix(value), index, replacement, undefined).valueOf();\n };\n }),\n 'Matrix, Index, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) {\n return function (value, index, replacement) {\n return subsetRef(value, index, replacement, undefined);\n };\n }),\n 'string, Index, string': _setSubstring,\n 'string, Index, string, string': _setSubstring,\n 'Object, Index, any': _setObjectProperty\n });\n\n /**\n * Broadcasts a replacment value to be the same size as index\n * @param {number | BigNumber | Array | Matrix} replacement Replacement value to try to broadcast\n * @param {*} index Index value\n * @returns broadcasted replacement that matches the size of index\n */\n\n function _broadcastReplacement(replacement, index) {\n if (typeof replacement === 'string') {\n throw new Error('can\\'t boradcast a string');\n }\n if (index._isScalar) {\n return replacement;\n }\n var indexSize = index.size();\n if (indexSize.every(d => d > 0)) {\n try {\n return add(replacement, zeros(indexSize));\n } catch (error) {\n return replacement;\n }\n } else {\n return replacement;\n }\n }\n});\n\n/**\n * Retrieve a subset of a string\n * @param {string} str string from which to get a substring\n * @param {Index} index An index or list of indices (character positions)\n * @returns {string} substring\n * @private\n */\nfunction _getSubstring(str, index) {\n if (!isIndex(index)) {\n // TODO: better error message\n throw new TypeError('Index expected');\n }\n if (isEmptyIndex(index)) {\n return '';\n }\n validateIndexSourceSize(Array.from(str), index);\n if (index.size().length !== 1) {\n throw new DimensionError(index.size().length, 1);\n }\n\n // validate whether the range is out of range\n var strLen = str.length;\n validateIndex(index.min()[0], strLen);\n validateIndex(index.max()[0], strLen);\n var range = index.dimension(0);\n var substr = '';\n range.forEach(function (v) {\n substr += str.charAt(v);\n });\n return substr;\n}\n\n/**\n * Replace a substring in a string\n * @param {string} str string to be replaced\n * @param {Index} index An index or list of indices (character positions)\n * @param {string} replacement Replacement string\n * @param {string} [defaultValue] Default value to be used when resizing\n * the string. is ' ' by default\n * @returns {string} result\n * @private\n */\nfunction _setSubstring(str, index, replacement, defaultValue) {\n if (!index || index.isIndex !== true) {\n // TODO: better error message\n throw new TypeError('Index expected');\n }\n if (isEmptyIndex(index)) {\n return str;\n }\n validateIndexSourceSize(Array.from(str), index);\n if (index.size().length !== 1) {\n throw new DimensionError(index.size().length, 1);\n }\n if (defaultValue !== undefined) {\n if (typeof defaultValue !== 'string' || defaultValue.length !== 1) {\n throw new TypeError('Single character expected as defaultValue');\n }\n } else {\n defaultValue = ' ';\n }\n var range = index.dimension(0);\n var len = range.size()[0];\n if (len !== replacement.length) {\n throw new DimensionError(range.size()[0], replacement.length);\n }\n\n // validate whether the range is out of range\n var strLen = str.length;\n validateIndex(index.min()[0]);\n validateIndex(index.max()[0]);\n\n // copy the string into an array with characters\n var chars = [];\n for (var i = 0; i < strLen; i++) {\n chars[i] = str.charAt(i);\n }\n range.forEach(function (v, i) {\n chars[v] = replacement.charAt(i[0]);\n });\n\n // initialize undefined characters with a space\n if (chars.length > strLen) {\n for (var _i = strLen - 1, _len = chars.length; _i < _len; _i++) {\n if (!chars[_i]) {\n chars[_i] = defaultValue;\n }\n }\n }\n return chars.join('');\n}\n\n/**\n * Retrieve a property from an object\n * @param {Object} object\n * @param {Index} index\n * @return {*} Returns the value of the property\n * @private\n */\nfunction _getObjectProperty(object, index) {\n if (isEmptyIndex(index)) {\n return undefined;\n }\n if (index.size().length !== 1) {\n throw new DimensionError(index.size(), 1);\n }\n var key = index.dimension(0);\n if (typeof key !== 'string') {\n throw new TypeError('String expected as index to retrieve an object property');\n }\n return getSafeProperty(object, key);\n}\n\n/**\n * Set a property on an object\n * @param {Object} object\n * @param {Index} index\n * @param {*} replacement\n * @return {*} Returns the updated object\n * @private\n */\nfunction _setObjectProperty(object, index, replacement) {\n if (isEmptyIndex(index)) {\n return object;\n }\n if (index.size().length !== 1) {\n throw new DimensionError(index.size(), 1);\n }\n var key = index.dimension(0);\n if (typeof key !== 'string') {\n throw new TypeError('String expected as index to retrieve an object property');\n }\n\n // clone the object, and apply the property to the clone\n var updated = clone(object);\n setSafeProperty(updated, key, replacement);\n return updated;\n}","import { factory } from '../../utils/factory.js';\nvar name = 'sylvester';\nvar dependencies = ['typed', 'schur', 'matrixFromColumns', 'matrix', 'multiply', 'range', 'concat', 'transpose', 'index', 'subset', 'add', 'subtract', 'identity', 'lusolve', 'abs'];\nexport var createSylvester = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n schur,\n matrixFromColumns,\n matrix,\n multiply,\n range,\n concat,\n transpose,\n index,\n subset,\n add,\n subtract,\n identity,\n lusolve,\n abs\n } = _ref;\n /**\n *\n * Solves the real-valued Sylvester equation AX+XB=C for X, where A, B and C are\n * matrices of appropriate dimensions, being A and B squared. Notice that other\n * equivalent definitions for the Sylvester equation exist and this function\n * assumes the one presented in the original publication of the the Bartels-\n * Stewart algorithm, which is implemented by this function.\n * https://en.wikipedia.org/wiki/Sylvester_equation\n *\n * Syntax:\n *\n * math.sylvester(A, B, C)\n *\n * Examples:\n *\n * const A = [[-1, -2], [1, 1]]\n * const B = [[2, -1], [1, -2]]\n * const C = [[-3, 2], [3, 0]]\n * math.sylvester(A, B, C) // returns DenseMatrix [[-0.25, 0.25], [1.5, -1.25]]\n *\n * See also:\n *\n * schur, lyap\n *\n * @param {Matrix | Array} A Matrix A\n * @param {Matrix | Array} B Matrix B\n * @param {Matrix | Array} C Matrix C\n * @return {Matrix | Array} Matrix X, solving the Sylvester equation\n */\n return typed(name, {\n 'Matrix, Matrix, Matrix': _sylvester,\n 'Array, Matrix, Matrix': function ArrayMatrixMatrix(A, B, C) {\n return _sylvester(matrix(A), B, C);\n },\n 'Array, Array, Matrix': function ArrayArrayMatrix(A, B, C) {\n return _sylvester(matrix(A), matrix(B), C);\n },\n 'Array, Matrix, Array': function ArrayMatrixArray(A, B, C) {\n return _sylvester(matrix(A), B, matrix(C));\n },\n 'Matrix, Array, Matrix': function MatrixArrayMatrix(A, B, C) {\n return _sylvester(A, matrix(B), C);\n },\n 'Matrix, Array, Array': function MatrixArrayArray(A, B, C) {\n return _sylvester(A, matrix(B), matrix(C));\n },\n 'Matrix, Matrix, Array': function MatrixMatrixArray(A, B, C) {\n return _sylvester(A, B, matrix(C));\n },\n 'Array, Array, Array': function ArrayArrayArray(A, B, C) {\n return _sylvester(matrix(A), matrix(B), matrix(C)).toArray();\n }\n });\n function _sylvester(A, B, C) {\n var n = B.size()[0];\n var m = A.size()[0];\n var sA = schur(A);\n var F = sA.T;\n var U = sA.U;\n var sB = schur(multiply(-1, B));\n var G = sB.T;\n var V = sB.U;\n var D = multiply(multiply(transpose(U), C), V);\n var all = range(0, m);\n var y = [];\n var hc = (a, b) => concat(a, b, 1);\n var vc = (a, b) => concat(a, b, 0);\n for (var k = 0; k < n; k++) {\n if (k < n - 1 && abs(subset(G, index(k + 1, k))) > 1e-5) {\n var RHS = vc(subset(D, index(all, k)), subset(D, index(all, k + 1)));\n for (var j = 0; j < k; j++) {\n RHS = add(RHS, vc(multiply(y[j], subset(G, index(j, k))), multiply(y[j], subset(G, index(j, k + 1)))));\n }\n var gkk = multiply(identity(m), multiply(-1, subset(G, index(k, k))));\n var gmk = multiply(identity(m), multiply(-1, subset(G, index(k + 1, k))));\n var gkm = multiply(identity(m), multiply(-1, subset(G, index(k, k + 1))));\n var gmm = multiply(identity(m), multiply(-1, subset(G, index(k + 1, k + 1))));\n var LHS = vc(hc(add(F, gkk), gmk), hc(gkm, add(F, gmm)));\n var yAux = lusolve(LHS, RHS);\n y[k] = yAux.subset(index(range(0, m), 0));\n y[k + 1] = yAux.subset(index(range(m, 2 * m), 0));\n k++;\n } else {\n var _RHS = subset(D, index(all, k));\n for (var _j = 0; _j < k; _j++) {\n _RHS = add(_RHS, multiply(y[_j], subset(G, index(_j, k))));\n }\n var _gkk = subset(G, index(k, k));\n var _LHS = subtract(F, multiply(_gkk, identity(m)));\n y[k] = lusolve(_LHS, _RHS);\n }\n }\n var Y = matrix(matrixFromColumns(...y));\n var X = multiply(U, multiply(Y, transpose(V)));\n return X;\n }\n});","'use strict';\n\nfunction getParamSize(keySize) {\n\tvar result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);\n\treturn result;\n}\n\nvar paramBytesForAlg = {\n\tES256: getParamSize(256),\n\tES384: getParamSize(384),\n\tES512: getParamSize(521)\n};\n\nfunction getParamBytesForAlg(alg) {\n\tvar paramBytes = paramBytesForAlg[alg];\n\tif (paramBytes) {\n\t\treturn paramBytes;\n\t}\n\n\tthrow new Error('Unknown algorithm \"' + alg + '\"');\n}\n\nmodule.exports = getParamBytesForAlg;\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueFormWizard=e():t.VueFormWizard=e()}(\"undefined\"!=typeof self?self:this,function(){return function(t){function e(n){if(a[n])return a[n].exports;var i=a[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var a={};return e.m=t,e.c=a,e.d=function(t,a,n){e.o(t,a)||Object.defineProperty(t,a,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var a=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(a,\"a\",a),a},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=7)}([function(t,e){t.exports=function(t,e,a,n,i,r){var s,o=t=t||{},c=typeof t.default;\"object\"!==c&&\"function\"!==c||(s=t,o=t.default);var u=\"function\"==typeof o?o.options:o;e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0),a&&(u.functional=!0),i&&(u._scopeId=i);var l;if(r?(l=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),n&&n.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=l):n&&(l=n),l){var d=u.functional,b=d?u.render:u.beforeCreate;d?(u._injectStyles=l,u.render=function(t,e){return l.call(e),b(t,e)}):u.beforeCreate=b?[].concat(b,l):[l]}return{esModule:s,exports:o,options:u}}},function(t,e,a){\"use strict\";var n=a(2),i=a(4),r=a(14);e.a={name:\"form-wizard\",components:{WizardButton:n.a,WizardStep:i.a},props:{title:{type:String,default:\"Awesome Wizard\"},subtitle:{type:String,default:\"Split a complicated flow in multiple steps\"},nextButtonText:{type:String,default:\"Next\"},backButtonText:{type:String,default:\"Back\"},finishButtonText:{type:String,default:\"Finish\"},hideButtons:{type:Boolean,default:!1},validateOnBack:Boolean,color:{type:String,default:\"#e74c3c\"},errorColor:{type:String,default:\"#8b0000\"},shape:{type:String,default:\"circle\"},layout:{type:String,default:\"horizontal\"},stepsClasses:{type:[String,Array],default:\"\"},stepSize:{type:String,default:\"md\",validator:function(t){return-1!==[\"xs\",\"sm\",\"md\",\"lg\"].indexOf(t)}},transition:{type:String,default:\"\"},startIndex:{type:Number,default:0,validator:function(t){return t>=0}}},provide:function(){return{addTab:this.addTab,removeTab:this.removeTab}},data:function(){return{activeTabIndex:0,currentPercentage:0,maxStep:0,loading:!1,tabs:[]}},computed:{slotProps:function(){return{nextTab:this.nextTab,prevTab:this.prevTab,activeTabIndex:this.activeTabIndex,isLastStep:this.isLastStep,fillButtonStyle:this.fillButtonStyle}},tabCount:function(){return this.tabs.length},isLastStep:function(){return this.activeTabIndex===this.tabCount-1},isVertical:function(){return\"vertical\"===this.layout},displayPrevButton:function(){return 0!==this.activeTabIndex},stepPercentage:function(){return 1/(2*this.tabCount)*100},progressBarStyle:function(){return{backgroundColor:this.color,width:this.progress+\"%\",color:this.color}},fillButtonStyle:function(){return{backgroundColor:this.color,borderColor:this.color,color:\"white\"}},progress:function(){return this.activeTabIndex>0?this.stepPercentage*(2*this.activeTabIndex+1):this.stepPercentage}},methods:{emitTabChange:function(t,e){this.$emit(\"on-change\",t,e),this.$emit(\"update:startIndex\",e)},addTab:function(t){var e=this.$slots.default.indexOf(t.$vnode);t.tabId=\"\"+t.title.replace(/ /g,\"\")+e,this.tabs.splice(e,0,t),e-1&&(a===this.activeTabIndex&&(this.maxStep=this.activeTabIndex-1,this.changeTab(this.activeTabIndex,this.activeTabIndex-1)),athis.activeTabIndex;if(t<=this.maxStep){var n=function n(){a&&t-e.activeTabIndex>1?(e.changeTab(e.activeTabIndex,e.activeTabIndex+1),e.beforeTabChange(e.activeTabIndex,n)):(e.changeTab(e.activeTabIndex,t),e.afterTabChange(e.activeTabIndex))};a?this.beforeTabChange(this.activeTabIndex,n):(this.setValidationError(null),n())}return t<=this.maxStep},nextTab:function(){var t=this,e=function(){t.activeTabIndex0&&(t.setValidationError(null),t.changeTab(t.activeTabIndex,t.activeTabIndex-1))};this.validateOnBack?this.beforeTabChange(this.activeTabIndex,e):e()},focusNextTab:function(){var t=Object(r.b)(this.tabs);if(-1!==t&&t0){var e=this.tabs[t-1].tabId;Object(r.a)(e)}},setLoading:function(t){this.loading=t,this.$emit(\"on-loading\",t)},setValidationError:function(t){this.tabs[this.activeTabIndex].validationError=t,this.$emit(\"on-error\",t)},validateBeforeChange:function(t,e){var a=this;if(this.setValidationError(null),Object(r.c)(t))this.setLoading(!0),t.then(function(t){a.setLoading(!1);var n=!0===t;a.executeBeforeChange(n,e)}).catch(function(t){a.setLoading(!1),a.setValidationError(t)});else{var n=!0===t;this.executeBeforeChange(n,e)}},executeBeforeChange:function(t,e){this.$emit(\"on-validate\",t,this.activeTabIndex),t?e():this.tabs[this.activeTabIndex].validationError=\"error\"},beforeTabChange:function(t,e){if(!this.loading){var a=this.tabs[t];if(a&&void 0!==a.beforeChange){var n=a.beforeChange();this.validateBeforeChange(n,e)}else e()}},afterTabChange:function(t){if(!this.loading){var e=this.tabs[t];e&&void 0!==e.afterChange&&e.afterChange()}},changeTab:function(t,e){var a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this.tabs[t],i=this.tabs[e];return n&&(n.active=!1),i&&(i.active=!0),a&&this.activeTabIndex!==e&&this.emitTabChange(t,e),this.activeTabIndex=e,this.activateTabAndCheckStep(this.activeTabIndex),!0},tryChangeRoute:function(t){this.$router&&t.route&&this.$router.push(t.route)},checkRouteChange:function(t){var e=-1,a=this.tabs.find(function(a,n){var i=a.route===t;return i&&(e=n),i});if(a&&!a.active){var n=e>this.activeTabIndex;this.navigateToTab(e,n)}},deactivateTabs:function(){this.tabs.forEach(function(t){t.active=!1})},activateTab:function(t){this.deactivateTabs();var e=this.tabs[t];e&&(e.active=!0,e.checked=!0,this.tryChangeRoute(e))},activateTabAndCheckStep:function(t){this.activateTab(t),t>this.maxStep&&(this.maxStep=t),this.activeTabIndex=t},initializeTabs:function(){this.tabs.length>0&&0===this.startIndex&&this.activateTab(this.activeTabIndex),this.startIndex0&&void 0!==arguments[0]?arguments[0]:[],e=n();return t.findIndex(function(t){return t.tabId===e})}function r(t){document.getElementById(t).focus()}function s(t){return t.then&&\"function\"==typeof t.then}e.b=i,e.a=r,e.c=s},function(t,e,a){\"use strict\";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(\"div\",{staticClass:\"vue-form-wizard\",class:[t.stepSize,{vertical:t.isVertical}],on:{keyup:[function(e){return\"button\"in e||!t._k(e.keyCode,\"right\",39,e.key)?\"button\"in e&&2!==e.button?null:void t.focusNextTab(e):null},function(e){return\"button\"in e||!t._k(e.keyCode,\"left\",37,e.key)?\"button\"in e&&0!==e.button?null:void t.focusPrevTab(e):null}]}},[a(\"div\",{staticClass:\"wizard-header\"},[t._t(\"title\",[a(\"h4\",{staticClass:\"wizard-title\"},[t._v(t._s(t.title))]),t._v(\" \"),a(\"p\",{staticClass:\"category\"},[t._v(t._s(t.subtitle))])])],2),t._v(\" \"),a(\"div\",{staticClass:\"wizard-navigation\"},[t.isVertical?t._e():a(\"div\",{staticClass:\"wizard-progress-with-circle\"},[a(\"div\",{staticClass:\"wizard-progress-bar\",style:t.progressBarStyle})]),t._v(\" \"),a(\"ul\",{staticClass:\"wizard-nav wizard-nav-pills\",class:t.stepsClasses,attrs:{role:\"tablist\"}},[t._l(t.tabs,function(e,n){return t._t(\"step\",[a(\"wizard-step\",{attrs:{tab:e,\"step-size\":t.stepSize,transition:t.transition,index:n},nativeOn:{click:function(e){t.navigateToTab(n)},keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"enter\",13,e.key))return null;t.navigateToTab(n)}}})],{tab:e,index:n,navigateToTab:t.navigateToTab,stepSize:t.stepSize,transition:t.transition})})],2),t._v(\" \"),a(\"div\",{staticClass:\"wizard-tab-content\"},[t._t(\"default\",null,null,t.slotProps)],2)]),t._v(\" \"),t.hideButtons?t._e():a(\"div\",{staticClass:\"wizard-card-footer clearfix\"},[t._t(\"footer\",[a(\"div\",{staticClass:\"wizard-footer-left\"},[t.displayPrevButton?a(\"span\",{attrs:{role:\"button\",tabindex:\"0\"},on:{click:t.prevTab,keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"enter\",13,e.key))return null;t.prevTab(e)}}},[t._t(\"prev\",[a(\"wizard-button\",{style:t.fillButtonStyle,attrs:{disabled:t.loading}},[t._v(\"\\n \"+t._s(t.backButtonText)+\"\\n \")])],null,t.slotProps)],2):t._e(),t._v(\" \"),t._t(\"custom-buttons-left\",null,null,t.slotProps)],2),t._v(\" \"),a(\"div\",{staticClass:\"wizard-footer-right\"},[t._t(\"custom-buttons-right\",null,null,t.slotProps),t._v(\" \"),t.isLastStep?a(\"span\",{attrs:{role:\"button\",tabindex:\"0\"},on:{click:t.nextTab,keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"enter\",13,e.key))return null;t.nextTab(e)}}},[t._t(\"finish\",[a(\"wizard-button\",{style:t.fillButtonStyle},[t._v(\"\\n \"+t._s(t.finishButtonText)+\"\\n \")])],null,t.slotProps)],2):a(\"span\",{attrs:{role:\"button\",tabindex:\"0\"},on:{click:t.nextTab,keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"enter\",13,e.key))return null;t.nextTab(e)}}},[t._t(\"next\",[a(\"wizard-button\",{style:t.fillButtonStyle,attrs:{disabled:t.loading}},[t._v(\"\\n \"+t._s(t.nextButtonText)+\"\\n \")])],null,t.slotProps)],2)],2)],null,t.slotProps)],2)])},i=[],r={render:n,staticRenderFns:i};e.a=r},function(t,e,a){\"use strict\";var n=a(6),i=a(17),r=a(0),s=r(n.a,i.a,!1,null,null,null);e.a=s.exports},function(t,e,a){\"use strict\";var n=function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.active,expression:\"active\"}],staticClass:\"wizard-tab-container\",attrs:{role:\"tabpanel\",id:t.tabId,\"aria-hidden\":!t.active,\"aria-labelledby\":\"step-\"+t.tabId}},[t._t(\"default\",null,{active:t.active})],2)},i=[],r={render:n,staticRenderFns:i};e.a=r}])});","import { factory } from '../../../utils/factory.js';\nvar name = 'createUnit';\nvar dependencies = ['typed', 'Unit'];\nexport var createCreateUnit = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n Unit\n } = _ref;\n /**\n * Create a user-defined unit and register it with the Unit type.\n *\n * Syntax:\n *\n * math.createUnit({\n * baseUnit1: {\n * aliases: [string, ...]\n * prefixes: object\n * },\n * unit2: {\n * definition: string,\n * aliases: [string, ...]\n * prefixes: object,\n * offset: number\n * },\n * unit3: string // Shortcut\n * })\n *\n * // Another shortcut:\n * math.createUnit(string, unit : string, [object])\n *\n * Examples:\n *\n * math.createUnit('foo')\n * math.createUnit('knot', {definition: '0.514444444 m/s', aliases: ['knots', 'kt', 'kts']})\n * math.createUnit('mph', '1 mile/hour')\n * math.createUnit('km', math.unit(1000, 'm'))\n *\n * @param {string} name The name of the new unit. Must be unique. Example: 'knot'\n * @param {string, UnitDefinition, Unit} definition Definition of the unit in terms of existing units. For example, '0.514444444 m / s'.\n * @param {Object} options (optional) An object containing any of the following properties:\n * - `prefixes {string}` \"none\", \"short\", \"long\", \"binary_short\", or \"binary_long\". The default is \"none\".\n * - `aliases {Array}` Array of strings. Example: ['knots', 'kt', 'kts']\n * - `offset {Numeric}` An offset to apply when converting from the unit. For example, the offset for celsius is 273.15. Default is 0.\n *\n * See also:\n *\n * unit\n *\n * @return {Unit} The new unit\n */\n return typed(name, {\n // General function signature. First parameter is an object where each property is the definition of a new unit. The object keys are the unit names and the values are the definitions. The values can be objects, strings, or Units. If a property is an empty object or an empty string, a new base unit is created. The second parameter is the options.\n 'Object, Object': function ObjectObject(obj, options) {\n return Unit.createUnit(obj, options);\n },\n // Same as above but without the options.\n Object: function Object(obj) {\n return Unit.createUnit(obj, {});\n },\n // Shortcut method for creating one unit.\n 'string, Unit | string | Object, Object': function stringUnitStringObjectObject(name, def, options) {\n var obj = {};\n obj[name] = def;\n return Unit.createUnit(obj, options);\n },\n // Same as above but without the options.\n 'string, Unit | string | Object': function stringUnitStringObject(name, def) {\n var obj = {};\n obj[name] = def;\n return Unit.createUnit(obj, {});\n },\n // Without a definition, creates a base unit.\n string: function string(name) {\n var obj = {};\n obj[name] = {};\n return Unit.createUnit(obj, {});\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\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\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()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\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 isObject(re) && 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 isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (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('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","/**\n * Create a syntax error with the message:\n * 'Wrong number of arguments in function ( provided, - expected)'\n * @param {string} fn Function name\n * @param {number} count Actual argument count\n * @param {number} min Minimum required argument count\n * @param {number} [max] Maximum required argument count\n * @extends Error\n */\nexport function ArgumentsError(fn, count, min, max) {\n if (!(this instanceof ArgumentsError)) {\n throw new SyntaxError('Constructor must be called with the new operator');\n }\n this.fn = fn;\n this.count = count;\n this.min = min;\n this.max = max;\n this.message = 'Wrong number of arguments in function ' + fn + ' (' + count + ' provided, ' + min + (max !== undefined && max !== null ? '-' + max : '') + ' expected)';\n this.stack = new Error().stack;\n}\nArgumentsError.prototype = new Error();\nArgumentsError.prototype.constructor = Error;\nArgumentsError.prototype.name = 'ArgumentsError';\nArgumentsError.prototype.isArgumentsError = true;","/**\n * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values\n * of type `f a` from values of type `a`.\n *\n * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are\n * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the\n * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for\n * any number of function arguments.\n *\n * Instances must satisfy the following laws in addition to the `Apply` laws:\n *\n * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa`\n * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))`\n * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)`\n *\n * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)`\n *\n * @since 2.0.0\n */\nimport { ap, getApplySemigroup } from './Apply';\nimport { pipe } from './function';\nimport { getFunctorComposition } from './Functor';\nexport function getApplicativeMonoid(F) {\n var f = getApplySemigroup(F);\n return function (M) { return ({\n concat: f(M).concat,\n empty: F.of(M.empty)\n }); };\n}\n/** @deprecated */\nexport function getApplicativeComposition(F, G) {\n var map = getFunctorComposition(F, G).map;\n var _ap = ap(F, G);\n return {\n map: map,\n of: function (a) { return F.of(G.of(a)); },\n ap: function (fgab, fga) { return pipe(fgab, _ap(fga)); }\n };\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\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","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","import { containsCollections, deepForEach, reduce } from '../../utils/collection.js';\nimport { arraySize } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nimport { improveErrorMessage } from './utils/improveErrorMessage.js';\nvar name = 'mean';\nvar dependencies = ['typed', 'add', 'divide'];\nexport var createMean = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n add,\n divide\n } = _ref;\n /**\n * Compute the mean value of matrix or a list with values.\n * In case of a multidimensional array, the mean of the flattened array\n * will be calculated. When `dim` is provided, the maximum over the selected\n * dimension will be calculated. Parameter `dim` is zero-based.\n *\n * Syntax:\n *\n * math.mean(a, b, c, ...)\n * math.mean(A)\n * math.mean(A, dimension)\n *\n * Examples:\n *\n * math.mean(2, 1, 4, 3) // returns 2.5\n * math.mean([1, 2.7, 3.2, 4]) // returns 2.725\n *\n * math.mean([[2, 5], [6, 3], [1, 7]], 0) // returns [3, 5]\n * math.mean([[2, 5], [6, 3], [1, 7]], 1) // returns [3.5, 4.5, 4]\n *\n * See also:\n *\n * median, min, max, sum, prod, std, variance\n *\n * @param {... *} args A single matrix or or multiple scalar values\n * @return {*} The mean of all values\n */\n return typed(name, {\n // mean([a, b, c, d, ...])\n 'Array | Matrix': _mean,\n // mean([a, b, c, d, ...], dim)\n 'Array | Matrix, number | BigNumber': _nmeanDim,\n // mean(a, b, c, d, ...)\n '...': function _(args) {\n if (containsCollections(args)) {\n throw new TypeError('Scalar values expected in function mean');\n }\n return _mean(args);\n }\n });\n\n /**\n * Calculate the mean value in an n-dimensional array, returning a\n * n-1 dimensional array\n * @param {Array} array\n * @param {number} dim\n * @return {number} mean\n * @private\n */\n function _nmeanDim(array, dim) {\n try {\n var sum = reduce(array, dim, add);\n var s = Array.isArray(array) ? arraySize(array) : array.size();\n return divide(sum, s[dim]);\n } catch (err) {\n throw improveErrorMessage(err, 'mean');\n }\n }\n\n /**\n * Recursively calculate the mean value in an n-dimensional array\n * @param {Array} array\n * @return {number} mean\n * @private\n */\n function _mean(array) {\n var sum;\n var num = 0;\n deepForEach(array, function (value) {\n try {\n sum = sum === undefined ? value : add(sum, value);\n num++;\n } catch (err) {\n throw improveErrorMessage(err, 'mean', value);\n }\n });\n if (num === 0) {\n throw new Error('Cannot calculate the mean of an empty array');\n }\n return divide(sum, num);\n }\n});","import { factory } from '../../../utils/factory.js';\nimport { DimensionError } from '../../../error/DimensionError.js';\nvar name = 'matAlgo04xSidSid';\nvar dependencies = ['typed', 'equalScalar'];\nexport var createMatAlgo04xSidSid = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n equalScalar\n } = _ref;\n /**\n * Iterates over SparseMatrix A and SparseMatrix B nonzero items and invokes the callback function f(Aij, Bij).\n * Callback function invoked MAX(NNZA, NNZB) times\n *\n *\n * ┌ f(Aij, Bij) ; A(i,j) !== 0 && B(i,j) !== 0\n * C(i,j) = ┤ A(i,j) ; A(i,j) !== 0 && B(i,j) === 0\n * └ B(i,j) ; A(i,j) === 0\n *\n *\n * @param {Matrix} a The SparseMatrix instance (A)\n * @param {Matrix} b The SparseMatrix instance (B)\n * @param {Function} callback The f(Aij,Bij) operation to invoke\n *\n * @return {Matrix} SparseMatrix (C)\n *\n * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294\n */\n return function matAlgo04xSidSid(a, b, callback) {\n // sparse matrix arrays\n var avalues = a._values;\n var aindex = a._index;\n var aptr = a._ptr;\n var asize = a._size;\n var adt = a._datatype;\n // sparse matrix arrays\n var bvalues = b._values;\n var bindex = b._index;\n var bptr = b._ptr;\n var bsize = b._size;\n var bdt = b._datatype;\n\n // validate dimensions\n if (asize.length !== bsize.length) {\n throw new DimensionError(asize.length, bsize.length);\n }\n\n // check rows & columns\n if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {\n throw new RangeError('Dimension mismatch. Matrix A (' + asize + ') must match Matrix B (' + bsize + ')');\n }\n\n // rows & columns\n var rows = asize[0];\n var columns = asize[1];\n\n // datatype\n var dt;\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n // callback signature to use\n var cf = callback;\n\n // process data types\n if (typeof adt === 'string' && adt === bdt) {\n // datatype\n dt = adt;\n // find signature that matches (dt, dt)\n eq = typed.find(equalScalar, [dt, dt]);\n // convert 0 to the same datatype\n zero = typed.convert(0, dt);\n // callback\n cf = typed.find(callback, [dt, dt]);\n }\n\n // result arrays\n var cvalues = avalues && bvalues ? [] : undefined;\n var cindex = [];\n var cptr = [];\n\n // workspace\n var xa = avalues && bvalues ? [] : undefined;\n var xb = avalues && bvalues ? [] : undefined;\n // marks indicating we have a value in x for a given column\n var wa = [];\n var wb = [];\n\n // vars\n var i, j, k, k0, k1;\n\n // loop columns\n for (j = 0; j < columns; j++) {\n // update cptr\n cptr[j] = cindex.length;\n // columns mark\n var mark = j + 1;\n // loop A(:,j)\n for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {\n // row\n i = aindex[k];\n // update c\n cindex.push(i);\n // update workspace\n wa[i] = mark;\n // check we need to process values\n if (xa) {\n xa[i] = avalues[k];\n }\n }\n // loop B(:,j)\n for (k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {\n // row\n i = bindex[k];\n // check row exists in A\n if (wa[i] === mark) {\n // update record in xa @ i\n if (xa) {\n // invoke callback\n var v = cf(xa[i], bvalues[k]);\n // check for zero\n if (!eq(v, zero)) {\n // update workspace\n xa[i] = v;\n } else {\n // remove mark (index will be removed later)\n wa[i] = null;\n }\n }\n } else {\n // update c\n cindex.push(i);\n // update workspace\n wb[i] = mark;\n // check we need to process values\n if (xb) {\n xb[i] = bvalues[k];\n }\n }\n }\n // check we need to process values (non pattern matrix)\n if (xa && xb) {\n // initialize first index in j\n k = cptr[j];\n // loop index in j\n while (k < cindex.length) {\n // row\n i = cindex[k];\n // check workspace has value @ i\n if (wa[i] === mark) {\n // push value (Aij != 0 || (Aij != 0 && Bij != 0))\n cvalues[k] = xa[i];\n // increment pointer\n k++;\n } else if (wb[i] === mark) {\n // push value (bij != 0)\n cvalues[k] = xb[i];\n // increment pointer\n k++;\n } else {\n // remove index @ k\n cindex.splice(k, 1);\n }\n }\n }\n }\n // update cptr\n cptr[columns] = cindex.length;\n\n // return sparse matrix\n return a.createSparseMatrix({\n values: cvalues,\n index: cindex,\n ptr: cptr,\n size: [rows, columns],\n datatype: dt\n });\n };\n});","/*global exports*/\nvar SignStream = require('./lib/sign-stream');\nvar VerifyStream = require('./lib/verify-stream');\n\nvar ALGORITHMS = [\n 'HS256', 'HS384', 'HS512',\n 'RS256', 'RS384', 'RS512',\n 'PS256', 'PS384', 'PS512',\n 'ES256', 'ES384', 'ES512'\n];\n\nexports.ALGORITHMS = ALGORITHMS;\nexports.sign = SignStream.sign;\nexports.verify = VerifyStream.verify;\nexports.decode = VerifyStream.decode;\nexports.isValid = VerifyStream.isValid;\nexports.createSign = function createSign(opts) {\n return new SignStream(opts);\n};\nexports.createVerify = function createVerify(opts) {\n return new VerifyStream(opts);\n};\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\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","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","import { factory } from '../../utils/factory.js';\nimport { cscNumber } from '../../plain/number/index.js';\nimport { createTrigUnit } from './trigUnit.js';\nvar name = 'csc';\nvar dependencies = ['typed', 'BigNumber'];\nexport var createCsc = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n BigNumber: _BigNumber\n } = _ref;\n var trigUnit = createTrigUnit({\n typed\n });\n\n /**\n * Calculate the cosecant of a value, defined as `csc(x) = 1/sin(x)`.\n *\n * To avoid confusion with the matrix cosecant, this function does not\n * apply to matrices.\n *\n * Syntax:\n *\n * math.csc(x)\n *\n * Examples:\n *\n * math.csc(2) // returns number 1.099750170294617\n * 1 / math.sin(2) // returns number 1.099750170294617\n *\n * See also:\n *\n * sin, sec, cot\n *\n * @param {number | BigNumber | Complex | Unit} x Function input\n * @return {number | BigNumber | Complex} Cosecant of x\n */\n return typed(name, {\n number: cscNumber,\n Complex: x => x.csc(),\n BigNumber: x => new _BigNumber(1).div(x.sin())\n }, trigUnit);\n});","import { factory } from '../../utils/factory.js';\nimport { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';\nimport { createMatAlgo09xS0Sf } from '../../type/matrix/utils/matAlgo09xS0Sf.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nvar name = 'dotMultiply';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'multiplyScalar', 'concat'];\nexport var createDotMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n multiplyScalar,\n concat\n } = _ref;\n var matAlgo02xDS0 = createMatAlgo02xDS0({\n typed,\n equalScalar\n });\n var matAlgo09xS0Sf = createMatAlgo09xS0Sf({\n typed,\n equalScalar\n });\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Multiply two matrices element wise. The function accepts both matrices and\n * scalar values.\n *\n * Syntax:\n *\n * math.dotMultiply(x, y)\n *\n * Examples:\n *\n * math.dotMultiply(2, 4) // returns 8\n *\n * a = [[9, 5], [6, 1]]\n * b = [[3, 2], [5, 2]]\n *\n * math.dotMultiply(a, b) // returns [[27, 10], [30, 2]]\n * math.multiply(a, b) // returns [[52, 28], [23, 14]]\n *\n * See also:\n *\n * multiply, divide, dotDivide\n *\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x Left hand value\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} y Right hand value\n * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Multiplication of `x` and `y`\n */\n return typed(name, matrixAlgorithmSuite({\n elop: multiplyScalar,\n SS: matAlgo09xS0Sf,\n DS: matAlgo02xDS0,\n Ss: matAlgo11xS0s\n }));\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","import { factory } from '../../utils/factory.js';\nimport { addNumber } from '../../plain/number/index.js';\nvar name = 'addScalar';\nvar dependencies = ['typed'];\nexport var createAddScalar = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Add two scalar values, `x + y`.\n * This function is meant for internal use: it is used by the public function\n * `add`\n *\n * This function does not support collections (Array or Matrix).\n *\n * @param {number | BigNumber | Fraction | Complex | Unit} x First value to add\n * @param {number | BigNumber | Fraction | Complex} y Second value to add\n * @return {number | BigNumber | Fraction | Complex | Unit} Sum of `x` and `y`\n * @private\n */\n return typed(name, {\n 'number, number': addNumber,\n 'Complex, Complex': function ComplexComplex(x, y) {\n return x.add(y);\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n return x.plus(y);\n },\n 'Fraction, Fraction': function FractionFraction(x, y) {\n return x.add(y);\n },\n 'Unit, Unit': typed.referToSelf(self => (x, y) => {\n if (x.value === null || x.value === undefined) {\n throw new Error('Parameter x contains a unit with undefined value');\n }\n if (y.value === null || y.value === undefined) {\n throw new Error('Parameter y contains a unit with undefined value');\n }\n if (!x.equalBase(y)) throw new Error('Units do not match');\n var res = x.clone();\n res.value = typed.find(self, [res.valueType(), y.valueType()])(res.value, y.value);\n res.fixPrefix = false;\n return res;\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","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","import { arraySize } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nimport { isMatrix } from '../../utils/is.js';\nvar name = 'ifft';\nvar dependencies = ['typed', 'fft', 'dotDivide', 'conj'];\nexport var createIfft = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n fft,\n dotDivide,\n conj\n } = _ref;\n /**\n * Calculate N-dimensional inverse fourier transform\n *\n * Syntax:\n *\n * math.ifft(arr)\n *\n * Examples:\n *\n * math.ifft([[2, 2], [0, 0]]) // returns [[{re:1, im:0}, {re:0, im:0}], [{re:1, im:0}, {re:0, im:0}]]\n *\n * See Also:\n *\n * fft\n *\n * @param {Array | Matrix} arr An array or matrix\n * @return {Array | Matrix} N-dimensional fourier transformation of the array\n */\n return typed(name, {\n 'Array | Matrix': function ArrayMatrix(arr) {\n var size = isMatrix(arr) ? arr.size() : arraySize(arr);\n return dotDivide(conj(fft(conj(arr))), size.reduce((acc, curr) => acc * curr, 1));\n }\n });\n});","'use strict';\nvar $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","import { bitXor as bigBitXor } from '../../utils/bignumber/bitwise.js';\nimport { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { bitXorNumber } from '../../plain/number/index.js';\nvar name = 'bitXor';\nvar dependencies = ['typed', 'matrix', 'DenseMatrix', 'concat'];\nexport var createBitXor = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo07xSSf = createMatAlgo07xSSf({\n typed,\n DenseMatrix\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Bitwise XOR two values, `x ^ y`.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.bitXor(x, y)\n *\n * Examples:\n *\n * math.bitXor(1, 2) // returns number 3\n *\n * math.bitXor([2, 3, 4], 4) // returns Array [6, 7, 0]\n *\n * See also:\n *\n * bitAnd, bitNot, bitOr, leftShift, rightArithShift, rightLogShift\n *\n * @param {number | BigNumber | Array | Matrix} x First value to xor\n * @param {number | BigNumber | Array | Matrix} y Second value to xor\n * @return {number | BigNumber | Array | Matrix} XOR of `x` and `y`\n */\n return typed(name, {\n 'number, number': bitXorNumber,\n 'BigNumber, BigNumber': bigBitXor\n }, matrixAlgorithmSuite({\n SS: matAlgo07xSSf,\n DS: matAlgo03xDSf,\n Ss: matAlgo12xSfs\n }));\n});","var jws = require('jws');\n\nmodule.exports = function (jwt, options) {\n options = options || {};\n var decoded = jws.decode(jwt, options);\n if (!decoded) { return null; }\n var payload = decoded.payload;\n\n //try parse the payload\n if(typeof payload === 'string') {\n try {\n var obj = JSON.parse(payload);\n if(obj !== null && typeof obj === 'object') {\n payload = obj;\n }\n } catch (e) { }\n }\n\n //return header if `complete` option is enabled. header includes claims\n //such as `kid` and `alg` used to select the key within a JWKS needed to\n //verify the signature\n if (options.complete === true) {\n return {\n header: decoded.header,\n payload: payload,\n signature: decoded.signature\n };\n }\n return payload;\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 // '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 off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\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","import { factory } from '../../../utils/factory.js';\nimport { createSolveValidation } from './utils/solveValidation.js';\nvar name = 'lsolve';\nvar dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'equalScalar', 'DenseMatrix'];\nexport var createLsolve = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n divideScalar,\n multiplyScalar,\n subtractScalar,\n equalScalar,\n DenseMatrix\n } = _ref;\n var solveValidation = createSolveValidation({\n DenseMatrix\n });\n\n /**\n * Finds one solution of a linear equation system by forwards substitution. Matrix must be a lower triangular matrix. Throws an error if there's no solution.\n *\n * `L * x = b`\n *\n * Syntax:\n *\n * math.lsolve(L, b)\n *\n * Examples:\n *\n * const a = [[-2, 3], [2, 1]]\n * const b = [11, 9]\n * const x = lsolve(a, b) // [[-5.5], [20]]\n *\n * See also:\n *\n * lsolveAll, lup, slu, usolve, lusolve\n *\n * @param {Matrix, Array} L A N x N matrix or array (L)\n * @param {Matrix, Array} b A column vector with the b values\n *\n * @return {DenseMatrix | Array} A column vector with the linear system solution (x)\n */\n return typed(name, {\n 'SparseMatrix, Array | Matrix': function SparseMatrixArrayMatrix(m, b) {\n return _sparseForwardSubstitution(m, b);\n },\n 'DenseMatrix, Array | Matrix': function DenseMatrixArrayMatrix(m, b) {\n return _denseForwardSubstitution(m, b);\n },\n 'Array, Array | Matrix': function ArrayArrayMatrix(a, b) {\n var m = matrix(a);\n var r = _denseForwardSubstitution(m, b);\n return r.valueOf();\n }\n });\n function _denseForwardSubstitution(m, b) {\n // validate matrix and vector, return copy of column vector b\n b = solveValidation(m, b, true);\n var bdata = b._data;\n var rows = m._size[0];\n var columns = m._size[1];\n\n // result\n var x = [];\n var mdata = m._data;\n\n // loop columns\n for (var j = 0; j < columns; j++) {\n var bj = bdata[j][0] || 0;\n var xj = void 0;\n if (!equalScalar(bj, 0)) {\n // non-degenerate row, find solution\n\n var vjj = mdata[j][j];\n if (equalScalar(vjj, 0)) {\n throw new Error('Linear system cannot be solved since matrix is singular');\n }\n xj = divideScalar(bj, vjj);\n\n // loop rows\n for (var i = j + 1; i < rows; i++) {\n bdata[i] = [subtractScalar(bdata[i][0] || 0, multiplyScalar(xj, mdata[i][j]))];\n }\n } else {\n // degenerate row, we can choose any value\n xj = 0;\n }\n x[j] = [xj];\n }\n return new DenseMatrix({\n data: x,\n size: [rows, 1]\n });\n }\n function _sparseForwardSubstitution(m, b) {\n // validate matrix and vector, return copy of column vector b\n b = solveValidation(m, b, true);\n var bdata = b._data;\n var rows = m._size[0];\n var columns = m._size[1];\n var values = m._values;\n var index = m._index;\n var ptr = m._ptr;\n\n // result\n var x = [];\n\n // loop columns\n for (var j = 0; j < columns; j++) {\n var bj = bdata[j][0] || 0;\n if (!equalScalar(bj, 0)) {\n // non-degenerate row, find solution\n\n var vjj = 0;\n // matrix values & indices (column j)\n var jValues = [];\n var jIndices = [];\n\n // first and last index in the column\n var firstIndex = ptr[j];\n var lastIndex = ptr[j + 1];\n\n // values in column, find value at [j, j]\n for (var k = firstIndex; k < lastIndex; k++) {\n var i = index[k];\n\n // check row (rows are not sorted!)\n if (i === j) {\n vjj = values[k];\n } else if (i > j) {\n // store lower triangular\n jValues.push(values[k]);\n jIndices.push(i);\n }\n }\n\n // at this point we must have a value in vjj\n if (equalScalar(vjj, 0)) {\n throw new Error('Linear system cannot be solved since matrix is singular');\n }\n var xj = divideScalar(bj, vjj);\n for (var _k = 0, l = jIndices.length; _k < l; _k++) {\n var _i = jIndices[_k];\n bdata[_i] = [subtractScalar(bdata[_i][0] || 0, multiplyScalar(xj, jValues[_k]))];\n }\n x[j] = [xj];\n } else {\n // degenerate row, we can choose any value\n x[j] = [0];\n }\n }\n return new DenseMatrix({\n data: x,\n size: [rows, 1]\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","import { factory } from '../../../utils/factory.js';\nimport { DimensionError } from '../../../error/DimensionError.js';\nvar name = 'matAlgo03xDSf';\nvar dependencies = ['typed'];\nexport var createMatAlgo03xDSf = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Iterates over SparseMatrix items and invokes the callback function f(Dij, Sij).\n * Callback function invoked M*N times.\n *\n *\n * ┌ f(Dij, Sij) ; S(i,j) !== 0\n * C(i,j) = ┤\n * └ f(Dij, 0) ; otherwise\n *\n *\n * @param {Matrix} denseMatrix The DenseMatrix instance (D)\n * @param {Matrix} sparseMatrix The SparseMatrix instance (C)\n * @param {Function} callback The f(Dij,Sij) operation to invoke, where Dij = DenseMatrix(i,j) and Sij = SparseMatrix(i,j)\n * @param {boolean} inverse A true value indicates callback should be invoked f(Sij,Dij)\n *\n * @return {Matrix} DenseMatrix (C)\n *\n * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97477571\n */\n return function matAlgo03xDSf(denseMatrix, sparseMatrix, callback, inverse) {\n // dense matrix arrays\n var adata = denseMatrix._data;\n var asize = denseMatrix._size;\n var adt = denseMatrix._datatype;\n // sparse matrix arrays\n var bvalues = sparseMatrix._values;\n var bindex = sparseMatrix._index;\n var bptr = sparseMatrix._ptr;\n var bsize = sparseMatrix._size;\n var bdt = sparseMatrix._datatype;\n\n // validate dimensions\n if (asize.length !== bsize.length) {\n throw new DimensionError(asize.length, bsize.length);\n }\n\n // check rows & columns\n if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {\n throw new RangeError('Dimension mismatch. Matrix A (' + asize + ') must match Matrix B (' + bsize + ')');\n }\n\n // sparse matrix cannot be a Pattern matrix\n if (!bvalues) {\n throw new Error('Cannot perform operation on Dense Matrix and Pattern Sparse Matrix');\n }\n\n // rows & columns\n var rows = asize[0];\n var columns = asize[1];\n\n // datatype\n var dt;\n // zero value\n var zero = 0;\n // callback signature to use\n var cf = callback;\n\n // process data types\n if (typeof adt === 'string' && adt === bdt) {\n // datatype\n dt = adt;\n // convert 0 to the same datatype\n zero = typed.convert(0, dt);\n // callback\n cf = typed.find(callback, [dt, dt]);\n }\n\n // result (DenseMatrix)\n var cdata = [];\n\n // initialize dense matrix\n for (var z = 0; z < rows; z++) {\n // initialize row\n cdata[z] = [];\n }\n\n // workspace\n var x = [];\n // marks indicating we have a value in x for a given column\n var w = [];\n\n // loop columns in b\n for (var j = 0; j < columns; j++) {\n // column mark\n var mark = j + 1;\n // values in column j\n for (var k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {\n // row\n var i = bindex[k];\n // update workspace\n x[i] = inverse ? cf(bvalues[k], adata[i][j]) : cf(adata[i][j], bvalues[k]);\n w[i] = mark;\n }\n // process workspace\n for (var y = 0; y < rows; y++) {\n // check we have a calculated value for current row\n if (w[y] === mark) {\n // use calculated value\n cdata[y][j] = x[y];\n } else {\n // calculate value\n cdata[y][j] = inverse ? cf(zero, adata[y][j]) : cf(adata[y][j], zero);\n }\n }\n }\n\n // return dense matrix\n return denseMatrix.createDenseMatrix({\n data: cdata,\n size: [rows, columns],\n datatype: dt\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// 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","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dual = exports.getEndomorphismMonoid = exports.not = exports.SK = exports.hole = exports.pipe = exports.untupled = exports.tupled = exports.absurd = exports.decrement = exports.increment = exports.tuple = exports.flow = exports.flip = exports.constVoid = exports.constUndefined = exports.constNull = exports.constFalse = exports.constTrue = exports.constant = exports.unsafeCoerce = exports.identity = exports.apply = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getBooleanAlgebra = function (B) {\n return function () { return ({\n meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; },\n join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; },\n zero: function () { return B.zero; },\n one: function () { return B.one; },\n implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; },\n not: function (x) { return function (a) { return B.not(x(a)); }; }\n }); };\n};\nexports.getBooleanAlgebra = getBooleanAlgebra;\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function (S) {\n return function () { return ({\n concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }\n }); };\n};\nexports.getSemigroup = getSemigroup;\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getMonoid = function (M) {\n var getSemigroupM = (0, exports.getSemigroup)(M);\n return function () { return ({\n concat: getSemigroupM().concat,\n empty: function () { return M.empty; }\n }); };\n};\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemiring = function (S) { return ({\n add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; },\n zero: function () { return S.zero; },\n mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; },\n one: function () { return S.one; }\n}); };\nexports.getSemiring = getSemiring;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getRing = function (R) {\n var S = (0, exports.getSemiring)(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; }\n };\n};\nexports.getRing = getRing;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar apply = function (a) {\n return function (f) {\n return f(a);\n };\n};\nexports.apply = apply;\n/**\n * @since 2.0.0\n */\nfunction identity(a) {\n return a;\n}\nexports.identity = identity;\n/**\n * @since 2.0.0\n */\nexports.unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nfunction constant(a) {\n return function () { return a; };\n}\nexports.constant = constant;\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\nexports.constTrue = constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexports.constFalse = constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexports.constNull = constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexports.constUndefined = constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\nexports.constVoid = exports.constUndefined;\nfunction flip(f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length > 1) {\n return f(args[1], args[0]);\n }\n return function (a) { return f(a)(args[0]); };\n };\n}\nexports.flip = flip;\nfunction flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\nexports.flow = flow;\n/**\n * @since 2.0.0\n */\nfunction tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\nexports.tuple = tuple;\n/**\n * @since 2.0.0\n */\nfunction increment(n) {\n return n + 1;\n}\nexports.increment = increment;\n/**\n * @since 2.0.0\n */\nfunction decrement(n) {\n return n - 1;\n}\nexports.decrement = decrement;\n/**\n * @since 2.0.0\n */\nfunction absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\nexports.absurd = absurd;\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\nfunction tupled(f) {\n return function (a) { return f.apply(void 0, a); };\n}\nexports.tupled = tupled;\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nfunction untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nexports.untupled = untupled;\nfunction pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default: {\n var ret = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\nexports.pipe = pipe;\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexports.hole = absurd;\n/**\n * @since 2.11.0\n */\nvar SK = function (_, b) { return b; };\nexports.SK = SK;\n/**\n * Use `Predicate` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction not(predicate) {\n return function (a) { return !predicate(a); };\n}\nexports.not = not;\n/**\n * Use `Endomorphism` module instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nvar getEndomorphismMonoid = function () { return ({\n concat: function (first, second) { return flow(first, second); },\n empty: identity\n}); };\nexports.getEndomorphismMonoid = getEndomorphismMonoid;\n/** @internal */\nvar dual = function (arity, body) {\n var isDataFirst = typeof arity === 'number' ? function (args) { return args.length >= arity; } : arity;\n return function () {\n var args = Array.from(arguments);\n if (isDataFirst(arguments)) {\n return body.apply(this, args);\n }\n return function (self) { return body.apply(void 0, __spreadArray([self], args, false)); };\n };\n};\nexports.dual = dual;\n","import { flatten } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'setSize';\nvar dependencies = ['typed', 'compareNatural'];\nexport var createSetSize = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n compareNatural\n } = _ref;\n /**\n * Count the number of elements of a (multi)set. When a second parameter is 'true', count only the unique values.\n * A multi-dimension array will be converted to a single-dimension array before the operation.\n *\n * Syntax:\n *\n * math.setSize(set)\n * math.setSize(set, unique)\n *\n * Examples:\n *\n * math.setSize([1, 2, 2, 4]) // returns 4\n * math.setSize([1, 2, 2, 4], true) // returns 3\n *\n * See also:\n *\n * setUnion, setIntersect, setDifference\n *\n * @param {Array | Matrix} a A multiset\n * @param {boolean} [unique] If true, only the unique values are counted. False by default\n * @return {number} The number of elements of the (multi)set\n */\n return typed(name, {\n 'Array | Matrix': function ArrayMatrix(a) {\n return Array.isArray(a) ? flatten(a).length : flatten(a.toArray()).length;\n },\n 'Array | Matrix, boolean': function ArrayMatrixBoolean(a, unique) {\n if (unique === false || a.length === 0) {\n return Array.isArray(a) ? flatten(a).length : flatten(a.toArray()).length;\n } else {\n var b = flatten(Array.isArray(a) ? a : a.toArray()).sort(compareNatural);\n var count = 1;\n for (var i = 1; i < b.length; i++) {\n if (compareNatural(b[i], b[i - 1]) !== 0) {\n count++;\n }\n }\n return count;\n }\n }\n });\n});","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gerarPropostaExterna.vue?vue&type=style&index=0&id=9e426868&prod&lang=scss\"","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","import { factory } from '../../../utils/factory.js';\nimport { DimensionError } from '../../../error/DimensionError.js';\nvar name = 'matAlgo02xDS0';\nvar dependencies = ['typed', 'equalScalar'];\nexport var createMatAlgo02xDS0 = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n equalScalar\n } = _ref;\n /**\n * Iterates over SparseMatrix nonzero items and invokes the callback function f(Dij, Sij).\n * Callback function invoked NNZ times (number of nonzero items in SparseMatrix).\n *\n *\n * ┌ f(Dij, Sij) ; S(i,j) !== 0\n * C(i,j) = ┤\n * └ 0 ; otherwise\n *\n *\n * @param {Matrix} denseMatrix The DenseMatrix instance (D)\n * @param {Matrix} sparseMatrix The SparseMatrix instance (S)\n * @param {Function} callback The f(Dij,Sij) operation to invoke, where Dij = DenseMatrix(i,j) and Sij = SparseMatrix(i,j)\n * @param {boolean} inverse A true value indicates callback should be invoked f(Sij,Dij)\n *\n * @return {Matrix} SparseMatrix (C)\n *\n * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97477571\n */\n return function matAlgo02xDS0(denseMatrix, sparseMatrix, callback, inverse) {\n // dense matrix arrays\n var adata = denseMatrix._data;\n var asize = denseMatrix._size;\n var adt = denseMatrix._datatype;\n // sparse matrix arrays\n var bvalues = sparseMatrix._values;\n var bindex = sparseMatrix._index;\n var bptr = sparseMatrix._ptr;\n var bsize = sparseMatrix._size;\n var bdt = sparseMatrix._datatype;\n\n // validate dimensions\n if (asize.length !== bsize.length) {\n throw new DimensionError(asize.length, bsize.length);\n }\n\n // check rows & columns\n if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {\n throw new RangeError('Dimension mismatch. Matrix A (' + asize + ') must match Matrix B (' + bsize + ')');\n }\n\n // sparse matrix cannot be a Pattern matrix\n if (!bvalues) {\n throw new Error('Cannot perform operation on Dense Matrix and Pattern Sparse Matrix');\n }\n\n // rows & columns\n var rows = asize[0];\n var columns = asize[1];\n\n // datatype\n var dt;\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n // callback signature to use\n var cf = callback;\n\n // process data types\n if (typeof adt === 'string' && adt === bdt) {\n // datatype\n dt = adt;\n // find signature that matches (dt, dt)\n eq = typed.find(equalScalar, [dt, dt]);\n // convert 0 to the same datatype\n zero = typed.convert(0, dt);\n // callback\n cf = typed.find(callback, [dt, dt]);\n }\n\n // result (SparseMatrix)\n var cvalues = [];\n var cindex = [];\n var cptr = [];\n\n // loop columns in b\n for (var j = 0; j < columns; j++) {\n // update cptr\n cptr[j] = cindex.length;\n // values in column j\n for (var k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {\n // row\n var i = bindex[k];\n // update C(i,j)\n var cij = inverse ? cf(bvalues[k], adata[i][j]) : cf(adata[i][j], bvalues[k]);\n // check for nonzero\n if (!eq(cij, zero)) {\n // push i & v\n cindex.push(i);\n cvalues.push(cij);\n }\n }\n }\n // update cptr\n cptr[columns] = cindex.length;\n\n // return sparse matrix\n return sparseMatrix.createSparseMatrix({\n values: cvalues,\n index: cindex,\n ptr: cptr,\n size: [rows, columns],\n datatype: dt\n });\n };\n});","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","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","/**\n * Create a typed-function which checks the types of the arguments and\n * can match them against multiple provided signatures. The typed-function\n * automatically converts inputs in order to find a matching signature.\n * Typed functions throw informative errors in case of wrong input arguments.\n *\n * See the library [typed-function](https://github.com/josdejong/typed-function)\n * for detailed documentation.\n *\n * Syntax:\n *\n * math.typed(name, signatures) : function\n * math.typed(signatures) : function\n *\n * Examples:\n *\n * // create a typed function with multiple types per argument (type union)\n * const fn2 = typed({\n * 'number | boolean': function (b) {\n * return 'b is a number or boolean'\n * },\n * 'string, number | boolean': function (a, b) {\n * return 'a is a string, b is a number or boolean'\n * }\n * })\n *\n * // create a typed function with an any type argument\n * const log = typed({\n * 'string, any': function (event, data) {\n * console.log('event: ' + event + ', data: ' + JSON.stringify(data))\n * }\n * })\n *\n * @param {string} [name] Optional name for the typed-function\n * @param {Object} signatures Object with one or multiple function signatures\n * @returns {function} The created typed-function.\n */\n\nimport { isAccessorNode, isArray, isArrayNode, isAssignmentNode, isBigNumber, isBlockNode, isBoolean, isChain, isCollection, isComplex, isConditionalNode, isConstantNode, isDate, isDenseMatrix, isFraction, isFunction, isFunctionAssignmentNode, isFunctionNode, isHelp, isIndex, isIndexNode, isMatrix, isNode, isNull, isNumber, isObject, isObjectNode, isOperatorNode, isParenthesisNode, isRange, isRangeNode, isRelationalNode, isRegExp, isResultSet, isSparseMatrix, isString, isSymbolNode, isUndefined, isUnit } from '../../utils/is.js';\nimport typedFunction from 'typed-function';\nimport { digits } from '../../utils/number.js';\nimport { factory } from '../../utils/factory.js';\nimport { isMap } from '../../utils/map.js';\n\n// returns a new instance of typed-function\nvar _createTyped2 = function _createTyped() {\n // initially, return the original instance of typed-function\n // consecutively, return a new instance from typed.create.\n _createTyped2 = typedFunction.create;\n return typedFunction;\n};\nvar dependencies = ['?BigNumber', '?Complex', '?DenseMatrix', '?Fraction'];\n\n/**\n * Factory function for creating a new typed instance\n * @param {Object} dependencies Object with data types like Complex and BigNumber\n * @returns {Function}\n */\nexport var createTyped = /* #__PURE__ */factory('typed', dependencies, function createTyped(_ref) {\n var {\n BigNumber,\n Complex,\n DenseMatrix,\n Fraction\n } = _ref;\n // TODO: typed-function must be able to silently ignore signatures with unknown data types\n\n // get a new instance of typed-function\n var typed = _createTyped2();\n\n // define all types. The order of the types determines in which order function\n // arguments are type-checked (so for performance it's important to put the\n // most used types first).\n typed.clear();\n typed.addTypes([{\n name: 'number',\n test: isNumber\n }, {\n name: 'Complex',\n test: isComplex\n }, {\n name: 'BigNumber',\n test: isBigNumber\n }, {\n name: 'Fraction',\n test: isFraction\n }, {\n name: 'Unit',\n test: isUnit\n },\n // The following type matches a valid variable name, i.e., an alphanumeric\n // string starting with an alphabetic character. It is used (at least)\n // in the definition of the derivative() function, as the argument telling\n // what to differentiate over must (currently) be a variable.\n {\n name: 'identifier',\n test: s => isString && /^(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])*$/.test(s)\n }, {\n name: 'string',\n test: isString\n }, {\n name: 'Chain',\n test: isChain\n }, {\n name: 'Array',\n test: isArray\n }, {\n name: 'Matrix',\n test: isMatrix\n }, {\n name: 'DenseMatrix',\n test: isDenseMatrix\n }, {\n name: 'SparseMatrix',\n test: isSparseMatrix\n }, {\n name: 'Range',\n test: isRange\n }, {\n name: 'Index',\n test: isIndex\n }, {\n name: 'boolean',\n test: isBoolean\n }, {\n name: 'ResultSet',\n test: isResultSet\n }, {\n name: 'Help',\n test: isHelp\n }, {\n name: 'function',\n test: isFunction\n }, {\n name: 'Date',\n test: isDate\n }, {\n name: 'RegExp',\n test: isRegExp\n }, {\n name: 'null',\n test: isNull\n }, {\n name: 'undefined',\n test: isUndefined\n }, {\n name: 'AccessorNode',\n test: isAccessorNode\n }, {\n name: 'ArrayNode',\n test: isArrayNode\n }, {\n name: 'AssignmentNode',\n test: isAssignmentNode\n }, {\n name: 'BlockNode',\n test: isBlockNode\n }, {\n name: 'ConditionalNode',\n test: isConditionalNode\n }, {\n name: 'ConstantNode',\n test: isConstantNode\n }, {\n name: 'FunctionNode',\n test: isFunctionNode\n }, {\n name: 'FunctionAssignmentNode',\n test: isFunctionAssignmentNode\n }, {\n name: 'IndexNode',\n test: isIndexNode\n }, {\n name: 'Node',\n test: isNode\n }, {\n name: 'ObjectNode',\n test: isObjectNode\n }, {\n name: 'OperatorNode',\n test: isOperatorNode\n }, {\n name: 'ParenthesisNode',\n test: isParenthesisNode\n }, {\n name: 'RangeNode',\n test: isRangeNode\n }, {\n name: 'RelationalNode',\n test: isRelationalNode\n }, {\n name: 'SymbolNode',\n test: isSymbolNode\n }, {\n name: 'Map',\n test: isMap\n }, {\n name: 'Object',\n test: isObject\n } // order 'Object' last, it matches on other classes too\n ]);\n\n typed.addConversions([{\n from: 'number',\n to: 'BigNumber',\n convert: function convert(x) {\n if (!BigNumber) {\n throwNoBignumber(x);\n }\n\n // note: conversion from number to BigNumber can fail if x has >15 digits\n if (digits(x) > 15) {\n throw new TypeError('Cannot implicitly convert a number with >15 significant digits to BigNumber ' + '(value: ' + x + '). ' + 'Use function bignumber(x) to convert to BigNumber.');\n }\n return new BigNumber(x);\n }\n }, {\n from: 'number',\n to: 'Complex',\n convert: function convert(x) {\n if (!Complex) {\n throwNoComplex(x);\n }\n return new Complex(x, 0);\n }\n }, {\n from: 'BigNumber',\n to: 'Complex',\n convert: function convert(x) {\n if (!Complex) {\n throwNoComplex(x);\n }\n return new Complex(x.toNumber(), 0);\n }\n }, {\n from: 'Fraction',\n to: 'BigNumber',\n convert: function convert(x) {\n throw new TypeError('Cannot implicitly convert a Fraction to BigNumber or vice versa. ' + 'Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.');\n }\n }, {\n from: 'Fraction',\n to: 'Complex',\n convert: function convert(x) {\n if (!Complex) {\n throwNoComplex(x);\n }\n return new Complex(x.valueOf(), 0);\n }\n }, {\n from: 'number',\n to: 'Fraction',\n convert: function convert(x) {\n if (!Fraction) {\n throwNoFraction(x);\n }\n var f = new Fraction(x);\n if (f.valueOf() !== x) {\n throw new TypeError('Cannot implicitly convert a number to a Fraction when there will be a loss of precision ' + '(value: ' + x + '). ' + 'Use function fraction(x) to convert to Fraction.');\n }\n return f;\n }\n }, {\n // FIXME: add conversion from Fraction to number, for example for `sqrt(fraction(1,3))`\n // from: 'Fraction',\n // to: 'number',\n // convert: function (x) {\n // return x.valueOf()\n // }\n // }, {\n from: 'string',\n to: 'number',\n convert: function convert(x) {\n var n = Number(x);\n if (isNaN(n)) {\n throw new Error('Cannot convert \"' + x + '\" to a number');\n }\n return n;\n }\n }, {\n from: 'string',\n to: 'BigNumber',\n convert: function convert(x) {\n if (!BigNumber) {\n throwNoBignumber(x);\n }\n try {\n return new BigNumber(x);\n } catch (err) {\n throw new Error('Cannot convert \"' + x + '\" to BigNumber');\n }\n }\n }, {\n from: 'string',\n to: 'Fraction',\n convert: function convert(x) {\n if (!Fraction) {\n throwNoFraction(x);\n }\n try {\n return new Fraction(x);\n } catch (err) {\n throw new Error('Cannot convert \"' + x + '\" to Fraction');\n }\n }\n }, {\n from: 'string',\n to: 'Complex',\n convert: function convert(x) {\n if (!Complex) {\n throwNoComplex(x);\n }\n try {\n return new Complex(x);\n } catch (err) {\n throw new Error('Cannot convert \"' + x + '\" to Complex');\n }\n }\n }, {\n from: 'boolean',\n to: 'number',\n convert: function convert(x) {\n return +x;\n }\n }, {\n from: 'boolean',\n to: 'BigNumber',\n convert: function convert(x) {\n if (!BigNumber) {\n throwNoBignumber(x);\n }\n return new BigNumber(+x);\n }\n }, {\n from: 'boolean',\n to: 'Fraction',\n convert: function convert(x) {\n if (!Fraction) {\n throwNoFraction(x);\n }\n return new Fraction(+x);\n }\n }, {\n from: 'boolean',\n to: 'string',\n convert: function convert(x) {\n return String(x);\n }\n }, {\n from: 'Array',\n to: 'Matrix',\n convert: function convert(array) {\n if (!DenseMatrix) {\n throwNoMatrix();\n }\n return new DenseMatrix(array);\n }\n }, {\n from: 'Matrix',\n to: 'Array',\n convert: function convert(matrix) {\n return matrix.valueOf();\n }\n }]);\n\n // Provide a suggestion on how to call a function elementwise\n // This was added primarily as guidance for the v10 -> v11 transition,\n // and could potentially be removed in the future if it no longer seems\n // to be helpful.\n typed.onMismatch = (name, args, signatures) => {\n var usualError = typed.createError(name, args, signatures);\n if (['wrongType', 'mismatch'].includes(usualError.data.category) && args.length === 1 && isCollection(args[0]) &&\n // check if the function can be unary:\n signatures.some(sig => !sig.params.includes(','))) {\n var err = new TypeError(\"Function '\".concat(name, \"' doesn't apply to matrices. To call it \") + \"elementwise on a matrix 'M', try 'map(M, \".concat(name, \")'.\"));\n err.data = usualError.data;\n throw err;\n }\n throw usualError;\n };\n\n // Provide a suggestion on how to call a function elementwise\n // This was added primarily as guidance for the v10 -> v11 transition,\n // and could potentially be removed in the future if it no longer seems\n // to be helpful.\n typed.onMismatch = (name, args, signatures) => {\n var usualError = typed.createError(name, args, signatures);\n if (['wrongType', 'mismatch'].includes(usualError.data.category) && args.length === 1 && isCollection(args[0]) &&\n // check if the function can be unary:\n signatures.some(sig => !sig.params.includes(','))) {\n var err = new TypeError(\"Function '\".concat(name, \"' doesn't apply to matrices. To call it \") + \"elementwise on a matrix 'M', try 'map(M, \".concat(name, \")'.\"));\n err.data = usualError.data;\n throw err;\n }\n throw usualError;\n };\n return typed;\n});\nfunction throwNoBignumber(x) {\n throw new Error(\"Cannot convert value \".concat(x, \" into a BigNumber: no class 'BigNumber' provided\"));\n}\nfunction throwNoComplex(x) {\n throw new Error(\"Cannot convert value \".concat(x, \" into a Complex number: no class 'Complex' provided\"));\n}\nfunction throwNoMatrix() {\n throw new Error('Cannot convert array into a Matrix: no class \\'DenseMatrix\\' provided');\n}\nfunction throwNoFraction(x) {\n throw new Error(\"Cannot convert value \".concat(x, \" into a Fraction, no class 'Fraction' provided.\"));\n}","import { isArray, isBigNumber, isCollection, isIndex, isMatrix, isNumber, isString, typeOf } from '../../utils/is.js';\nimport { isInteger } from '../../utils/number.js';\nimport { format } from '../../utils/string.js';\nimport { clone, deepStrictEqual } from '../../utils/object.js';\nimport { arraySize, getArrayDataType, processSizesWildcard, unsqueeze, validateIndex } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nimport { DimensionError } from '../../error/DimensionError.js';\nimport { maxArgumentCount } from '../../utils/function.js';\nvar name = 'SparseMatrix';\nvar dependencies = ['typed', 'equalScalar', 'Matrix'];\nexport var createSparseMatrixClass = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n equalScalar,\n Matrix\n } = _ref;\n /**\n * Sparse Matrix implementation. This type implements\n * a [Compressed Column Storage](https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_column_(CSC_or_CCS))\n * format for two-dimensional sparse matrices.\n * @class SparseMatrix\n */\n function SparseMatrix(data, datatype) {\n if (!(this instanceof SparseMatrix)) {\n throw new SyntaxError('Constructor must be called with the new operator');\n }\n if (datatype && !isString(datatype)) {\n throw new Error('Invalid datatype: ' + datatype);\n }\n if (isMatrix(data)) {\n // create from matrix\n _createFromMatrix(this, data, datatype);\n } else if (data && isArray(data.index) && isArray(data.ptr) && isArray(data.size)) {\n // initialize fields\n this._values = data.values;\n this._index = data.index;\n this._ptr = data.ptr;\n this._size = data.size;\n this._datatype = datatype || data.datatype;\n } else if (isArray(data)) {\n // create from array\n _createFromArray(this, data, datatype);\n } else if (data) {\n // unsupported type\n throw new TypeError('Unsupported type of data (' + typeOf(data) + ')');\n } else {\n // nothing provided\n this._values = [];\n this._index = [];\n this._ptr = [0];\n this._size = [0, 0];\n this._datatype = datatype;\n }\n }\n function _createFromMatrix(matrix, source, datatype) {\n // check matrix type\n if (source.type === 'SparseMatrix') {\n // clone arrays\n matrix._values = source._values ? clone(source._values) : undefined;\n matrix._index = clone(source._index);\n matrix._ptr = clone(source._ptr);\n matrix._size = clone(source._size);\n matrix._datatype = datatype || source._datatype;\n } else {\n // build from matrix data\n _createFromArray(matrix, source.valueOf(), datatype || source._datatype);\n }\n }\n function _createFromArray(matrix, data, datatype) {\n // initialize fields\n matrix._values = [];\n matrix._index = [];\n matrix._ptr = [];\n matrix._datatype = datatype;\n // discover rows & columns, do not use math.size() to avoid looping array twice\n var rows = data.length;\n var columns = 0;\n\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n if (isString(datatype)) {\n // find signature that matches (datatype, datatype)\n eq = typed.find(equalScalar, [datatype, datatype]) || equalScalar;\n // convert 0 to the same datatype\n zero = typed.convert(0, datatype);\n }\n\n // check we have rows (empty array)\n if (rows > 0) {\n // column index\n var j = 0;\n do {\n // store pointer to values index\n matrix._ptr.push(matrix._index.length);\n // loop rows\n for (var i = 0; i < rows; i++) {\n // current row\n var row = data[i];\n // check row is an array\n if (isArray(row)) {\n // update columns if needed (only on first column)\n if (j === 0 && columns < row.length) {\n columns = row.length;\n }\n // check row has column\n if (j < row.length) {\n // value\n var v = row[j];\n // check value != 0\n if (!eq(v, zero)) {\n // store value\n matrix._values.push(v);\n // index\n matrix._index.push(i);\n }\n }\n } else {\n // update columns if needed (only on first column)\n if (j === 0 && columns < 1) {\n columns = 1;\n }\n // check value != 0 (row is a scalar)\n if (!eq(row, zero)) {\n // store value\n matrix._values.push(row);\n // index\n matrix._index.push(i);\n }\n }\n }\n // increment index\n j++;\n } while (j < columns);\n }\n // store number of values in ptr\n matrix._ptr.push(matrix._index.length);\n // size\n matrix._size = [rows, columns];\n }\n SparseMatrix.prototype = new Matrix();\n\n /**\n * Create a new SparseMatrix\n */\n SparseMatrix.prototype.createSparseMatrix = function (data, datatype) {\n return new SparseMatrix(data, datatype);\n };\n\n /**\n * Attach type information\n */\n Object.defineProperty(SparseMatrix, 'name', {\n value: 'SparseMatrix'\n });\n SparseMatrix.prototype.constructor = SparseMatrix;\n SparseMatrix.prototype.type = 'SparseMatrix';\n SparseMatrix.prototype.isSparseMatrix = true;\n\n /**\n * Get the matrix type\n *\n * Usage:\n * const matrixType = matrix.getDataType() // retrieves the matrix type\n *\n * @memberOf SparseMatrix\n * @return {string} type information; if multiple types are found from the Matrix, it will return \"mixed\"\n */\n SparseMatrix.prototype.getDataType = function () {\n return getArrayDataType(this._values, typeOf);\n };\n\n /**\n * Get the storage format used by the matrix.\n *\n * Usage:\n * const format = matrix.storage() // retrieve storage format\n *\n * @memberof SparseMatrix\n * @return {string} The storage format.\n */\n SparseMatrix.prototype.storage = function () {\n return 'sparse';\n };\n\n /**\n * Get the datatype of the data stored in the matrix.\n *\n * Usage:\n * const format = matrix.datatype() // retrieve matrix datatype\n *\n * @memberof SparseMatrix\n * @return {string} The datatype.\n */\n SparseMatrix.prototype.datatype = function () {\n return this._datatype;\n };\n\n /**\n * Create a new SparseMatrix\n * @memberof SparseMatrix\n * @param {Array} data\n * @param {string} [datatype]\n */\n SparseMatrix.prototype.create = function (data, datatype) {\n return new SparseMatrix(data, datatype);\n };\n\n /**\n * Get the matrix density.\n *\n * Usage:\n * const density = matrix.density() // retrieve matrix density\n *\n * @memberof SparseMatrix\n * @return {number} The matrix density.\n */\n SparseMatrix.prototype.density = function () {\n // rows & columns\n var rows = this._size[0];\n var columns = this._size[1];\n // calculate density\n return rows !== 0 && columns !== 0 ? this._index.length / (rows * columns) : 0;\n };\n\n /**\n * Get a subset of the matrix, or replace a subset of the matrix.\n *\n * Usage:\n * const subset = matrix.subset(index) // retrieve subset\n * const value = matrix.subset(index, replacement) // replace subset\n *\n * @memberof SparseMatrix\n * @param {Index} index\n * @param {Array | Matrix | *} [replacement]\n * @param {*} [defaultValue=0] Default value, filled in on new entries when\n * the matrix is resized. If not provided,\n * new matrix elements will be filled with zeros.\n */\n SparseMatrix.prototype.subset = function (index, replacement, defaultValue) {\n // check it is a pattern matrix\n if (!this._values) {\n throw new Error('Cannot invoke subset on a Pattern only matrix');\n }\n\n // check arguments\n switch (arguments.length) {\n case 1:\n return _getsubset(this, index);\n\n // intentional fall through\n case 2:\n case 3:\n return _setsubset(this, index, replacement, defaultValue);\n default:\n throw new SyntaxError('Wrong number of arguments');\n }\n };\n function _getsubset(matrix, idx) {\n // check idx\n if (!isIndex(idx)) {\n throw new TypeError('Invalid index');\n }\n var isScalar = idx.isScalar();\n if (isScalar) {\n // return a scalar\n return matrix.get(idx.min());\n }\n // validate dimensions\n var size = idx.size();\n if (size.length !== matrix._size.length) {\n throw new DimensionError(size.length, matrix._size.length);\n }\n\n // vars\n var i, ii, k, kk;\n\n // validate if any of the ranges in the index is out of range\n var min = idx.min();\n var max = idx.max();\n for (i = 0, ii = matrix._size.length; i < ii; i++) {\n validateIndex(min[i], matrix._size[i]);\n validateIndex(max[i], matrix._size[i]);\n }\n\n // matrix arrays\n var mvalues = matrix._values;\n var mindex = matrix._index;\n var mptr = matrix._ptr;\n\n // rows & columns dimensions for result matrix\n var rows = idx.dimension(0);\n var columns = idx.dimension(1);\n\n // workspace & permutation vector\n var w = [];\n var pv = [];\n\n // loop rows in resulting matrix\n rows.forEach(function (i, r) {\n // update permutation vector\n pv[i] = r[0];\n // mark i in workspace\n w[i] = true;\n });\n\n // result matrix arrays\n var values = mvalues ? [] : undefined;\n var index = [];\n var ptr = [];\n\n // loop columns in result matrix\n columns.forEach(function (j) {\n // update ptr\n ptr.push(index.length);\n // loop values in column j\n for (k = mptr[j], kk = mptr[j + 1]; k < kk; k++) {\n // row\n i = mindex[k];\n // check row is in result matrix\n if (w[i] === true) {\n // push index\n index.push(pv[i]);\n // check we need to process values\n if (values) {\n values.push(mvalues[k]);\n }\n }\n }\n });\n // update ptr\n ptr.push(index.length);\n\n // return matrix\n return new SparseMatrix({\n values,\n index,\n ptr,\n size,\n datatype: matrix._datatype\n });\n }\n function _setsubset(matrix, index, submatrix, defaultValue) {\n // check index\n if (!index || index.isIndex !== true) {\n throw new TypeError('Invalid index');\n }\n\n // get index size and check whether the index contains a single value\n var iSize = index.size();\n var isScalar = index.isScalar();\n\n // calculate the size of the submatrix, and convert it into an Array if needed\n var sSize;\n if (isMatrix(submatrix)) {\n // submatrix size\n sSize = submatrix.size();\n // use array representation\n submatrix = submatrix.toArray();\n } else {\n // get submatrix size (array, scalar)\n sSize = arraySize(submatrix);\n }\n\n // check index is a scalar\n if (isScalar) {\n // verify submatrix is a scalar\n if (sSize.length !== 0) {\n throw new TypeError('Scalar expected');\n }\n // set value\n matrix.set(index.min(), submatrix, defaultValue);\n } else {\n // validate dimensions, index size must be one or two dimensions\n if (iSize.length !== 1 && iSize.length !== 2) {\n throw new DimensionError(iSize.length, matrix._size.length, '<');\n }\n\n // check submatrix and index have the same dimensions\n if (sSize.length < iSize.length) {\n // calculate number of missing outer dimensions\n var i = 0;\n var outer = 0;\n while (iSize[i] === 1 && sSize[i] === 1) {\n i++;\n }\n while (iSize[i] === 1) {\n outer++;\n i++;\n }\n // unsqueeze both outer and inner dimensions\n submatrix = unsqueeze(submatrix, iSize.length, outer, sSize);\n }\n\n // check whether the size of the submatrix matches the index size\n if (!deepStrictEqual(iSize, sSize)) {\n throw new DimensionError(iSize, sSize, '>');\n }\n\n // insert the sub matrix\n if (iSize.length === 1) {\n // if the replacement index only has 1 dimension, go trough each one and set its value\n var range = index.dimension(0);\n range.forEach(function (dataIndex, subIndex) {\n validateIndex(dataIndex);\n matrix.set([dataIndex, 0], submatrix[subIndex[0]], defaultValue);\n });\n } else {\n // if the replacement index has 2 dimensions, go through each one and set the value in the correct index\n var firstDimensionRange = index.dimension(0);\n var secondDimensionRange = index.dimension(1);\n firstDimensionRange.forEach(function (firstDataIndex, firstSubIndex) {\n validateIndex(firstDataIndex);\n secondDimensionRange.forEach(function (secondDataIndex, secondSubIndex) {\n validateIndex(secondDataIndex);\n matrix.set([firstDataIndex, secondDataIndex], submatrix[firstSubIndex[0]][secondSubIndex[0]], defaultValue);\n });\n });\n }\n }\n return matrix;\n }\n\n /**\n * Get a single element from the matrix.\n * @memberof SparseMatrix\n * @param {number[]} index Zero-based index\n * @return {*} value\n */\n SparseMatrix.prototype.get = function (index) {\n if (!isArray(index)) {\n throw new TypeError('Array expected');\n }\n if (index.length !== this._size.length) {\n throw new DimensionError(index.length, this._size.length);\n }\n\n // check it is a pattern matrix\n if (!this._values) {\n throw new Error('Cannot invoke get on a Pattern only matrix');\n }\n\n // row and column\n var i = index[0];\n var j = index[1];\n\n // check i, j are valid\n validateIndex(i, this._size[0]);\n validateIndex(j, this._size[1]);\n\n // find value index\n var k = _getValueIndex(i, this._ptr[j], this._ptr[j + 1], this._index);\n // check k is prior to next column k and it is in the correct row\n if (k < this._ptr[j + 1] && this._index[k] === i) {\n return this._values[k];\n }\n return 0;\n };\n\n /**\n * Replace a single element in the matrix.\n * @memberof SparseMatrix\n * @param {number[]} index Zero-based index\n * @param {*} v\n * @param {*} [defaultValue] Default value, filled in on new entries when\n * the matrix is resized. If not provided,\n * new matrix elements will be set to zero.\n * @return {SparseMatrix} self\n */\n SparseMatrix.prototype.set = function (index, v, defaultValue) {\n if (!isArray(index)) {\n throw new TypeError('Array expected');\n }\n if (index.length !== this._size.length) {\n throw new DimensionError(index.length, this._size.length);\n }\n\n // check it is a pattern matrix\n if (!this._values) {\n throw new Error('Cannot invoke set on a Pattern only matrix');\n }\n\n // row and column\n var i = index[0];\n var j = index[1];\n\n // rows & columns\n var rows = this._size[0];\n var columns = this._size[1];\n\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n if (isString(this._datatype)) {\n // find signature that matches (datatype, datatype)\n eq = typed.find(equalScalar, [this._datatype, this._datatype]) || equalScalar;\n // convert 0 to the same datatype\n zero = typed.convert(0, this._datatype);\n }\n\n // check we need to resize matrix\n if (i > rows - 1 || j > columns - 1) {\n // resize matrix\n _resize(this, Math.max(i + 1, rows), Math.max(j + 1, columns), defaultValue);\n // update rows & columns\n rows = this._size[0];\n columns = this._size[1];\n }\n\n // check i, j are valid\n validateIndex(i, rows);\n validateIndex(j, columns);\n\n // find value index\n var k = _getValueIndex(i, this._ptr[j], this._ptr[j + 1], this._index);\n // check k is prior to next column k and it is in the correct row\n if (k < this._ptr[j + 1] && this._index[k] === i) {\n // check value != 0\n if (!eq(v, zero)) {\n // update value\n this._values[k] = v;\n } else {\n // remove value from matrix\n _remove(k, j, this._values, this._index, this._ptr);\n }\n } else {\n if (!eq(v, zero)) {\n // insert value @ (i, j)\n _insert(k, i, j, v, this._values, this._index, this._ptr);\n }\n }\n return this;\n };\n function _getValueIndex(i, top, bottom, index) {\n // check row is on the bottom side\n if (bottom - top === 0) {\n return bottom;\n }\n // loop rows [top, bottom[\n for (var r = top; r < bottom; r++) {\n // check we found value index\n if (index[r] === i) {\n return r;\n }\n }\n // we did not find row\n return top;\n }\n function _remove(k, j, values, index, ptr) {\n // remove value @ k\n values.splice(k, 1);\n index.splice(k, 1);\n // update pointers\n for (var x = j + 1; x < ptr.length; x++) {\n ptr[x]--;\n }\n }\n function _insert(k, i, j, v, values, index, ptr) {\n // insert value\n values.splice(k, 0, v);\n // update row for k\n index.splice(k, 0, i);\n // update column pointers\n for (var x = j + 1; x < ptr.length; x++) {\n ptr[x]++;\n }\n }\n\n /**\n * Resize the matrix to the given size. Returns a copy of the matrix when\n * `copy=true`, otherwise return the matrix itself (resize in place).\n *\n * @memberof SparseMatrix\n * @param {number[] | Matrix} size The new size the matrix should have.\n * Since sparse matrices are always two-dimensional,\n * size must be two numbers in either an array or a matrix\n * @param {*} [defaultValue=0] Default value, filled in on new entries.\n * If not provided, the matrix elements will\n * be filled with zeros.\n * @param {boolean} [copy] Return a resized copy of the matrix\n *\n * @return {Matrix} The resized matrix\n */\n SparseMatrix.prototype.resize = function (size, defaultValue, copy) {\n // validate arguments\n if (!isCollection(size)) {\n throw new TypeError('Array or Matrix expected');\n }\n\n // SparseMatrix input is always 2d, flatten this into 1d if it's indeed a vector\n var sizeArray = size.valueOf().map(value => {\n return Array.isArray(value) && value.length === 1 ? value[0] : value;\n });\n if (sizeArray.length !== 2) {\n throw new Error('Only two dimensions matrix are supported');\n }\n\n // check sizes\n sizeArray.forEach(function (value) {\n if (!isNumber(value) || !isInteger(value) || value < 0) {\n throw new TypeError('Invalid size, must contain positive integers ' + '(size: ' + format(sizeArray) + ')');\n }\n });\n\n // matrix to resize\n var m = copy ? this.clone() : this;\n // resize matrix\n return _resize(m, sizeArray[0], sizeArray[1], defaultValue);\n };\n function _resize(matrix, rows, columns, defaultValue) {\n // value to insert at the time of growing matrix\n var value = defaultValue || 0;\n\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n if (isString(matrix._datatype)) {\n // find signature that matches (datatype, datatype)\n eq = typed.find(equalScalar, [matrix._datatype, matrix._datatype]) || equalScalar;\n // convert 0 to the same datatype\n zero = typed.convert(0, matrix._datatype);\n // convert value to the same datatype\n value = typed.convert(value, matrix._datatype);\n }\n\n // should we insert the value?\n var ins = !eq(value, zero);\n\n // old columns and rows\n var r = matrix._size[0];\n var c = matrix._size[1];\n var i, j, k;\n\n // check we need to increase columns\n if (columns > c) {\n // loop new columns\n for (j = c; j < columns; j++) {\n // update matrix._ptr for current column\n matrix._ptr[j] = matrix._values.length;\n // check we need to insert matrix._values\n if (ins) {\n // loop rows\n for (i = 0; i < r; i++) {\n // add new matrix._values\n matrix._values.push(value);\n // update matrix._index\n matrix._index.push(i);\n }\n }\n }\n // store number of matrix._values in matrix._ptr\n matrix._ptr[columns] = matrix._values.length;\n } else if (columns < c) {\n // truncate matrix._ptr\n matrix._ptr.splice(columns + 1, c - columns);\n // truncate matrix._values and matrix._index\n matrix._values.splice(matrix._ptr[columns], matrix._values.length);\n matrix._index.splice(matrix._ptr[columns], matrix._index.length);\n }\n // update columns\n c = columns;\n\n // check we need to increase rows\n if (rows > r) {\n // check we have to insert values\n if (ins) {\n // inserts\n var n = 0;\n // loop columns\n for (j = 0; j < c; j++) {\n // update matrix._ptr for current column\n matrix._ptr[j] = matrix._ptr[j] + n;\n // where to insert matrix._values\n k = matrix._ptr[j + 1] + n;\n // pointer\n var p = 0;\n // loop new rows, initialize pointer\n for (i = r; i < rows; i++, p++) {\n // add value\n matrix._values.splice(k + p, 0, value);\n // update matrix._index\n matrix._index.splice(k + p, 0, i);\n // increment inserts\n n++;\n }\n }\n // store number of matrix._values in matrix._ptr\n matrix._ptr[c] = matrix._values.length;\n }\n } else if (rows < r) {\n // deletes\n var d = 0;\n // loop columns\n for (j = 0; j < c; j++) {\n // update matrix._ptr for current column\n matrix._ptr[j] = matrix._ptr[j] - d;\n // where matrix._values start for next column\n var k0 = matrix._ptr[j];\n var k1 = matrix._ptr[j + 1] - d;\n // loop matrix._index\n for (k = k0; k < k1; k++) {\n // row\n i = matrix._index[k];\n // check we need to delete value and matrix._index\n if (i > rows - 1) {\n // remove value\n matrix._values.splice(k, 1);\n // remove item from matrix._index\n matrix._index.splice(k, 1);\n // increase deletes\n d++;\n }\n }\n }\n // update matrix._ptr for current column\n matrix._ptr[j] = matrix._values.length;\n }\n // update matrix._size\n matrix._size[0] = rows;\n matrix._size[1] = columns;\n // return matrix\n return matrix;\n }\n\n /**\n * Reshape the matrix to the given size. Returns a copy of the matrix when\n * `copy=true`, otherwise return the matrix itself (reshape in place).\n *\n * NOTE: This might be better suited to copy by default, instead of modifying\n * in place. For now, it operates in place to remain consistent with\n * resize().\n *\n * @memberof SparseMatrix\n * @param {number[]} sizes The new size the matrix should have.\n * Since sparse matrices are always two-dimensional,\n * size must be two numbers in either an array or a matrix\n * @param {boolean} [copy] Return a reshaped copy of the matrix\n *\n * @return {Matrix} The reshaped matrix\n */\n SparseMatrix.prototype.reshape = function (sizes, copy) {\n // validate arguments\n if (!isArray(sizes)) {\n throw new TypeError('Array expected');\n }\n if (sizes.length !== 2) {\n throw new Error('Sparse matrices can only be reshaped in two dimensions');\n }\n\n // check sizes\n sizes.forEach(function (value) {\n if (!isNumber(value) || !isInteger(value) || value <= -2 || value === 0) {\n throw new TypeError('Invalid size, must contain positive integers or -1 ' + '(size: ' + format(sizes) + ')');\n }\n });\n var currentLength = this._size[0] * this._size[1];\n sizes = processSizesWildcard(sizes, currentLength);\n var newLength = sizes[0] * sizes[1];\n\n // m * n must not change\n if (currentLength !== newLength) {\n throw new Error('Reshaping sparse matrix will result in the wrong number of elements');\n }\n\n // matrix to reshape\n var m = copy ? this.clone() : this;\n\n // return unchanged if the same shape\n if (this._size[0] === sizes[0] && this._size[1] === sizes[1]) {\n return m;\n }\n\n // Convert to COO format (generate a column index)\n var colIndex = [];\n for (var i = 0; i < m._ptr.length; i++) {\n for (var j = 0; j < m._ptr[i + 1] - m._ptr[i]; j++) {\n colIndex.push(i);\n }\n }\n\n // Clone the values array\n var values = m._values.slice();\n\n // Clone the row index array\n var rowIndex = m._index.slice();\n\n // Transform the (row, column) indices\n for (var _i = 0; _i < m._index.length; _i++) {\n var r1 = rowIndex[_i];\n var c1 = colIndex[_i];\n var flat = r1 * m._size[1] + c1;\n colIndex[_i] = flat % sizes[1];\n rowIndex[_i] = Math.floor(flat / sizes[1]);\n }\n\n // Now reshaping is supposed to preserve the row-major order, BUT these sparse matrices are stored\n // in column-major order, so we have to reorder the value array now. One option is to use a multisort,\n // sorting several arrays based on some other array.\n\n // OR, we could easily just:\n\n // 1. Remove all values from the matrix\n m._values.length = 0;\n m._index.length = 0;\n m._ptr.length = sizes[1] + 1;\n m._size = sizes.slice();\n for (var _i2 = 0; _i2 < m._ptr.length; _i2++) {\n m._ptr[_i2] = 0;\n }\n\n // 2. Re-insert all elements in the proper order (simplified code from SparseMatrix.prototype.set)\n // This step is probably the most time-consuming\n for (var h = 0; h < values.length; h++) {\n var _i3 = rowIndex[h];\n var _j = colIndex[h];\n var v = values[h];\n var k = _getValueIndex(_i3, m._ptr[_j], m._ptr[_j + 1], m._index);\n _insert(k, _i3, _j, v, m._values, m._index, m._ptr);\n }\n\n // The value indices are inserted out of order, but apparently that's... still OK?\n\n return m;\n };\n\n /**\n * Create a clone of the matrix\n * @memberof SparseMatrix\n * @return {SparseMatrix} clone\n */\n SparseMatrix.prototype.clone = function () {\n var m = new SparseMatrix({\n values: this._values ? clone(this._values) : undefined,\n index: clone(this._index),\n ptr: clone(this._ptr),\n size: clone(this._size),\n datatype: this._datatype\n });\n return m;\n };\n\n /**\n * Retrieve the size of the matrix.\n * @memberof SparseMatrix\n * @returns {number[]} size\n */\n SparseMatrix.prototype.size = function () {\n return this._size.slice(0); // copy the Array\n };\n\n /**\n * Create a new matrix with the results of the callback function executed on\n * each entry of the matrix.\n * @memberof SparseMatrix\n * @param {Function} callback The callback function is invoked with three\n * parameters: the value of the element, the index\n * of the element, and the Matrix being traversed.\n * @param {boolean} [skipZeros] Invoke callback function for non-zero values only.\n *\n * @return {SparseMatrix} matrix\n */\n SparseMatrix.prototype.map = function (callback, skipZeros) {\n // check it is a pattern matrix\n if (!this._values) {\n throw new Error('Cannot invoke map on a Pattern only matrix');\n }\n // matrix instance\n var me = this;\n // rows and columns\n var rows = this._size[0];\n var columns = this._size[1];\n // invoke callback\n var args = maxArgumentCount(callback);\n var invoke = function invoke(v, i, j) {\n // invoke callback\n if (args === 1) return callback(v);\n if (args === 2) return callback(v, [i, j]);\n return callback(v, [i, j], me);\n };\n // invoke _map\n return _map(this, 0, rows - 1, 0, columns - 1, invoke, skipZeros);\n };\n\n /**\n * Create a new matrix with the results of the callback function executed on the interval\n * [minRow..maxRow, minColumn..maxColumn].\n */\n function _map(matrix, minRow, maxRow, minColumn, maxColumn, callback, skipZeros) {\n // result arrays\n var values = [];\n var index = [];\n var ptr = [];\n\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n if (isString(matrix._datatype)) {\n // find signature that matches (datatype, datatype)\n eq = typed.find(equalScalar, [matrix._datatype, matrix._datatype]) || equalScalar;\n // convert 0 to the same datatype\n zero = typed.convert(0, matrix._datatype);\n }\n\n // invoke callback\n var invoke = function invoke(v, x, y) {\n // invoke callback\n v = callback(v, x, y);\n // check value != 0\n if (!eq(v, zero)) {\n // store value\n values.push(v);\n // index\n index.push(x);\n }\n };\n // loop columns\n for (var j = minColumn; j <= maxColumn; j++) {\n // store pointer to values index\n ptr.push(values.length);\n // k0 <= k < k1 where k0 = _ptr[j] && k1 = _ptr[j+1]\n var k0 = matrix._ptr[j];\n var k1 = matrix._ptr[j + 1];\n if (skipZeros) {\n // loop k within [k0, k1[\n for (var k = k0; k < k1; k++) {\n // row index\n var i = matrix._index[k];\n // check i is in range\n if (i >= minRow && i <= maxRow) {\n // value @ k\n invoke(matrix._values[k], i - minRow, j - minColumn);\n }\n }\n } else {\n // create a cache holding all defined values\n var _values = {};\n for (var _k = k0; _k < k1; _k++) {\n var _i4 = matrix._index[_k];\n _values[_i4] = matrix._values[_k];\n }\n\n // loop over all rows (indexes can be unordered so we can't use that),\n // and either read the value or zero\n for (var _i5 = minRow; _i5 <= maxRow; _i5++) {\n var value = _i5 in _values ? _values[_i5] : 0;\n invoke(value, _i5 - minRow, j - minColumn);\n }\n }\n }\n\n // store number of values in ptr\n ptr.push(values.length);\n // return sparse matrix\n return new SparseMatrix({\n values,\n index,\n ptr,\n size: [maxRow - minRow + 1, maxColumn - minColumn + 1]\n });\n }\n\n /**\n * Execute a callback function on each entry of the matrix.\n * @memberof SparseMatrix\n * @param {Function} callback The callback function is invoked with three\n * parameters: the value of the element, the index\n * of the element, and the Matrix being traversed.\n * @param {boolean} [skipZeros] Invoke callback function for non-zero values only.\n * If false, the indices are guaranteed to be in order,\n * if true, the indices can be unordered.\n */\n SparseMatrix.prototype.forEach = function (callback, skipZeros) {\n // check it is a pattern matrix\n if (!this._values) {\n throw new Error('Cannot invoke forEach on a Pattern only matrix');\n }\n // matrix instance\n var me = this;\n // rows and columns\n var rows = this._size[0];\n var columns = this._size[1];\n // loop columns\n for (var j = 0; j < columns; j++) {\n // k0 <= k < k1 where k0 = _ptr[j] && k1 = _ptr[j+1]\n var k0 = this._ptr[j];\n var k1 = this._ptr[j + 1];\n if (skipZeros) {\n // loop k within [k0, k1[\n for (var k = k0; k < k1; k++) {\n // row index\n var i = this._index[k];\n\n // value @ k\n callback(this._values[k], [i, j], me);\n }\n } else {\n // create a cache holding all defined values\n var values = {};\n for (var _k2 = k0; _k2 < k1; _k2++) {\n var _i6 = this._index[_k2];\n values[_i6] = this._values[_k2];\n }\n\n // loop over all rows (indexes can be unordered so we can't use that),\n // and either read the value or zero\n for (var _i7 = 0; _i7 < rows; _i7++) {\n var value = _i7 in values ? values[_i7] : 0;\n callback(value, [_i7, j], me);\n }\n }\n }\n };\n\n /**\n * Iterate over the matrix elements, skipping zeros\n * @return {Iterable<{ value, index: number[] }>}\n */\n SparseMatrix.prototype[Symbol.iterator] = function* () {\n if (!this._values) {\n throw new Error('Cannot iterate a Pattern only matrix');\n }\n var columns = this._size[1];\n for (var j = 0; j < columns; j++) {\n var k0 = this._ptr[j];\n var k1 = this._ptr[j + 1];\n for (var k = k0; k < k1; k++) {\n // row index\n var i = this._index[k];\n yield {\n value: this._values[k],\n index: [i, j]\n };\n }\n }\n };\n\n /**\n * Create an Array with a copy of the data of the SparseMatrix\n * @memberof SparseMatrix\n * @returns {Array} array\n */\n SparseMatrix.prototype.toArray = function () {\n return _toArray(this._values, this._index, this._ptr, this._size, true);\n };\n\n /**\n * Get the primitive value of the SparseMatrix: a two dimensions array\n * @memberof SparseMatrix\n * @returns {Array} array\n */\n SparseMatrix.prototype.valueOf = function () {\n return _toArray(this._values, this._index, this._ptr, this._size, false);\n };\n function _toArray(values, index, ptr, size, copy) {\n // rows and columns\n var rows = size[0];\n var columns = size[1];\n // result\n var a = [];\n // vars\n var i, j;\n // initialize array\n for (i = 0; i < rows; i++) {\n a[i] = [];\n for (j = 0; j < columns; j++) {\n a[i][j] = 0;\n }\n }\n\n // loop columns\n for (j = 0; j < columns; j++) {\n // k0 <= k < k1 where k0 = _ptr[j] && k1 = _ptr[j+1]\n var k0 = ptr[j];\n var k1 = ptr[j + 1];\n // loop k within [k0, k1[\n for (var k = k0; k < k1; k++) {\n // row index\n i = index[k];\n // set value (use one for pattern matrix)\n a[i][j] = values ? copy ? clone(values[k]) : values[k] : 1;\n }\n }\n return a;\n }\n\n /**\n * Get a string representation of the matrix, with optional formatting options.\n * @memberof SparseMatrix\n * @param {Object | number | Function} [options] Formatting options. See\n * lib/utils/number:format for a\n * description of the available\n * options.\n * @returns {string} str\n */\n SparseMatrix.prototype.format = function (options) {\n // rows and columns\n var rows = this._size[0];\n var columns = this._size[1];\n // density\n var density = this.density();\n // rows & columns\n var str = 'Sparse Matrix [' + format(rows, options) + ' x ' + format(columns, options) + '] density: ' + format(density, options) + '\\n';\n // loop columns\n for (var j = 0; j < columns; j++) {\n // k0 <= k < k1 where k0 = _ptr[j] && k1 = _ptr[j+1]\n var k0 = this._ptr[j];\n var k1 = this._ptr[j + 1];\n // loop k within [k0, k1[\n for (var k = k0; k < k1; k++) {\n // row index\n var i = this._index[k];\n // append value\n str += '\\n (' + format(i, options) + ', ' + format(j, options) + ') ==> ' + (this._values ? format(this._values[k], options) : 'X');\n }\n }\n return str;\n };\n\n /**\n * Get a string representation of the matrix\n * @memberof SparseMatrix\n * @returns {string} str\n */\n SparseMatrix.prototype.toString = function () {\n return format(this.toArray());\n };\n\n /**\n * Get a JSON representation of the matrix\n * @memberof SparseMatrix\n * @returns {Object}\n */\n SparseMatrix.prototype.toJSON = function () {\n return {\n mathjs: 'SparseMatrix',\n values: this._values,\n index: this._index,\n ptr: this._ptr,\n size: this._size,\n datatype: this._datatype\n };\n };\n\n /**\n * Get the kth Matrix diagonal.\n *\n * @memberof SparseMatrix\n * @param {number | BigNumber} [k=0] The kth diagonal where the vector will retrieved.\n *\n * @returns {Matrix} The matrix vector with the diagonal values.\n */\n SparseMatrix.prototype.diagonal = function (k) {\n // validate k if any\n if (k) {\n // convert BigNumber to a number\n if (isBigNumber(k)) {\n k = k.toNumber();\n }\n // is must be an integer\n if (!isNumber(k) || !isInteger(k)) {\n throw new TypeError('The parameter k must be an integer number');\n }\n } else {\n // default value\n k = 0;\n }\n var kSuper = k > 0 ? k : 0;\n var kSub = k < 0 ? -k : 0;\n\n // rows & columns\n var rows = this._size[0];\n var columns = this._size[1];\n\n // number diagonal values\n var n = Math.min(rows - kSub, columns - kSuper);\n\n // diagonal arrays\n var values = [];\n var index = [];\n var ptr = [];\n // initial ptr value\n ptr[0] = 0;\n // loop columns\n for (var j = kSuper; j < columns && values.length < n; j++) {\n // k0 <= k < k1 where k0 = _ptr[j] && k1 = _ptr[j+1]\n var k0 = this._ptr[j];\n var k1 = this._ptr[j + 1];\n // loop x within [k0, k1[\n for (var x = k0; x < k1; x++) {\n // row index\n var i = this._index[x];\n // check row\n if (i === j - kSuper + kSub) {\n // value on this column\n values.push(this._values[x]);\n // store row\n index[values.length - 1] = i - kSub;\n // exit loop\n break;\n }\n }\n }\n // close ptr\n ptr.push(values.length);\n // return matrix\n return new SparseMatrix({\n values,\n index,\n ptr,\n size: [n, 1]\n });\n };\n\n /**\n * Generate a matrix from a JSON object\n * @memberof SparseMatrix\n * @param {Object} json An object structured like\n * `{\"mathjs\": \"SparseMatrix\", \"values\": [], \"index\": [], \"ptr\": [], \"size\": []}`,\n * where mathjs is optional\n * @returns {SparseMatrix}\n */\n SparseMatrix.fromJSON = function (json) {\n return new SparseMatrix(json);\n };\n\n /**\n * Create a diagonal matrix.\n *\n * @memberof SparseMatrix\n * @param {Array} size The matrix size.\n * @param {number | Array | Matrix } value The values for the diagonal.\n * @param {number | BigNumber} [k=0] The kth diagonal where the vector will be filled in.\n * @param {number} [defaultValue] The default value for non-diagonal\n * @param {string} [datatype] The Matrix datatype, values must be of this datatype.\n *\n * @returns {SparseMatrix}\n */\n SparseMatrix.diagonal = function (size, value, k, defaultValue, datatype) {\n if (!isArray(size)) {\n throw new TypeError('Array expected, size parameter');\n }\n if (size.length !== 2) {\n throw new Error('Only two dimensions matrix are supported');\n }\n\n // map size & validate\n size = size.map(function (s) {\n // check it is a big number\n if (isBigNumber(s)) {\n // convert it\n s = s.toNumber();\n }\n // validate arguments\n if (!isNumber(s) || !isInteger(s) || s < 1) {\n throw new Error('Size values must be positive integers');\n }\n return s;\n });\n\n // validate k if any\n if (k) {\n // convert BigNumber to a number\n if (isBigNumber(k)) {\n k = k.toNumber();\n }\n // is must be an integer\n if (!isNumber(k) || !isInteger(k)) {\n throw new TypeError('The parameter k must be an integer number');\n }\n } else {\n // default value\n k = 0;\n }\n\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n if (isString(datatype)) {\n // find signature that matches (datatype, datatype)\n eq = typed.find(equalScalar, [datatype, datatype]) || equalScalar;\n // convert 0 to the same datatype\n zero = typed.convert(0, datatype);\n }\n var kSuper = k > 0 ? k : 0;\n var kSub = k < 0 ? -k : 0;\n\n // rows and columns\n var rows = size[0];\n var columns = size[1];\n\n // number of non-zero items\n var n = Math.min(rows - kSub, columns - kSuper);\n\n // value extraction function\n var _value;\n\n // check value\n if (isArray(value)) {\n // validate array\n if (value.length !== n) {\n // number of values in array must be n\n throw new Error('Invalid value array length');\n }\n // define function\n _value = function _value(i) {\n // return value @ i\n return value[i];\n };\n } else if (isMatrix(value)) {\n // matrix size\n var ms = value.size();\n // validate matrix\n if (ms.length !== 1 || ms[0] !== n) {\n // number of values in array must be n\n throw new Error('Invalid matrix length');\n }\n // define function\n _value = function _value(i) {\n // return value @ i\n return value.get([i]);\n };\n } else {\n // define function\n _value = function _value() {\n // return value\n return value;\n };\n }\n\n // create arrays\n var values = [];\n var index = [];\n var ptr = [];\n\n // loop items\n for (var j = 0; j < columns; j++) {\n // number of rows with value\n ptr.push(values.length);\n // diagonal index\n var i = j - kSuper;\n // check we need to set diagonal value\n if (i >= 0 && i < n) {\n // get value @ i\n var v = _value(i);\n // check for zero\n if (!eq(v, zero)) {\n // column\n index.push(i + kSub);\n // add value\n values.push(v);\n }\n }\n }\n // last value should be number of values\n ptr.push(values.length);\n // create SparseMatrix\n return new SparseMatrix({\n values,\n index,\n ptr,\n size: [rows, columns]\n });\n };\n\n /**\n * Swap rows i and j in Matrix.\n *\n * @memberof SparseMatrix\n * @param {number} i Matrix row index 1\n * @param {number} j Matrix row index 2\n *\n * @return {Matrix} The matrix reference\n */\n SparseMatrix.prototype.swapRows = function (i, j) {\n // check index\n if (!isNumber(i) || !isInteger(i) || !isNumber(j) || !isInteger(j)) {\n throw new Error('Row index must be positive integers');\n }\n // check dimensions\n if (this._size.length !== 2) {\n throw new Error('Only two dimensional matrix is supported');\n }\n // validate index\n validateIndex(i, this._size[0]);\n validateIndex(j, this._size[0]);\n\n // swap rows\n SparseMatrix._swapRows(i, j, this._size[1], this._values, this._index, this._ptr);\n // return current instance\n return this;\n };\n\n /**\n * Loop rows with data in column j.\n *\n * @param {number} j Column\n * @param {Array} values Matrix values\n * @param {Array} index Matrix row indeces\n * @param {Array} ptr Matrix column pointers\n * @param {Function} callback Callback function invoked for every row in column j\n */\n SparseMatrix._forEachRow = function (j, values, index, ptr, callback) {\n // indeces for column j\n var k0 = ptr[j];\n var k1 = ptr[j + 1];\n // loop\n for (var k = k0; k < k1; k++) {\n // invoke callback\n callback(index[k], values[k]);\n }\n };\n\n /**\n * Swap rows x and y in Sparse Matrix data structures.\n *\n * @param {number} x Matrix row index 1\n * @param {number} y Matrix row index 2\n * @param {number} columns Number of columns in matrix\n * @param {Array} values Matrix values\n * @param {Array} index Matrix row indeces\n * @param {Array} ptr Matrix column pointers\n */\n SparseMatrix._swapRows = function (x, y, columns, values, index, ptr) {\n // loop columns\n for (var j = 0; j < columns; j++) {\n // k0 <= k < k1 where k0 = _ptr[j] && k1 = _ptr[j+1]\n var k0 = ptr[j];\n var k1 = ptr[j + 1];\n // find value index @ x\n var kx = _getValueIndex(x, k0, k1, index);\n // find value index @ x\n var ky = _getValueIndex(y, k0, k1, index);\n // check both rows exist in matrix\n if (kx < k1 && ky < k1 && index[kx] === x && index[ky] === y) {\n // swap values (check for pattern matrix)\n if (values) {\n var v = values[kx];\n values[kx] = values[ky];\n values[ky] = v;\n }\n // next column\n continue;\n }\n // check x row exist & no y row\n if (kx < k1 && index[kx] === x && (ky >= k1 || index[ky] !== y)) {\n // value @ x (check for pattern matrix)\n var vx = values ? values[kx] : undefined;\n // insert value @ y\n index.splice(ky, 0, y);\n if (values) {\n values.splice(ky, 0, vx);\n }\n // remove value @ x (adjust array index if needed)\n index.splice(ky <= kx ? kx + 1 : kx, 1);\n if (values) {\n values.splice(ky <= kx ? kx + 1 : kx, 1);\n }\n // next column\n continue;\n }\n // check y row exist & no x row\n if (ky < k1 && index[ky] === y && (kx >= k1 || index[kx] !== x)) {\n // value @ y (check for pattern matrix)\n var vy = values ? values[ky] : undefined;\n // insert value @ x\n index.splice(kx, 0, x);\n if (values) {\n values.splice(kx, 0, vy);\n }\n // remove value @ y (adjust array index if needed)\n index.splice(kx <= ky ? ky + 1 : ky, 1);\n if (values) {\n values.splice(kx <= ky ? ky + 1 : ky, 1);\n }\n }\n }\n };\n return SparseMatrix;\n}, {\n isClass: true\n});","export function noBignumber() {\n throw new Error('No \"bignumber\" implementation available');\n}\nexport function noFraction() {\n throw new Error('No \"fraction\" implementation available');\n}\nexport function noMatrix() {\n throw new Error('No \"matrix\" implementation available');\n}\nexport function noIndex() {\n throw new Error('No \"index\" implementation available');\n}\nexport function noSubset() {\n throw new Error('No \"matrix\" implementation available');\n}","import { factory } from '../../../utils/factory.js';\nvar name = 'matAlgo10xSids';\nvar dependencies = ['typed', 'DenseMatrix'];\nexport var createMatAlgo10xSids = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n DenseMatrix\n } = _ref;\n /**\n * Iterates over SparseMatrix S nonzero items and invokes the callback function f(Sij, b).\n * Callback function invoked NZ times (number of nonzero items in S).\n *\n *\n * ┌ f(Sij, b) ; S(i,j) !== 0\n * C(i,j) = ┤\n * └ b ; otherwise\n *\n *\n * @param {Matrix} s The SparseMatrix instance (S)\n * @param {Scalar} b The Scalar value\n * @param {Function} callback The f(Aij,b) operation to invoke\n * @param {boolean} inverse A true value indicates callback should be invoked f(b,Sij)\n *\n * @return {Matrix} DenseMatrix (C)\n *\n * https://github.com/josdejong/mathjs/pull/346#issuecomment-97626813\n */\n return function matAlgo10xSids(s, b, callback, inverse) {\n // sparse matrix arrays\n var avalues = s._values;\n var aindex = s._index;\n var aptr = s._ptr;\n var asize = s._size;\n var adt = s._datatype;\n\n // sparse matrix cannot be a Pattern matrix\n if (!avalues) {\n throw new Error('Cannot perform operation on Pattern Sparse Matrix and Scalar value');\n }\n\n // rows & columns\n var rows = asize[0];\n var columns = asize[1];\n\n // datatype\n var dt;\n // callback signature to use\n var cf = callback;\n\n // process data types\n if (typeof adt === 'string') {\n // datatype\n dt = adt;\n // convert b to the same datatype\n b = typed.convert(b, dt);\n // callback\n cf = typed.find(callback, [dt, dt]);\n }\n\n // result arrays\n var cdata = [];\n\n // workspaces\n var x = [];\n // marks indicating we have a value in x for a given column\n var w = [];\n\n // loop columns\n for (var j = 0; j < columns; j++) {\n // columns mark\n var mark = j + 1;\n // values in j\n for (var k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {\n // row\n var r = aindex[k];\n // update workspace\n x[r] = avalues[k];\n w[r] = mark;\n }\n // loop rows\n for (var i = 0; i < rows; i++) {\n // initialize C on first column\n if (j === 0) {\n // create row array\n cdata[i] = [];\n }\n // check sparse matrix has a value @ i,j\n if (w[i] === mark) {\n // invoke callback, update C\n cdata[i][j] = inverse ? cf(b, x[i]) : cf(x[i], b);\n } else {\n // dense matrix value @ i, j\n cdata[i][j] = b;\n }\n }\n }\n\n // return dense matrix\n return new DenseMatrix({\n data: cdata,\n size: [rows, columns],\n datatype: dt\n });\n };\n});","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","/**\n * Permutes a vector; x = P'b. In MATLAB notation, x(p)=b.\n *\n * @param {Array} p The permutation vector of length n. null value denotes identity\n * @param {Array} b The input vector\n *\n * @return {Array} The output vector x = P'b\n */\nexport function csIpvec(p, b) {\n // vars\n var k;\n var n = b.length;\n var x = [];\n // check permutation vector was provided, p = null denotes identity\n if (p) {\n // loop vector\n for (k = 0; k < n; k++) {\n // apply permutation\n x[p[k]] = b[k];\n }\n } else {\n // loop vector\n for (k = 0; k < n; k++) {\n // x[i] = b[i]\n x[k] = b[k];\n }\n }\n return x;\n}","import { isArray, isMatrix } from '../../../utils/is.js';\nimport { factory } from '../../../utils/factory.js';\nimport { createSolveValidation } from './utils/solveValidation.js';\nimport { csIpvec } from '../sparse/csIpvec.js';\nvar name = 'lusolve';\nvar dependencies = ['typed', 'matrix', 'lup', 'slu', 'usolve', 'lsolve', 'DenseMatrix'];\nexport var createLusolve = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n lup,\n slu,\n usolve,\n lsolve,\n DenseMatrix\n } = _ref;\n var solveValidation = createSolveValidation({\n DenseMatrix\n });\n\n /**\n * Solves the linear system `A * x = b` where `A` is an [n x n] matrix and `b` is a [n] column vector.\n *\n * Syntax:\n *\n * math.lusolve(A, b) // returns column vector with the solution to the linear system A * x = b\n * math.lusolve(lup, b) // returns column vector with the solution to the linear system A * x = b, lup = math.lup(A)\n *\n * Examples:\n *\n * const m = [[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 3, 0], [0, 0, 0, 4]]\n *\n * const x = math.lusolve(m, [-1, -1, -1, -1]) // x = [[-1], [-0.5], [-1/3], [-0.25]]\n *\n * const f = math.lup(m)\n * const x1 = math.lusolve(f, [-1, -1, -1, -1]) // x1 = [[-1], [-0.5], [-1/3], [-0.25]]\n * const x2 = math.lusolve(f, [1, 2, 1, -1]) // x2 = [[1], [1], [1/3], [-0.25]]\n *\n * const a = [[-2, 3], [2, 1]]\n * const b = [11, 9]\n * const x = math.lusolve(a, b) // [[2], [5]]\n *\n * See also:\n *\n * lup, slu, lsolve, usolve\n *\n * @param {Matrix | Array | Object} A Invertible Matrix or the Matrix LU decomposition\n * @param {Matrix | Array} b Column Vector\n * @param {number} [order] The Symbolic Ordering and Analysis order, see slu for details. Matrix must be a SparseMatrix\n * @param {Number} [threshold] Partial pivoting threshold (1 for partial pivoting), see slu for details. Matrix must be a SparseMatrix.\n *\n * @return {DenseMatrix | Array} Column vector with the solution to the linear system A * x = b\n */\n return typed(name, {\n 'Array, Array | Matrix': function ArrayArrayMatrix(a, b) {\n a = matrix(a);\n var d = lup(a);\n var x = _lusolve(d.L, d.U, d.p, null, b);\n return x.valueOf();\n },\n 'DenseMatrix, Array | Matrix': function DenseMatrixArrayMatrix(a, b) {\n var d = lup(a);\n return _lusolve(d.L, d.U, d.p, null, b);\n },\n 'SparseMatrix, Array | Matrix': function SparseMatrixArrayMatrix(a, b) {\n var d = lup(a);\n return _lusolve(d.L, d.U, d.p, null, b);\n },\n 'SparseMatrix, Array | Matrix, number, number': function SparseMatrixArrayMatrixNumberNumber(a, b, order, threshold) {\n var d = slu(a, order, threshold);\n return _lusolve(d.L, d.U, d.p, d.q, b);\n },\n 'Object, Array | Matrix': function ObjectArrayMatrix(d, b) {\n return _lusolve(d.L, d.U, d.p, d.q, b);\n }\n });\n function _toMatrix(a) {\n if (isMatrix(a)) {\n return a;\n }\n if (isArray(a)) {\n return matrix(a);\n }\n throw new TypeError('Invalid Matrix LU decomposition');\n }\n function _lusolve(l, u, p, q, b) {\n // verify decomposition\n l = _toMatrix(l);\n u = _toMatrix(u);\n\n // apply row permutations if needed (b is a DenseMatrix)\n if (p) {\n b = solveValidation(l, b, true);\n b._data = csIpvec(p, b._data);\n }\n\n // use forward substitution to resolve L * y = b\n var y = lsolve(l, b);\n // use backward substitution to resolve U * x = y\n var x = usolve(u, y);\n\n // apply column permutations if needed (x is a DenseMatrix)\n if (q) {\n x._data = csIpvec(q, x._data);\n }\n return x;\n }\n});","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\n\nvar zlib_deflate = require('./zlib/deflate');\nvar utils = require('./utils/common');\nvar strings = require('./utils/strings');\nvar msg = require('./zlib/messages');\nvar ZStream = require('./zlib/zstream');\n\nvar toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH = 0;\nvar Z_FINISH = 4;\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_SYNC_FLUSH = 2;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY = 0;\n\nvar Z_DEFLATED = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Deflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n if (!(this instanceof Deflate)) return new Deflate(options);\n\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n var dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the compression context.\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = zlib_deflate.deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n if (this.options.to === 'string') {\n this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === Z_SYNC_FLUSH) {\n this.onEnd(Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n",";(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*!\r\n * decimal.js v10.4.3\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\n var EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n Decimal, inexact, noConflict, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n tag = '[object Decimal]',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { toStringTag: tag };\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\n P.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\n P.clampedTo = P.clamp = function (min, max) {\r\n var k,\r\n x = this,\r\n Ctor = x.constructor;\r\n min = new Ctor(min);\r\n max = new Ctor(max);\r\n if (!min.s || !max.s) return new Ctor(NaN);\r\n if (min.gt(max)) throw Error(invalidArgument + max);\r\n k = x.cmp(min);\r\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\n P.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\n P.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\n P.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\n P.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\n P.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\n P.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\n P.inverseCosine = P.acos = function () {\r\n var halfPi,\r\n x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.asin();\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return halfPi.minus(x);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\n P.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\n P.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\n P.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\n P.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\n P.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\n P.isFinite = function () {\r\n return !!this.d;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'lt');\r\n };\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'gt');\r\n };\r\n */\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\n P.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\n P.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\n P.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\n P.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\n P.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\n P.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\n function checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n\r\n // Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n // Eg. convertBase('255', 10, 16) returns [15, 15].\r\n // Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\n function convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n\r\n /*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\n function cosine(Ctor, x) {\r\n var k, len, y;\r\n\r\n if (x.isZero()) return x;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n len = x.d.length;\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Perform division in the specified base.\r\n */\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n }\r\n\r\n\r\n function getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n }\r\n\r\n\r\n function getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\n function intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n }\r\n\r\n\r\n function isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n }\r\n\r\n\r\n /*\r\n * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'.\r\n */\r\n function maxOrMin(Ctor, args, ltgt) {\r\n var y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n } else if (x[ltgt](y)) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\n function naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\n function naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n // ±Infinity, NaN.\r\n function nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\n function parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str.indexOf('_') > -1) {\r\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n if (isDecimal.test(str)) return parseDecimal(x, str);\r\n } else if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\n function sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n }\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n // Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\n function taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n }\r\n\r\n\r\n // Exponent e must be positive and non-zero.\r\n function tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n }\r\n\r\n\r\n // Return the absolute value of `x` reduced to less than or equal to half pi.\r\n function toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n }\r\n\r\n\r\n /*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\n function toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function abs(x) {\r\n return new this(x).abs();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function acos(x) {\r\n return new this(x).acos();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function acosh(x) {\r\n return new this(x).acosh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function add(x, y) {\r\n return new this(x).plus(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function asin(x) {\r\n return new this(x).asin();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function asinh(x) {\r\n return new this(x).asinh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function atan(x) {\r\n return new this(x).atan();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function atanh(x) {\r\n return new this(x).atanh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|Decimal} The y-coordinate.\r\n * x {number|string|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\n function atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function cbrt(x) {\r\n return new this(x).cbrt();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|Decimal}\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\r\n function clamp(x, min, max) {\r\n return new this(x).clamp(min, max);\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function cos(x) {\r\n return new this(x).cos();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function cosh(x) {\r\n return new this(x).cosh();\r\n }\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (isDecimalInstance(v)) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n\r\n // Infinity, NaN.\r\n } else if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n\r\n } else if (t !== 'string') {\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n // Minus sign?\r\n if ((i = v.charCodeAt(0)) === 45) {\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n // Plus sign?\r\n if (i === 43) v = v.slice(1);\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.clamp = clamp;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.sum = sum;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function div(x, y) {\r\n return new this(x).div(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\n function exp(x) {\r\n return new this(x).exp();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n }\r\n\r\n\r\n /*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\n function isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function ln(x) {\r\n return new this(x).ln();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|Decimal} The argument of the logarithm.\r\n * y {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n function log(x, y) {\r\n return new this(x).log(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function log2(x) {\r\n return new this(x).log(2);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function log10(x) {\r\n return new this(x).log(10);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function max() {\r\n return maxOrMin(this, arguments, 'lt');\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function min() {\r\n return maxOrMin(this, arguments, 'gt');\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function mod(x, y) {\r\n return new this(x).mod(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function mul(x, y) {\r\n return new this(x).mul(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The base.\r\n * y {number|string|Decimal} The exponent.\r\n *\r\n */\r\n function pow(x, y) {\r\n return new this(x).pow(y);\r\n }\r\n\r\n\r\n /*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\n function random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n }\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function sin(x) {\r\n return new this(x).sin();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function sinh(x) {\r\n return new this(x).sinh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function sqrt(x) {\r\n return new this(x).sqrt();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function sub(x, y) {\r\n return new this(x).sub(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function sum() {\r\n var i = 0,\r\n args = arguments,\r\n x = new this(args[i]);\r\n\r\n external = false;\r\n for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n external = true;\r\n\r\n return finalise(x, this.precision, this.rounding);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function tan(x) {\r\n return new this(x).tan();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function tanh(x) {\r\n return new this(x).tanh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(DEFAULTS);\r\n Decimal.prototype.constructor = Decimal;\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Create the internal constants from their string values.\r\n LN10 = new Decimal(LN10);\r\n PI = new Decimal(PI);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n if (typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol') {\r\n P[Symbol['for']('nodejs.util.inspect.custom')] = P.toString;\r\n P[Symbol.toStringTag] = 'Decimal';\r\n }\r\n\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self ? self : window;\r\n }\r\n\r\n noConflict = globalScope.Decimal;\r\n Decimal.noConflict = function () {\r\n globalScope.Decimal = noConflict;\r\n return Decimal;\r\n };\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","import { factory } from '../../utils/factory.js';\nimport { cothNumber } from '../../plain/number/index.js';\nvar name = 'coth';\nvar dependencies = ['typed', 'BigNumber'];\nexport var createCoth = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n BigNumber: _BigNumber\n } = _ref;\n /**\n * Calculate the hyperbolic cotangent of a value,\n * defined as `coth(x) = 1 / tanh(x)`.\n *\n * To avoid confusion with the matrix hyperbolic cotangent, this function\n * does not apply to matrices.\n *\n * Syntax:\n *\n * math.coth(x)\n *\n * Examples:\n *\n * // coth(x) = 1 / tanh(x)\n * math.coth(2) // returns 1.0373147207275482\n * 1 / math.tanh(2) // returns 1.0373147207275482\n *\n * See also:\n *\n * sinh, tanh, cosh\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} Hyperbolic cotangent of x\n */\n return typed(name, {\n number: cothNumber,\n Complex: x => x.coth(),\n BigNumber: x => new _BigNumber(1).div(x.tanh())\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 _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\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');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\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}\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 iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\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 }\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 var lastPromise = this[kLastPromise];\n var promise;\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 if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\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 // 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 resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\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 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];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","import { factory } from '../../utils/factory.js';\nimport { tanh as _tanh } from '../../utils/number.js';\nvar name = 'tanh';\nvar dependencies = ['typed'];\nexport var createTanh = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Calculate the hyperbolic tangent of a value,\n * defined as `tanh(x) = (exp(2 * x) - 1) / (exp(2 * x) + 1)`.\n *\n * To avoid confusion with matrix hyperbolic tangent, this function does\n * not apply to matrices.\n *\n * Syntax:\n *\n * math.tanh(x)\n *\n * Examples:\n *\n * // tanh(x) = sinh(x) / cosh(x) = 1 / coth(x)\n * math.tanh(0.5) // returns 0.46211715726000974\n * math.sinh(0.5) / math.cosh(0.5) // returns 0.46211715726000974\n * 1 / math.coth(0.5) // returns 0.46211715726000974\n *\n * See also:\n *\n * sinh, cosh, coth\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} Hyperbolic tangent of x\n */\n return typed('tanh', {\n number: _tanh,\n 'Complex | BigNumber': x => x.tanh()\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\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).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/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\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;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\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 (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\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 if (typeof isDuplex !== 'boolean') 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 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 this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\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 this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\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 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}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\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 Stream.call(this);\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 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 }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\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 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 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};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\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 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 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 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 }\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 return !state.ended && (state.length < state.highWaterMark || state.length === 0);\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 maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\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 return er;\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 var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\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 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 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.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 = 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 var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\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 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 if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\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 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 if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\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 debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\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 state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\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 process.nextTick(maybeReadMore_, stream, state);\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)\n // didn't get any data, stop spinning.\n break;\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 errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\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 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 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 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 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 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 src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\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 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) errorOrDestroy(dest, 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 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 return dest;\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 if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\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 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 for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\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 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};\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 var state = this._readableState;\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;\n\n // Try start flowing on next tick if stream isn't explicitly paused\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 if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\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 return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\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 return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\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;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\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 // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\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 var state = this._readableState;\n var paused = false;\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 _this.push(null);\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 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 methodWrap(method) {\n return function methodWrapReturnFunction() {\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 return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(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 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});\n\n// exposed for testing purposes only.\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});\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 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}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\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 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 if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\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 return from(Readable, iterable, opts);\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","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\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 var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\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 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 var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\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 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}\nmodule.exports = eos;","import _extends from \"@babel/runtime/helpers/extends\";\nimport { DEFAULT_CONFIG } from '../core/config.js';\nimport { MATRIX_OPTIONS, NUMBER_OPTIONS } from '../core/function/config.js';\n\n// create a read-only version of config\nexport var config = /* #__PURE__ */function config(options) {\n if (options) {\n throw new Error('The global config is readonly. \\n' + 'Please create a mathjs instance if you want to change the default configuration. \\n' + 'Example:\\n' + '\\n' + ' import { create, all } from \\'mathjs\\';\\n' + ' const mathjs = create(all);\\n' + ' mathjs.config({ number: \\'BigNumber\\' });\\n');\n }\n return Object.freeze(DEFAULT_CONFIG);\n};\n_extends(config, DEFAULT_CONFIG, {\n MATRIX_OPTIONS,\n NUMBER_OPTIONS\n});","import { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nimport { unaryMinusNumber } from '../../plain/number/index.js';\nvar name = 'unaryMinus';\nvar dependencies = ['typed'];\nexport var createUnaryMinus = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Inverse the sign of a value, apply a unary minus operation.\n *\n * For matrices, the function is evaluated element wise. Boolean values and\n * strings will be converted to a number. For complex numbers, both real and\n * complex value are inverted.\n *\n * Syntax:\n *\n * math.unaryMinus(x)\n *\n * Examples:\n *\n * math.unaryMinus(3.5) // returns -3.5\n * math.unaryMinus(-4.2) // returns 4.2\n *\n * See also:\n *\n * add, subtract, unaryPlus\n *\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x Number to be inverted.\n * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Returns the value with inverted sign.\n */\n return typed(name, {\n number: unaryMinusNumber,\n 'Complex | BigNumber | Fraction': x => x.neg(),\n Unit: typed.referToSelf(self => x => {\n var res = x.clone();\n res.value = typed.find(self, res.valueType())(x.value);\n return res;\n }),\n // deep map collection, skip zeros since unaryMinus(0) = 0\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self, true))\n\n // TODO: add support for string\n });\n});","import { memoize } from '../function.js';\n\n/**\n * Calculate BigNumber e\n * @param {function} BigNumber BigNumber constructor\n * @returns {BigNumber} Returns e\n */\nexport var createBigNumberE = memoize(function (BigNumber) {\n return new BigNumber(1).exp();\n}, {\n hasher\n});\n\n/**\n * Calculate BigNumber golden ratio, phi = (1+sqrt(5))/2\n * @param {function} BigNumber BigNumber constructor\n * @returns {BigNumber} Returns phi\n */\nexport var createBigNumberPhi = memoize(function (BigNumber) {\n return new BigNumber(1).plus(new BigNumber(5).sqrt()).div(2);\n}, {\n hasher\n});\n\n/**\n * Calculate BigNumber pi.\n * @param {function} BigNumber BigNumber constructor\n * @returns {BigNumber} Returns pi\n */\nexport var createBigNumberPi = memoize(function (BigNumber) {\n return BigNumber.acos(-1);\n}, {\n hasher\n});\n\n/**\n * Calculate BigNumber tau, tau = 2 * pi\n * @param {function} BigNumber BigNumber constructor\n * @returns {BigNumber} Returns tau\n */\nexport var createBigNumberTau = memoize(function (BigNumber) {\n return createBigNumberPi(BigNumber).times(2);\n}, {\n hasher\n});\n\n/**\n * Create a hash for a BigNumber constructor function. The created has is\n * the configured precision\n * @param {Array} args Supposed to contain a single entry with\n * a BigNumber constructor\n * @return {number} precision\n * @private\n */\nfunction hasher(args) {\n return args[0].precision;\n}","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","import { factory } from '../../../utils/factory.js';\nimport { deepMap } from '../../../utils/collection.js';\nvar name = 'complex';\nvar dependencies = ['typed', 'Complex'];\nexport var createComplex = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n Complex\n } = _ref;\n /**\n * Create a complex value or convert a value to a complex value.\n *\n * Syntax:\n *\n * math.complex() // creates a complex value with zero\n * // as real and imaginary part.\n * math.complex(re : number, im : string) // creates a complex value with provided\n * // values for real and imaginary part.\n * math.complex(re : number) // creates a complex value with provided\n * // real value and zero imaginary part.\n * math.complex(complex : Complex) // clones the provided complex value.\n * math.complex(arg : string) // parses a string into a complex value.\n * math.complex(array : Array) // converts the elements of the array\n * // or matrix element wise into a\n * // complex value.\n * math.complex({re: number, im: number}) // creates a complex value with provided\n * // values for real an imaginary part.\n * math.complex({r: number, phi: number}) // creates a complex value with provided\n * // polar coordinates\n *\n * Examples:\n *\n * const a = math.complex(3, -4) // a = Complex 3 - 4i\n * a.re = 5 // a = Complex 5 - 4i\n * const i = a.im // Number -4\n * const b = math.complex('2 + 6i') // Complex 2 + 6i\n * const c = math.complex() // Complex 0 + 0i\n * const d = math.add(a, b) // Complex 5 + 2i\n *\n * See also:\n *\n * bignumber, boolean, index, matrix, number, string, unit\n *\n * @param {* | Array | Matrix} [args]\n * Arguments specifying the real and imaginary part of the complex number\n * @return {Complex | Array | Matrix} Returns a complex value\n */\n return typed('complex', {\n '': function _() {\n return Complex.ZERO;\n },\n number: function number(x) {\n return new Complex(x, 0);\n },\n 'number, number': function numberNumber(re, im) {\n return new Complex(re, im);\n },\n // TODO: this signature should be redundant\n 'BigNumber, BigNumber': function BigNumberBigNumber(re, im) {\n return new Complex(re.toNumber(), im.toNumber());\n },\n Fraction: function Fraction(x) {\n return new Complex(x.valueOf(), 0);\n },\n Complex: function Complex(x) {\n return x.clone();\n },\n string: function string(x) {\n return Complex(x); // for example '2 + 3i'\n },\n\n null: function _null(x) {\n return Complex(0);\n },\n Object: function Object(x) {\n if ('re' in x && 'im' in x) {\n return new Complex(x.re, x.im);\n }\n if ('r' in x && 'phi' in x || 'abs' in x && 'arg' in x) {\n return new Complex(x);\n }\n throw new Error('Expected object with properties (re and im) or (r and phi) or (abs and arg)');\n },\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))\n });\n});","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\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) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\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 if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\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.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\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","import { factory } from '../../../utils/factory.js';\nimport { createSolveValidation } from './utils/solveValidation.js';\nvar name = 'lsolveAll';\nvar dependencies = ['typed', 'matrix', 'divideScalar', 'multiplyScalar', 'subtractScalar', 'equalScalar', 'DenseMatrix'];\nexport var createLsolveAll = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n divideScalar,\n multiplyScalar,\n subtractScalar,\n equalScalar,\n DenseMatrix\n } = _ref;\n var solveValidation = createSolveValidation({\n DenseMatrix\n });\n\n /**\n * Finds all solutions of a linear equation system by forwards substitution. Matrix must be a lower triangular matrix.\n *\n * `L * x = b`\n *\n * Syntax:\n *\n * math.lsolveAll(L, b)\n *\n * Examples:\n *\n * const a = [[-2, 3], [2, 1]]\n * const b = [11, 9]\n * const x = lsolveAll(a, b) // [ [[-5.5], [20]] ]\n *\n * See also:\n *\n * lsolve, lup, slu, usolve, lusolve\n *\n * @param {Matrix, Array} L A N x N matrix or array (L)\n * @param {Matrix, Array} b A column vector with the b values\n *\n * @return {DenseMatrix[] | Array[]} An array of affine-independent column vectors (x) that solve the linear system\n */\n return typed(name, {\n 'SparseMatrix, Array | Matrix': function SparseMatrixArrayMatrix(m, b) {\n return _sparseForwardSubstitution(m, b);\n },\n 'DenseMatrix, Array | Matrix': function DenseMatrixArrayMatrix(m, b) {\n return _denseForwardSubstitution(m, b);\n },\n 'Array, Array | Matrix': function ArrayArrayMatrix(a, b) {\n var m = matrix(a);\n var R = _denseForwardSubstitution(m, b);\n return R.map(r => r.valueOf());\n }\n });\n function _denseForwardSubstitution(m, b_) {\n // the algorithm is derived from\n // https://www.overleaf.com/read/csvgqdxggyjv\n\n // array of right-hand sides\n var B = [solveValidation(m, b_, true)._data.map(e => e[0])];\n var M = m._data;\n var rows = m._size[0];\n var columns = m._size[1];\n\n // loop columns\n for (var i = 0; i < columns; i++) {\n var L = B.length;\n\n // loop right-hand sides\n for (var k = 0; k < L; k++) {\n var b = B[k];\n if (!equalScalar(M[i][i], 0)) {\n // non-singular row\n\n b[i] = divideScalar(b[i], M[i][i]);\n for (var j = i + 1; j < columns; j++) {\n // b[j] -= b[i] * M[j,i]\n b[j] = subtractScalar(b[j], multiplyScalar(b[i], M[j][i]));\n }\n } else if (!equalScalar(b[i], 0)) {\n // singular row, nonzero RHS\n\n if (k === 0) {\n // There is no valid solution\n return [];\n } else {\n // This RHS is invalid but other solutions may still exist\n B.splice(k, 1);\n k -= 1;\n L -= 1;\n }\n } else if (k === 0) {\n // singular row, RHS is zero\n\n var bNew = [...b];\n bNew[i] = 1;\n for (var _j = i + 1; _j < columns; _j++) {\n bNew[_j] = subtractScalar(bNew[_j], M[_j][i]);\n }\n B.push(bNew);\n }\n }\n }\n return B.map(x => new DenseMatrix({\n data: x.map(e => [e]),\n size: [rows, 1]\n }));\n }\n function _sparseForwardSubstitution(m, b_) {\n // array of right-hand sides\n var B = [solveValidation(m, b_, true)._data.map(e => e[0])];\n var rows = m._size[0];\n var columns = m._size[1];\n var values = m._values;\n var index = m._index;\n var ptr = m._ptr;\n\n // loop columns\n for (var i = 0; i < columns; i++) {\n var L = B.length;\n\n // loop right-hand sides\n for (var k = 0; k < L; k++) {\n var b = B[k];\n\n // values & indices (column i)\n var iValues = [];\n var iIndices = [];\n\n // first & last indeces in column\n var firstIndex = ptr[i];\n var lastIndex = ptr[i + 1];\n\n // find the value at [i, i]\n var Mii = 0;\n for (var j = firstIndex; j < lastIndex; j++) {\n var J = index[j];\n // check row\n if (J === i) {\n Mii = values[j];\n } else if (J > i) {\n // store lower triangular\n iValues.push(values[j]);\n iIndices.push(J);\n }\n }\n if (!equalScalar(Mii, 0)) {\n // non-singular row\n\n b[i] = divideScalar(b[i], Mii);\n for (var _j2 = 0, _lastIndex = iIndices.length; _j2 < _lastIndex; _j2++) {\n var _J = iIndices[_j2];\n b[_J] = subtractScalar(b[_J], multiplyScalar(b[i], iValues[_j2]));\n }\n } else if (!equalScalar(b[i], 0)) {\n // singular row, nonzero RHS\n\n if (k === 0) {\n // There is no valid solution\n return [];\n } else {\n // This RHS is invalid but other solutions may still exist\n B.splice(k, 1);\n k -= 1;\n L -= 1;\n }\n } else if (k === 0) {\n // singular row, RHS is zero\n\n var bNew = [...b];\n bNew[i] = 1;\n for (var _j3 = 0, _lastIndex2 = iIndices.length; _j3 < _lastIndex2; _j3++) {\n var _J2 = iIndices[_j3];\n bNew[_J2] = subtractScalar(bNew[_J2], iValues[_j3]);\n }\n B.push(bNew);\n }\n }\n }\n return B.map(x => new DenseMatrix({\n data: x.map(e => [e]),\n size: [rows, 1]\n }));\n }\n});","import { factory } from '../../utils/factory.js';\nvar name = 'bellNumbers';\nvar dependencies = ['typed', 'addScalar', 'isNegative', 'isInteger', 'stirlingS2'];\nexport var createBellNumbers = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n addScalar,\n isNegative,\n isInteger,\n stirlingS2\n } = _ref;\n /**\n * The Bell Numbers count the number of partitions of a set. A partition is a pairwise disjoint subset of S whose union is S.\n * bellNumbers only takes integer arguments.\n * The following condition must be enforced: n >= 0\n *\n * Syntax:\n *\n * math.bellNumbers(n)\n *\n * Examples:\n *\n * math.bellNumbers(3) // returns 5\n * math.bellNumbers(8) // returns 4140\n *\n * See also:\n *\n * stirlingS2\n *\n * @param {Number | BigNumber} n Total number of objects in the set\n * @return {Number | BigNumber} B(n)\n */\n return typed(name, {\n 'number | BigNumber': function numberBigNumber(n) {\n if (!isInteger(n) || isNegative(n)) {\n throw new TypeError('Non-negative integer value expected in function bellNumbers');\n }\n\n // Sum (k=0, n) S(n,k).\n var result = 0;\n for (var i = 0; i <= n; i++) {\n result = addScalar(result, stirlingS2(n, i));\n }\n return result;\n }\n });\n});","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getBooleanAlgebra = function (B) {\n return function () { return ({\n meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; },\n join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; },\n zero: function () { return B.zero; },\n one: function () { return B.one; },\n implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; },\n not: function (x) { return function (a) { return B.not(x(a)); }; }\n }); };\n};\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nexport var getSemigroup = function (S) {\n return function () { return ({\n concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }\n }); };\n};\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nexport var getMonoid = function (M) {\n var getSemigroupM = getSemigroup(M);\n return function () { return ({\n concat: getSemigroupM().concat,\n empty: function () { return M.empty; }\n }); };\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getSemiring = function (S) { return ({\n add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; },\n zero: function () { return S.zero; },\n mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; },\n one: function () { return S.one; }\n}); };\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getRing = function (R) {\n var S = getSemiring(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; }\n };\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nexport var apply = function (a) {\n return function (f) {\n return f(a);\n };\n};\n/**\n * @since 2.0.0\n */\nexport function identity(a) {\n return a;\n}\n/**\n * @since 2.0.0\n */\nexport var unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nexport function constant(a) {\n return function () { return a; };\n}\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\nexport var constTrue = /*#__PURE__*/ constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexport var constFalse = /*#__PURE__*/ constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexport var constNull = /*#__PURE__*/ constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexport var constUndefined = /*#__PURE__*/ constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\nexport var constVoid = constUndefined;\nexport function flip(f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length > 1) {\n return f(args[1], args[0]);\n }\n return function (a) { return f(a)(args[0]); };\n };\n}\nexport function flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\n/**\n * @since 2.0.0\n */\nexport function tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\n/**\n * @since 2.0.0\n */\nexport function increment(n) {\n return n + 1;\n}\n/**\n * @since 2.0.0\n */\nexport function decrement(n) {\n return n - 1;\n}\n/**\n * @since 2.0.0\n */\nexport function absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\nexport function tupled(f) {\n return function (a) { return f.apply(void 0, a); };\n}\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nexport function untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nexport function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default: {\n var ret = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexport var hole = absurd;\n/**\n * @since 2.11.0\n */\nexport var SK = function (_, b) { return b; };\n/**\n * Use `Predicate` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function not(predicate) {\n return function (a) { return !predicate(a); };\n}\n/**\n * Use `Endomorphism` module instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexport var getEndomorphismMonoid = function () { return ({\n concat: function (first, second) { return flow(first, second); },\n empty: identity\n}); };\n/** @internal */\nexport var dual = function (arity, body) {\n var isDataFirst = typeof arity === 'number' ? function (args) { return args.length >= arity; } : arity;\n return function () {\n var args = Array.from(arguments);\n if (isDataFirst(arguments)) {\n return body.apply(this, args);\n }\n return function (self) { return body.apply(void 0, __spreadArray([self], args, false)); };\n };\n};\n","import { clone } from '../../utils/object.js';\nimport { format } from '../../utils/string.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'trace';\nvar dependencies = ['typed', 'matrix', 'add'];\nexport var createTrace = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n add\n } = _ref;\n /**\n * Calculate the trace of a matrix: the sum of the elements on the main\n * diagonal of a square matrix.\n *\n * Syntax:\n *\n * math.trace(x)\n *\n * Examples:\n *\n * math.trace([[1, 2], [3, 4]]) // returns 5\n *\n * const A = [\n * [1, 2, 3],\n * [-1, 2, 3],\n * [2, 0, 3]\n * ]\n * math.trace(A) // returns 6\n *\n * See also:\n *\n * diag\n *\n * @param {Array | Matrix} x A matrix\n *\n * @return {number} The trace of `x`\n */\n return typed('trace', {\n Array: function _arrayTrace(x) {\n // use dense matrix implementation\n return _denseTrace(matrix(x));\n },\n SparseMatrix: _sparseTrace,\n DenseMatrix: _denseTrace,\n any: clone\n });\n function _denseTrace(m) {\n // matrix size & data\n var size = m._size;\n var data = m._data;\n\n // process dimensions\n switch (size.length) {\n case 1:\n // vector\n if (size[0] === 1) {\n // return data[0]\n return clone(data[0]);\n }\n throw new RangeError('Matrix must be square (size: ' + format(size) + ')');\n case 2:\n {\n // two dimensional\n var rows = size[0];\n var cols = size[1];\n if (rows === cols) {\n // calulate sum\n var sum = 0;\n // loop diagonal\n for (var i = 0; i < rows; i++) {\n sum = add(sum, data[i][i]);\n }\n // return trace\n return sum;\n } else {\n throw new RangeError('Matrix must be square (size: ' + format(size) + ')');\n }\n }\n default:\n // multi dimensional\n throw new RangeError('Matrix must be two dimensional (size: ' + format(size) + ')');\n }\n }\n function _sparseTrace(m) {\n // matrix arrays\n var values = m._values;\n var index = m._index;\n var ptr = m._ptr;\n var size = m._size;\n // check dimensions\n var rows = size[0];\n var columns = size[1];\n // matrix must be square\n if (rows === columns) {\n // calulate sum\n var sum = 0;\n // check we have data (avoid looping columns)\n if (values.length > 0) {\n // loop columns\n for (var j = 0; j < columns; j++) {\n // k0 <= k < k1 where k0 = _ptr[j] && k1 = _ptr[j+1]\n var k0 = ptr[j];\n var k1 = ptr[j + 1];\n // loop k within [k0, k1[\n for (var k = k0; k < k1; k++) {\n // row index\n var i = index[k];\n // check row\n if (i === j) {\n // accumulate value\n sum = add(sum, values[k]);\n // exit loop\n break;\n }\n if (i > j) {\n // exit loop, no value on the diagonal for column j\n break;\n }\n }\n }\n }\n // return trace\n return sum;\n }\n throw new RangeError('Matrix must be square (size: ' + format(size) + ')');\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","import { factory } from '../../utils/factory.js';\nvar name = 'deepEqual';\nvar dependencies = ['typed', 'equal'];\nexport var createDeepEqual = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n equal\n } = _ref;\n /**\n * Test element wise whether two matrices are equal.\n * The function accepts both matrices and scalar values.\n *\n * Strings are compared by their numerical value.\n *\n * Syntax:\n *\n * math.deepEqual(x, y)\n *\n * Examples:\n *\n * math.deepEqual(2, 4) // returns false\n *\n * a = [2, 5, 1]\n * b = [2, 7, 1]\n *\n * math.deepEqual(a, b) // returns false\n * math.equal(a, b) // returns [true, false, true]\n *\n * See also:\n *\n * equal, unequal\n *\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x First matrix to compare\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} y Second matrix to compare\n * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix}\n * Returns true when the input matrices have the same size and each of their elements is equal.\n */\n return typed(name, {\n 'any, any': function anyAny(x, y) {\n return _deepEqual(x.valueOf(), y.valueOf());\n }\n });\n\n /**\n * Test whether two arrays have the same size and all elements are equal\n * @param {Array | *} x\n * @param {Array | *} y\n * @return {boolean} Returns true if both arrays are deep equal\n */\n function _deepEqual(x, y) {\n if (Array.isArray(x)) {\n if (Array.isArray(y)) {\n var len = x.length;\n if (len !== y.length) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n if (!_deepEqual(x[i], y[i])) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n } else {\n if (Array.isArray(y)) {\n return false;\n } else {\n return equal(x, y);\n }\n }\n }\n});","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\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 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 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 return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\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}\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 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}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\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\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}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","import { factory } from '../../utils/factory.js';\n\n// Source: https://en.wikipedia.org/wiki/Physical_constant\n\n// Universal constants\nexport var createSpeedOfLight = /* #__PURE__ */unitFactory('speedOfLight', '299792458', 'm s^-1');\nexport var createGravitationConstant = /* #__PURE__ */unitFactory('gravitationConstant', '6.67430e-11', 'm^3 kg^-1 s^-2');\nexport var createPlanckConstant = /* #__PURE__ */unitFactory('planckConstant', '6.62607015e-34', 'J s');\nexport var createReducedPlanckConstant = /* #__PURE__ */unitFactory('reducedPlanckConstant', '1.0545718176461565e-34', 'J s');\n\n// Electromagnetic constants\nexport var createMagneticConstant = /* #__PURE__ */unitFactory('magneticConstant', '1.25663706212e-6', 'N A^-2');\nexport var createElectricConstant = /* #__PURE__ */unitFactory('electricConstant', '8.8541878128e-12', 'F m^-1');\nexport var createVacuumImpedance = /* #__PURE__ */unitFactory('vacuumImpedance', '376.730313667', 'ohm');\nexport var createCoulomb = /* #__PURE__ */unitFactory('coulomb', '8.987551792261171e9', 'N m^2 C^-2');\nexport var createElementaryCharge = /* #__PURE__ */unitFactory('elementaryCharge', '1.602176634e-19', 'C');\nexport var createBohrMagneton = /* #__PURE__ */unitFactory('bohrMagneton', '9.2740100783e-24', 'J T^-1');\nexport var createConductanceQuantum = /* #__PURE__ */unitFactory('conductanceQuantum', '7.748091729863649e-5', 'S');\nexport var createInverseConductanceQuantum = /* #__PURE__ */unitFactory('inverseConductanceQuantum', '12906.403729652257', 'ohm');\nexport var createMagneticFluxQuantum = /* #__PURE__ */unitFactory('magneticFluxQuantum', '2.0678338484619295e-15', 'Wb');\nexport var createNuclearMagneton = /* #__PURE__ */unitFactory('nuclearMagneton', '5.0507837461e-27', 'J T^-1');\nexport var createKlitzing = /* #__PURE__ */unitFactory('klitzing', '25812.807459304513', 'ohm');\nexport var createJosephson = /* #__PURE__ */unitFactory('josephson', '4.835978484169836e14 Hz V', 'Hz V^-1'); // TODO: support for Hz needed\n\n// Atomic and nuclear constants\nexport var createBohrRadius = /* #__PURE__ */unitFactory('bohrRadius', '5.29177210903e-11', 'm');\nexport var createClassicalElectronRadius = /* #__PURE__ */unitFactory('classicalElectronRadius', '2.8179403262e-15', 'm');\nexport var createElectronMass = /* #__PURE__ */unitFactory('electronMass', '9.1093837015e-31', 'kg');\nexport var createFermiCoupling = /* #__PURE__ */unitFactory('fermiCoupling', '1.1663787e-5', 'GeV^-2');\nexport var createFineStructure = numberFactory('fineStructure', 7.2973525693e-3);\nexport var createHartreeEnergy = /* #__PURE__ */unitFactory('hartreeEnergy', '4.3597447222071e-18', 'J');\nexport var createProtonMass = /* #__PURE__ */unitFactory('protonMass', '1.67262192369e-27', 'kg');\nexport var createDeuteronMass = /* #__PURE__ */unitFactory('deuteronMass', '3.3435830926e-27', 'kg');\nexport var createNeutronMass = /* #__PURE__ */unitFactory('neutronMass', '1.6749271613e-27', 'kg');\nexport var createQuantumOfCirculation = /* #__PURE__ */unitFactory('quantumOfCirculation', '3.6369475516e-4', 'm^2 s^-1');\nexport var createRydberg = /* #__PURE__ */unitFactory('rydberg', '10973731.568160', 'm^-1');\nexport var createThomsonCrossSection = /* #__PURE__ */unitFactory('thomsonCrossSection', '6.6524587321e-29', 'm^2');\nexport var createWeakMixingAngle = numberFactory('weakMixingAngle', 0.22290);\nexport var createEfimovFactor = numberFactory('efimovFactor', 22.7);\n\n// Physico-chemical constants\nexport var createAtomicMass = /* #__PURE__ */unitFactory('atomicMass', '1.66053906660e-27', 'kg');\nexport var createAvogadro = /* #__PURE__ */unitFactory('avogadro', '6.02214076e23', 'mol^-1');\nexport var createBoltzmann = /* #__PURE__ */unitFactory('boltzmann', '1.380649e-23', 'J K^-1');\nexport var createFaraday = /* #__PURE__ */unitFactory('faraday', '96485.33212331001', 'C mol^-1');\nexport var createFirstRadiation = /* #__PURE__ */unitFactory('firstRadiation', '3.7417718521927573e-16', 'W m^2');\n// export const createSpectralRadiance = /* #__PURE__ */ unitFactory('spectralRadiance', '1.1910429723971881e-16', 'W m^2 sr^-1') // TODO spectralRadiance\nexport var createLoschmidt = /* #__PURE__ */unitFactory('loschmidt', '2.686780111798444e25', 'm^-3');\nexport var createGasConstant = /* #__PURE__ */unitFactory('gasConstant', '8.31446261815324', 'J K^-1 mol^-1');\nexport var createMolarPlanckConstant = /* #__PURE__ */unitFactory('molarPlanckConstant', '3.990312712893431e-10', 'J s mol^-1');\nexport var createMolarVolume = /* #__PURE__ */unitFactory('molarVolume', '0.022413969545014137', 'm^3 mol^-1');\nexport var createSackurTetrode = numberFactory('sackurTetrode', -1.16487052358);\nexport var createSecondRadiation = /* #__PURE__ */unitFactory('secondRadiation', '0.014387768775039337', 'm K');\nexport var createStefanBoltzmann = /* #__PURE__ */unitFactory('stefanBoltzmann', '5.67037441918443e-8', 'W m^-2 K^-4');\nexport var createWienDisplacement = /* #__PURE__ */unitFactory('wienDisplacement', '2.897771955e-3', 'm K');\n\n// Adopted values\nexport var createMolarMass = /* #__PURE__ */unitFactory('molarMass', '0.99999999965e-3', 'kg mol^-1');\nexport var createMolarMassC12 = /* #__PURE__ */unitFactory('molarMassC12', '11.9999999958e-3', 'kg mol^-1');\nexport var createGravity = /* #__PURE__ */unitFactory('gravity', '9.80665', 'm s^-2');\n// atm is defined in Unit.js\n\n// Natural units\nexport var createPlanckLength = /* #__PURE__ */unitFactory('planckLength', '1.616255e-35', 'm');\nexport var createPlanckMass = /* #__PURE__ */unitFactory('planckMass', '2.176435e-8', 'kg');\nexport var createPlanckTime = /* #__PURE__ */unitFactory('planckTime', '5.391245e-44', 's');\nexport var createPlanckCharge = /* #__PURE__ */unitFactory('planckCharge', '1.87554603778e-18', 'C');\nexport var createPlanckTemperature = /* #__PURE__ */unitFactory('planckTemperature', '1.416785e+32', 'K');\n\n// helper function to create a factory function which creates a physical constant,\n// a Unit with either a number value or a BigNumber value depending on the configuration\nfunction unitFactory(name, valueStr, unitStr) {\n var dependencies = ['config', 'Unit', 'BigNumber'];\n return factory(name, dependencies, _ref => {\n var {\n config,\n Unit,\n BigNumber\n } = _ref;\n // Note that we can parse into number or BigNumber.\n // We do not parse into Fractions as that doesn't make sense: we would lose precision of the values\n // Therefore we dont use Unit.parse()\n var value = config.number === 'BigNumber' ? new BigNumber(valueStr) : parseFloat(valueStr);\n var unit = new Unit(value, unitStr);\n unit.fixPrefix = true;\n return unit;\n });\n}\n\n// helper function to create a factory function which creates a numeric constant,\n// either a number or BigNumber depending on the configuration\nfunction numberFactory(name, value) {\n var dependencies = ['config', 'BigNumber'];\n return factory(name, dependencies, _ref2 => {\n var {\n config,\n BigNumber\n } = _ref2;\n return config.number === 'BigNumber' ? new BigNumber(value) : value;\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// 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\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 this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\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/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\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;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\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 // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') 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 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 this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\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 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 // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\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}\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(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})();\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 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}\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\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\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);\n\n // legacy.\n this.writable = true;\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 Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.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 er;\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 if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\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 if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\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};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\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};\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});\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}\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});\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 state.length += len;\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 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 return ret;\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}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\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);\n // this can emit finish, and it will always happen\n // after error\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);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\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 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\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 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 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 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 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 if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\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 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) endWritable(this, state, cb);\n return this;\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});\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 errorOrDestroy(stream, 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' && !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}\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 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 if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\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\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\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 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 }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","import { factory } from '../../../utils/factory.js';\nimport { DimensionError } from '../../../error/DimensionError.js';\nvar name = 'matAlgo01xDSid';\nvar dependencies = ['typed'];\nexport var createMatAlgo01xDSid = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Iterates over SparseMatrix nonzero items and invokes the callback function f(Dij, Sij).\n * Callback function invoked NNZ times (number of nonzero items in SparseMatrix).\n *\n *\n * ┌ f(Dij, Sij) ; S(i,j) !== 0\n * C(i,j) = ┤\n * └ Dij ; otherwise\n *\n *\n * @param {Matrix} denseMatrix The DenseMatrix instance (D)\n * @param {Matrix} sparseMatrix The SparseMatrix instance (S)\n * @param {Function} callback The f(Dij,Sij) operation to invoke, where Dij = DenseMatrix(i,j) and Sij = SparseMatrix(i,j)\n * @param {boolean} inverse A true value indicates callback should be invoked f(Sij,Dij)\n *\n * @return {Matrix} DenseMatrix (C)\n *\n * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97477571\n */\n return function algorithm1(denseMatrix, sparseMatrix, callback, inverse) {\n // dense matrix arrays\n var adata = denseMatrix._data;\n var asize = denseMatrix._size;\n var adt = denseMatrix._datatype;\n // sparse matrix arrays\n var bvalues = sparseMatrix._values;\n var bindex = sparseMatrix._index;\n var bptr = sparseMatrix._ptr;\n var bsize = sparseMatrix._size;\n var bdt = sparseMatrix._datatype;\n\n // validate dimensions\n if (asize.length !== bsize.length) {\n throw new DimensionError(asize.length, bsize.length);\n }\n\n // check rows & columns\n if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {\n throw new RangeError('Dimension mismatch. Matrix A (' + asize + ') must match Matrix B (' + bsize + ')');\n }\n\n // sparse matrix cannot be a Pattern matrix\n if (!bvalues) {\n throw new Error('Cannot perform operation on Dense Matrix and Pattern Sparse Matrix');\n }\n\n // rows & columns\n var rows = asize[0];\n var columns = asize[1];\n\n // process data types\n var dt = typeof adt === 'string' && adt === bdt ? adt : undefined;\n // callback function\n var cf = dt ? typed.find(callback, [dt, dt]) : callback;\n\n // vars\n var i, j;\n\n // result (DenseMatrix)\n var cdata = [];\n // initialize c\n for (i = 0; i < rows; i++) {\n cdata[i] = [];\n }\n\n // workspace\n var x = [];\n // marks indicating we have a value in x for a given column\n var w = [];\n\n // loop columns in b\n for (j = 0; j < columns; j++) {\n // column mark\n var mark = j + 1;\n // values in column j\n for (var k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {\n // row\n i = bindex[k];\n // update workspace\n x[i] = inverse ? cf(bvalues[k], adata[i][j]) : cf(adata[i][j], bvalues[k]);\n // mark i as updated\n w[i] = mark;\n }\n // loop rows\n for (i = 0; i < rows; i++) {\n // check row is in workspace\n if (w[i] === mark) {\n // c[i][j] was already calculated\n cdata[i][j] = x[i];\n } else {\n // item does not exist in S\n cdata[i][j] = adata[i][j];\n }\n }\n }\n\n // return dense matrix\n return denseMatrix.createDenseMatrix({\n data: cdata,\n size: [rows, columns],\n datatype: dt\n });\n };\n});","import { factory } from '../../utils/factory.js';\nimport { isInteger } from '../../utils/number.js';\nimport { isMatrix } from '../../utils/is.js';\nvar name = 'diff';\nvar dependencies = ['typed', 'matrix', 'subtract', 'number'];\nexport var createDiff = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n subtract,\n number\n } = _ref;\n /**\n * Create a new matrix or array of the difference between elements of the given array\n * The optional dim parameter lets you specify the dimension to evaluate the difference of\n * If no dimension parameter is passed it is assumed as dimension 0\n *\n * Dimension is zero-based in javascript and one-based in the parser and can be a number or bignumber\n * Arrays must be 'rectangular' meaning arrays like [1, 2]\n * If something is passed as a matrix it will be returned as a matrix but other than that all matrices are converted to arrays\n *\n * Syntax:\n *\n * math.diff(arr)\n * math.diff(arr, dim)\n *\n * Examples:\n *\n * const arr = [1, 2, 4, 7, 0]\n * math.diff(arr) // returns [1, 2, 3, -7] (no dimension passed so 0 is assumed)\n * math.diff(math.matrix(arr)) // returns Matrix [1, 2, 3, -7]\n *\n * const arr = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [9, 8, 7, 6, 4]]\n * math.diff(arr) // returns [[0, 0, 0, 0, 0], [8, 6, 4, 2, -1]]\n * math.diff(arr, 0) // returns [[0, 0, 0, 0, 0], [8, 6, 4, 2, -1]]\n * math.diff(arr, 1) // returns [[1, 1, 1, 1], [1, 1, 1, 1], [-1, -1, -1, -2]]\n * math.diff(arr, math.bignumber(1)) // returns [[1, 1, 1, 1], [1, 1, 1, 1], [-1, -1, -1, -2]]\n *\n * math.diff(arr, 2) // throws RangeError as arr is 2 dimensional not 3\n * math.diff(arr, -1) // throws RangeError as negative dimensions are not allowed\n *\n * // These will all produce the same result\n * math.diff([[1, 2], [3, 4]])\n * math.diff([math.matrix([1, 2]), math.matrix([3, 4])])\n * math.diff([[1, 2], math.matrix([3, 4])])\n * math.diff([math.matrix([1, 2]), [3, 4]])\n * // They do not produce the same result as math.diff(math.matrix([[1, 2], [3, 4]])) as this returns a matrix\n *\n * See Also:\n *\n * sum\n * subtract\n * partitionSelect\n *\n * @param {Array | Matrix} arr An array or matrix\n * @param {number | BigNumber} dim Dimension\n * @return {Array | Matrix} Difference between array elements in given dimension\n */\n return typed(name, {\n 'Array | Matrix': function ArrayMatrix(arr) {\n // No dimension specified => assume dimension 0\n if (isMatrix(arr)) {\n return matrix(_diff(arr.toArray()));\n } else {\n return _diff(arr);\n }\n },\n 'Array | Matrix, number': function ArrayMatrixNumber(arr, dim) {\n if (!isInteger(dim)) throw new RangeError('Dimension must be a whole number');\n if (isMatrix(arr)) {\n return matrix(_recursive(arr.toArray(), dim));\n } else {\n return _recursive(arr, dim);\n }\n },\n 'Array, BigNumber': typed.referTo('Array,number', selfAn => (arr, dim) => selfAn(arr, number(dim))),\n 'Matrix, BigNumber': typed.referTo('Matrix,number', selfMn => (arr, dim) => selfMn(arr, number(dim)))\n });\n\n /**\n * Recursively find the correct dimension in the array/matrix\n * Then Apply _diff to that dimension\n *\n * @param {Array} arr The array\n * @param {number} dim Dimension\n * @return {Array} resulting array\n */\n function _recursive(arr, dim) {\n if (isMatrix(arr)) {\n arr = arr.toArray(); // Makes sure arrays like [ matrix([0, 1]), matrix([1, 0]) ] are processed properly\n }\n\n if (!Array.isArray(arr)) {\n throw RangeError('Array/Matrix does not have that many dimensions');\n }\n if (dim > 0) {\n var result = [];\n arr.forEach(element => {\n result.push(_recursive(element, dim - 1));\n });\n return result;\n } else if (dim === 0) {\n return _diff(arr);\n } else {\n throw RangeError('Cannot have negative dimension');\n }\n }\n\n /**\n * Difference between elements in the array\n *\n * @param {Array} arr An array\n * @return {Array} resulting array\n */\n function _diff(arr) {\n var result = [];\n var size = arr.length;\n for (var i = 1; i < size; i++) {\n result.push(_ElementDiff(arr[i - 1], arr[i]));\n }\n return result;\n }\n\n /**\n * Difference between 2 objects\n *\n * @param {Object} obj1 First object\n * @param {Object} obj2 Second object\n * @return {Array} resulting array\n */\n function _ElementDiff(obj1, obj2) {\n // Convert matrices to arrays\n if (isMatrix(obj1)) obj1 = obj1.toArray();\n if (isMatrix(obj2)) obj2 = obj2.toArray();\n var obj1IsArray = Array.isArray(obj1);\n var obj2IsArray = Array.isArray(obj2);\n if (obj1IsArray && obj2IsArray) {\n return _ArrayDiff(obj1, obj2);\n }\n if (!obj1IsArray && !obj2IsArray) {\n return subtract(obj2, obj1); // Difference is (second - first) NOT (first - second)\n }\n\n throw TypeError('Cannot calculate difference between 1 array and 1 non-array');\n }\n\n /**\n * Difference of elements in 2 arrays\n *\n * @param {Array} arr1 Array 1\n * @param {Array} arr2 Array 2\n * @return {Array} resulting array\n */\n function _ArrayDiff(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n throw RangeError('Not all sub-arrays have the same length');\n }\n var result = [];\n var size = arr1.length;\n for (var i = 0; i < size; i++) {\n result.push(_ElementDiff(arr1[i], arr2[i]));\n }\n return result;\n }\n});","import { isBigNumber } from '../../utils/is.js';\nimport { format, sign } from '../../utils/number.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'Range';\nvar dependencies = [];\nexport var createRangeClass = /* #__PURE__ */factory(name, dependencies, () => {\n /**\n * Create a range. A range has a start, step, and end, and contains functions\n * to iterate over the range.\n *\n * A range can be constructed as:\n *\n * const range = new Range(start, end)\n * const range = new Range(start, end, step)\n *\n * To get the result of the range:\n * range.forEach(function (x) {\n * console.log(x)\n * })\n * range.map(function (x) {\n * return math.sin(x)\n * })\n * range.toArray()\n *\n * Example usage:\n *\n * const c = new Range(2, 6) // 2:1:5\n * c.toArray() // [2, 3, 4, 5]\n * const d = new Range(2, -3, -1) // 2:-1:-2\n * d.toArray() // [2, 1, 0, -1, -2]\n *\n * @class Range\n * @constructor Range\n * @param {number} start included lower bound\n * @param {number} end excluded upper bound\n * @param {number} [step] step size, default value is 1\n */\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n throw new SyntaxError('Constructor must be called with the new operator');\n }\n var hasStart = start !== null && start !== undefined;\n var hasEnd = end !== null && end !== undefined;\n var hasStep = step !== null && step !== undefined;\n if (hasStart) {\n if (isBigNumber(start)) {\n start = start.toNumber();\n } else if (typeof start !== 'number') {\n throw new TypeError('Parameter start must be a number');\n }\n }\n if (hasEnd) {\n if (isBigNumber(end)) {\n end = end.toNumber();\n } else if (typeof end !== 'number') {\n throw new TypeError('Parameter end must be a number');\n }\n }\n if (hasStep) {\n if (isBigNumber(step)) {\n step = step.toNumber();\n } else if (typeof step !== 'number') {\n throw new TypeError('Parameter step must be a number');\n }\n }\n this.start = hasStart ? parseFloat(start) : 0;\n this.end = hasEnd ? parseFloat(end) : 0;\n this.step = hasStep ? parseFloat(step) : 1;\n }\n\n /**\n * Attach type information\n */\n Range.prototype.type = 'Range';\n Range.prototype.isRange = true;\n\n /**\n * Parse a string into a range,\n * The string contains the start, optional step, and end, separated by a colon.\n * If the string does not contain a valid range, null is returned.\n * For example str='0:2:11'.\n * @memberof Range\n * @param {string} str\n * @return {Range | null} range\n */\n Range.parse = function (str) {\n if (typeof str !== 'string') {\n return null;\n }\n var args = str.split(':');\n var nums = args.map(function (arg) {\n return parseFloat(arg);\n });\n var invalid = nums.some(function (num) {\n return isNaN(num);\n });\n if (invalid) {\n return null;\n }\n switch (nums.length) {\n case 2:\n return new Range(nums[0], nums[1]);\n case 3:\n return new Range(nums[0], nums[2], nums[1]);\n default:\n return null;\n }\n };\n\n /**\n * Create a clone of the range\n * @return {Range} clone\n */\n Range.prototype.clone = function () {\n return new Range(this.start, this.end, this.step);\n };\n\n /**\n * Retrieve the size of the range.\n * Returns an array containing one number, the number of elements in the range.\n * @memberof Range\n * @returns {number[]} size\n */\n Range.prototype.size = function () {\n var len = 0;\n var start = this.start;\n var step = this.step;\n var end = this.end;\n var diff = end - start;\n if (sign(step) === sign(diff)) {\n len = Math.ceil(diff / step);\n } else if (diff === 0) {\n len = 0;\n }\n if (isNaN(len)) {\n len = 0;\n }\n return [len];\n };\n\n /**\n * Calculate the minimum value in the range\n * @memberof Range\n * @return {number | undefined} min\n */\n Range.prototype.min = function () {\n var size = this.size()[0];\n if (size > 0) {\n if (this.step > 0) {\n // positive step\n return this.start;\n } else {\n // negative step\n return this.start + (size - 1) * this.step;\n }\n } else {\n return undefined;\n }\n };\n\n /**\n * Calculate the maximum value in the range\n * @memberof Range\n * @return {number | undefined} max\n */\n Range.prototype.max = function () {\n var size = this.size()[0];\n if (size > 0) {\n if (this.step > 0) {\n // positive step\n return this.start + (size - 1) * this.step;\n } else {\n // negative step\n return this.start;\n }\n } else {\n return undefined;\n }\n };\n\n /**\n * Execute a callback function for each value in the range.\n * @memberof Range\n * @param {function} callback The callback method is invoked with three\n * parameters: the value of the element, the index\n * of the element, and the Range being traversed.\n */\n Range.prototype.forEach = function (callback) {\n var x = this.start;\n var step = this.step;\n var end = this.end;\n var i = 0;\n if (step > 0) {\n while (x < end) {\n callback(x, [i], this);\n x += step;\n i++;\n }\n } else if (step < 0) {\n while (x > end) {\n callback(x, [i], this);\n x += step;\n i++;\n }\n }\n };\n\n /**\n * Execute a callback function for each value in the Range, and return the\n * results as an array\n * @memberof Range\n * @param {function} callback The callback method is invoked with three\n * parameters: the value of the element, the index\n * of the element, and the Matrix being traversed.\n * @returns {Array} array\n */\n Range.prototype.map = function (callback) {\n var array = [];\n this.forEach(function (value, index, obj) {\n array[index[0]] = callback(value, index, obj);\n });\n return array;\n };\n\n /**\n * Create an Array with a copy of the Ranges data\n * @memberof Range\n * @returns {Array} array\n */\n Range.prototype.toArray = function () {\n var array = [];\n this.forEach(function (value, index) {\n array[index[0]] = value;\n });\n return array;\n };\n\n /**\n * Get the primitive value of the Range, a one dimensional array\n * @memberof Range\n * @returns {Array} array\n */\n Range.prototype.valueOf = function () {\n // TODO: implement a caching mechanism for range.valueOf()\n return this.toArray();\n };\n\n /**\n * Get a string representation of the range, with optional formatting options.\n * Output is formatted as 'start:step:end', for example '2:6' or '0:0.2:11'\n * @memberof Range\n * @param {Object | number | function} [options] Formatting options. See\n * lib/utils/number:format for a\n * description of the available\n * options.\n * @returns {string} str\n */\n Range.prototype.format = function (options) {\n var str = format(this.start, options);\n if (this.step !== 1) {\n str += ':' + format(this.step, options);\n }\n str += ':' + format(this.end, options);\n return str;\n };\n\n /**\n * Get a string representation of the range.\n * @memberof Range\n * @returns {string}\n */\n Range.prototype.toString = function () {\n return this.format();\n };\n\n /**\n * Get a JSON representation of the range\n * @memberof Range\n * @returns {Object} Returns a JSON object structured as:\n * `{\"mathjs\": \"Range\", \"start\": 2, \"end\": 4, \"step\": 1}`\n */\n Range.prototype.toJSON = function () {\n return {\n mathjs: 'Range',\n start: this.start,\n end: this.end,\n step: this.step\n };\n };\n\n /**\n * Instantiate a Range from a JSON object\n * @memberof Range\n * @param {Object} json A JSON object structured as:\n * `{\"mathjs\": \"Range\", \"start\": 2, \"end\": 4, \"step\": 1}`\n * @return {Range}\n */\n Range.fromJSON = function (json) {\n return new Range(json.start, json.end, json.step);\n };\n return Range;\n}, {\n isClass: true\n});","import { factory } from '../../../utils/factory.js';\nimport { DimensionError } from '../../../error/DimensionError.js';\nimport { scatter } from '../../../utils/collection.js';\nvar name = 'matAlgo06xS0S0';\nvar dependencies = ['typed', 'equalScalar'];\nexport var createMatAlgo06xS0S0 = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n equalScalar\n } = _ref;\n /**\n * Iterates over SparseMatrix A and SparseMatrix B nonzero items and invokes the callback function f(Aij, Bij).\n * Callback function invoked (Anz U Bnz) times, where Anz and Bnz are the nonzero elements in both matrices.\n *\n *\n * ┌ f(Aij, Bij) ; A(i,j) !== 0 && B(i,j) !== 0\n * C(i,j) = ┤\n * └ 0 ; otherwise\n *\n *\n * @param {Matrix} a The SparseMatrix instance (A)\n * @param {Matrix} b The SparseMatrix instance (B)\n * @param {Function} callback The f(Aij,Bij) operation to invoke\n *\n * @return {Matrix} SparseMatrix (C)\n *\n * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294\n */\n return function matAlgo06xS0S0(a, b, callback) {\n // sparse matrix arrays\n var avalues = a._values;\n var asize = a._size;\n var adt = a._datatype;\n // sparse matrix arrays\n var bvalues = b._values;\n var bsize = b._size;\n var bdt = b._datatype;\n\n // validate dimensions\n if (asize.length !== bsize.length) {\n throw new DimensionError(asize.length, bsize.length);\n }\n\n // check rows & columns\n if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {\n throw new RangeError('Dimension mismatch. Matrix A (' + asize + ') must match Matrix B (' + bsize + ')');\n }\n\n // rows & columns\n var rows = asize[0];\n var columns = asize[1];\n\n // datatype\n var dt;\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n // callback signature to use\n var cf = callback;\n\n // process data types\n if (typeof adt === 'string' && adt === bdt) {\n // datatype\n dt = adt;\n // find signature that matches (dt, dt)\n eq = typed.find(equalScalar, [dt, dt]);\n // convert 0 to the same datatype\n zero = typed.convert(0, dt);\n // callback\n cf = typed.find(callback, [dt, dt]);\n }\n\n // result arrays\n var cvalues = avalues && bvalues ? [] : undefined;\n var cindex = [];\n var cptr = [];\n\n // workspaces\n var x = cvalues ? [] : undefined;\n // marks indicating we have a value in x for a given column\n var w = [];\n // marks indicating value in a given row has been updated\n var u = [];\n\n // loop columns\n for (var j = 0; j < columns; j++) {\n // update cptr\n cptr[j] = cindex.length;\n // columns mark\n var mark = j + 1;\n // scatter the values of A(:,j) into workspace\n scatter(a, j, w, x, u, mark, cindex, cf);\n // scatter the values of B(:,j) into workspace\n scatter(b, j, w, x, u, mark, cindex, cf);\n // check we need to process values (non pattern matrix)\n if (x) {\n // initialize first index in j\n var k = cptr[j];\n // loop index in j\n while (k < cindex.length) {\n // row\n var i = cindex[k];\n // check function was invoked on current row (Aij !=0 && Bij != 0)\n if (u[i] === mark) {\n // value @ i\n var v = x[i];\n // check for zero value\n if (!eq(v, zero)) {\n // push value\n cvalues.push(v);\n // increment pointer\n k++;\n } else {\n // remove value @ i, do not increment pointer\n cindex.splice(k, 1);\n }\n } else {\n // remove value @ i, do not increment pointer\n cindex.splice(k, 1);\n }\n }\n } else {\n // initialize first index in j\n var p = cptr[j];\n // loop index in j\n while (p < cindex.length) {\n // row\n var r = cindex[p];\n // check function was invoked on current row (Aij !=0 && Bij != 0)\n if (u[r] !== mark) {\n // remove value @ i, do not increment pointer\n cindex.splice(p, 1);\n } else {\n // increment pointer\n p++;\n }\n }\n }\n }\n // update cptr\n cptr[columns] = cindex.length;\n\n // return sparse matrix\n return a.createSparseMatrix({\n values: cvalues,\n index: cindex,\n ptr: cptr,\n size: [rows, columns],\n datatype: dt\n });\n };\n});","/*Copyrights for code authored by Yahoo Inc. is licensed under the following terms:\r\nMIT License\r\nCopyright 2017 Yahoo Inc.\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n*/\r\n!function(e,t,r,i){\"use strict\";function n(){return C.isValid()}function o(){return C.isValid()}function a(){var e={getUserMedia:!0};return C.isValid(e)}function s(e){var t=!1;if(w.isArray(e)&&e.length){if(w.each(e,function(e,r){w.isSupported.videoCodecs[r]&&(t=!0)}),!t){ return!1 }}else if(w.isString(e)&&e.length&&!w.isSupported.videoCodecs[e]){ return!1; }return C.isValid({getUserMedia:!0})}function d(){function e(e,t,r){var i,n;for(u=e,m=t,g=r,f=new Array(h),i=0;h>i;i++){ f[i]=new Array(4),n=f[i],n[0]=n[1]=n[2]=(i<r;r++){ t[f[r][3]]=r; }for(var i=0,n=0;h>n;n++){var o=t[n];e[i++]=f[o][0],e[i++]=f[o][1],e[i++]=f[o][2]}return e}function r(){var e,t,r,i,n,o,a,s;for(a=0,s=0,e=0;h>e;e++){for(n=f[e],r=e,i=n[1],t=e+1;h>t;t++){ o=f[t],o[1]>1,t=a+1;i>t;t++){ P[t]=e; }a=i,s=e}}for(P[a]=s+C>>1,t=a+1;256>t;t++){ P[t]=C }}function i(){var e,t,r,i,n,o,a,f,h,C,x,F,W,O;for(y>m&&(g=1),l=30+(g-1)/3,F=u,W=0,O=m,x=m/(3*g),C=x/S|0,f=V,o=T,a=o>>U,1>=a&&(a=0),e=0;a>e;e++){ N[e]=f*((a*a-e*e)*z/(a*a)); }for(h=y>m?3:m%p!==0?3*p:m%v!==0?3*v:m%b!==0?3*b:3*w,e=0;x>e;){ if(r=(255&F[W+0])<=O&&(W-=m),e++,0===C&&(C=1),e%C===0){ for(f-=f/l,o-=o/I,a=o>>U,1>=a&&(a=0),t=0;a>t;t++){ N[t]=f*((a*a-t*t)*z/(a*a)) } } }}function n(e,t,r){var i,n,o,a,s,d,c;for(s=1e3,c=-1,i=P[t],n=i-1;h>i||n>=0;){ h>i&&(d=f[i],o=d[1]-t,o>=s?i=h:(i++,0>o&&(o=-o),a=d[0]-e,0>a&&(a=-a),o+=a,s>o&&(a=d[2]-r,0>a&&(a=-a),o+=a,s>o&&(s=o,c=d[3])))),n>=0&&(d=f[n],o=t-d[1],o>=s?n=-1:(n--,0>o&&(o=-o),a=d[0]-e,0>a&&(a=-a),o+=a,s>o&&(a=d[2]-r,0>a&&(a=-a),o+=a,s>o&&(s=o,c=d[3])))); }return c}function o(){return i(),a(),r(),t()}function a(){var e;for(e=0;h>e;e++){ f[e][0]>>=k,f[e][1]>>=k,f[e][2]>>=k,f[e][3]=e }}function s(e,t,r,i,n){var o,a,s,d,c,l,u;for(s=t-e,-1>s&&(s=-1),d=t+e,d>h&&(d=h),o=t+1,a=t-1,l=1;d>o||a>s;){if(c=N[l++],d>o){u=f[o++];try{u[0]-=c*(u[0]-r)/B|0,u[1]-=c*(u[1]-i)/B|0,u[2]-=c*(u[2]-n)/B|0}catch(m){}}if(a>s){u=f[a--];try{u[0]-=c*(u[0]-r)/B|0,u[1]-=c*(u[1]-i)/B|0,u[2]-=c*(u[2]-n)/B|0}catch(m$1){}}}}function d(e,t,r,i,n){var o=f[t],a=e/V;o[0]-=a*(o[0]-r)|0,o[1]-=a*(o[1]-i)|0,o[2]-=a*(o[2]-n)|0}function c(e,t,r){var i,n,o,a,s,d,c,l,u,m;for(l=~(1<<31),u=l,d=-1,c=d,i=0;h>i;i++){ m=f[i],n=m[0]-e,0>n&&(n=-n),o=m[1]-t,0>o&&(o=-o),n+=o,o=m[2]-r,0>o&&(o=-o),n+=o,l>n&&(l=n,d=i),a=n-(G[i]>>x-k),u>a&&(u=a,c=i),s=D[i]>>O,D[i]-=s,G[i]+=s<>O,M=F<>3,U=6,R=1<n;){ o.push(e[n++]),o.push(e[n++]),o.push(e[n++]),n++; }return o},componentizedPaletteToArray:function(e){e=e||[];for(var t=[],r=0;rm;m++){var g=n[u++],f=n[u++],h=n[u++];l[m]=o.map(g,f,h)}return{pixels:l,palette:s}},run:function(e){e=e||{};var t=e,r=t.height,i=(t.palette,t.sampleInterval),n=t.width,o=e.data;return this.processFrameWithQuantizer(o,n,r,i)}};return r}function l(e,t,r,n){function o(e){var t=e.length;if(2>t||t>256||t&t-1){ throw\"Invalid code/color length, must be power of 2 and 2 .. 256.\"; }return t}function a(e,t,r,n){function o(r){for(;g>=r;){ e[t++]=255&f,f>>=8,g-=8,t===s+256&&(e[s]=255,s=t++) }}function a(e){f|=e<v;++v){var w=n[v]&c,y=h<<8|w,C=p[y];if(C===i){for(f|=h<=8;){ e[t++]=255&f,f>>=8,g-=8,t===s+256&&(e[s]=255,s=t++); }4096===u?(a(d),u=l+1,m=r+1,p={}):(u>=1<=t||0>=r||t>65535||r>65535){ throw\"Width/Height invalid.\"; }e[s++]=71,e[s++]=73,e[s++]=70,e[s++]=56,e[s++]=57,e[s++]=97;var l=0,u=0;if(e[s++]=255&t,e[s++]=t>>8&255,e[s++]=255&r,e[s++]=r>>8&255,e[s++]=(null!==c?128:0)|l,e[s++]=u,e[s++]=0,null!==d){if(0>d||d>65535){ throw\"Loop count invalid.\"; }e[s++]=33,e[s++]=255,e[s++]=11,e[s++]=78,e[s++]=69,e[s++]=84,e[s++]=83,e[s++]=67,e[s++]=65,e[s++]=80,e[s++]=69,e[s++]=50,e[s++]=46,e[s++]=48,e[s++]=3,e[s++]=1,e[s++]=255&d,e[s++]=d>>8&255,e[s++]=0}var m=!1;this.addFrame=function(t,r,n,d,l,u){if(m===!0&&(--s,m=!1),u=u===i?{}:u,0>t||0>r||t>65535||r>65535){ throw\"x/y invalid.\"; }if(0>=n||0>=d||n>65535||d>65535){ throw\"Width/Height invalid.\"; }if(l.length>=1;){ ++p; }h=1<b||b>3){ throw\"Disposal out of range.\"; }var w=!1,y=0;if(u.transparent!==i&&null!==u.transparent&&(w=!0,y=u.transparent,0>y||y>=h)){ throw\"Transparent color index.\"; }if((0!==b||w||0!==v)&&(e[s++]=33,e[s++]=249,e[s++]=4,e[s++]=b<<2|(w===!0?1:0),e[s++]=255&v,e[s++]=v>>8&255,e[s++]=y,e[s++]=0),e[s++]=44,e[s++]=255&t,e[s++]=t>>8&255,e[s++]=255&r,e[s++]=r>>8&255,e[s++]=255&n,e[s++]=n>>8&255,e[s++]=255&d,e[s++]=d>>8&255,e[s++]=g===!0?128|p-1:0,g===!0){ for(var C=0,k=f.length;k>C;++C){var S=f[C];e[s++]=S>>16&255,e[s++]=S>>8&255,e[s++]=255&S} }s=a(e,s,2>p?2:p,l)},this.end=function(){return m===!1&&(e[s++]=59,m=!0),s}}function u(e,t){e.getBase64GIF(function(e){t({error:!1,errorCode:\"\",errorMsg:\"\",image:e})})}function m(){function e(){w.each(l,function(e,t){t&&(t.text?f.addFrame(t.img,a,t.text):f.addFrame(t,a))}),u(f,n)}var r=arguments.length>0&&arguments[0]!==i?arguments[0]:{},n=r.callback,o=r.images,a=r.options,s=r.imagesLength,d={getUserMedia:!0,\"window.URL\":!0},c=C.validate(d),l=[],m=0,g=void 0,f=void 0;return c.error?n(c):(f=new O(a),w.each(o,function(r,i){var o=i;i.src&&(o=o.src),w.isElement(o)?(a.crossOrigin&&(o.crossOrigin=a.crossOrigin),l[r]=o,m+=1,m===s&&e()):w.isString(o)&&(g=new Image,a.crossOrigin&&(g.crossOrigin=a.crossOrigin),function(t){i.text&&(t.text=i.text),t.onerror=function(){var e=void 0;return--s,0===s?(e={},e.error=\"None of the requested images was capable of being retrieved\",n(e)):void 0},t.onload=function(){l[r]=i.text?{img:t,text:t.text}:t,m+=1,m===s&&e(),w.removeElement(t)},t.src=o}(g),w.setCSSAttr(g,{position:\"fixed\",opacity:\"0\"}),t.body.appendChild(g))}),void 0)}function g(e){e=w.isObject(e)?e:{},A.stopVideoStreaming(e)}function f(e,r){var i=e.options||{},n=i.images,o=i.video,a=Number(i.gifWidth),s=Number(i.gifHeight),d=(Number(i.numFrames),e.cameraStream),c=e.videoElement,l=e.videoWidth,u=e.videoHeight,m=M.getCropDimensions({videoWidth:l,videoHeight:u,gifHeight:s,gifWidth:a}),f=r;i.crop=m,i.videoElement=c,i.videoWidth=l,i.videoHeight=u,i.cameraStream=d,w.isElement(c)&&(c.width=a+m.width,c.height=s+m.height,i.webcamVideoElement||(w.setCSSAttr(c,{position:\"fixed\",opacity:\"0\"}),t.body.appendChild(c)),c.play(),M.getGIF(i,function(e){n&&n.length||o&&o.length||g(e),f(e)}))}function h(){var e=arguments.length>0&&arguments[0]!==i?arguments[0]:{},t=e.callback,r=e.existingVideo,n=e.options,o={getUserMedia:!0,\"window.URL\":!0},a=C.validate(o),s=void 0,d=void 0;if(a.error){ return t(a); }if(w.isElement(r)&&r.src){if(d=r.src,s=w.getExtension(d),!w.isSupported.videoCodecs[s]){ return t(C.messages.videoCodecs) }}else { w.isArray(r)&&w.each(r,function(e,t){return s=t instanceof Blob?t.type.substr(t.type.lastIndexOf(\"/\")+1,t.length):t.substr(t.lastIndexOf(\".\")+1,t.length),w.isSupported.videoCodecs[s]?(r=t,!1):void 0}); }A.startStreaming({completed:function(e){e.options=n||{},f(e,t)},existingVideo:r,crossOrigin:n.crossOrigin,options:n})}function p(){var e=arguments.length>0&&arguments[0]!==i?arguments[0]:{},t=e.callback,r=e.lastCameraStream,n=e.options,a=e.webcamVideoElement;return o()?n.savedRenderingContexts.length?(M.getGIF(n,function(e){t(e)}),void 0):(A.startVideoStreaming(function(){var e=arguments.length>0&&arguments[0]!==i?arguments[0]:{};e.options=n||{},f(e,t)},{lastCameraStream:r,callback:t,webcamVideoElement:a,crossOrigin:n.crossOrigin}),void 0):t(C.validate())}function v(e,t){if(t=w.isFunction(e)?e:t,e=w.isObject(e)?e:{},w.isFunction(t)){var r=w.mergeOptions(x,e)||{},i=e.cameraStream,n=r.images,o=n?n.length:0,a=r.video,s=r.webcamVideoElement;r=w.mergeOptions(r,{gifWidth:Math.floor(r.gifWidth),gifHeight:Math.floor(r.gifHeight)}),o?m({images:n,imagesLength:o,callback:t,options:r}):a?h({existingVideo:a,callback:t,options:r}):p({lastCameraStream:i,callback:t,webcamVideoElement:s,options:r})}}function b(e,t){if(t=w.isFunction(e)?e:t,e=w.isObject(e)?e:{},w.isFunction(t)){var r=w.mergeOptions(x,e),i=w.mergeOptions(r,{interval:.1,numFrames:1,gifWidth:Math.floor(r.gifWidth),gifHeight:Math.floor(r.gifHeight)});v(i,t)}}var w={URL:e.URL||e.webkitURL||e.mozURL||e.msURL,getUserMedia:function(){var e=r.getUserMedia||r.webkitGetUserMedia||r.mozGetUserMedia||r.msGetUserMedia;return e?e.bind(r):e}(),requestAnimFrame:e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame,requestTimeout:function(e,t){if(e=e||w.noop,t=t||0,!w.requestAnimFrame){ return setTimeout(e,t); }var r=(new Date).getTime(),i=new Object,n=w.requestAnimFrame,o=function a(){var o=(new Date).getTime(),s=o-r;s>=t?e.call():i.value=n(a)};return i.value=n(o),i},Blob:e.Blob||e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||e.MSBlobBuilder,btoa:function(){var t=e.btoa||function(e){for(var t=\"\",r=0,i=e.length,n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",o=void 0,a=void 0,s=void 0,d=void 0,c=void 0,l=void 0,u=void 0;i>r;){ o=e.charCodeAt(r++),a=e.charCodeAt(r++),s=e.charCodeAt(r++),d=o>>2,c=(3&o)<<4|a>>4,l=(15&a)<<2|s>>6,u=63&s,isNaN(a)?l=u=64:isNaN(s)&&(u=64),t=t+n.charAt(d)+n.charAt(c)+n.charAt(l)+n.charAt(u); }return t};return t?t.bind(e):w.noop}(),isObject:function(e){return e&&\"[object Object]\"===Object.prototype.toString.call(e)},isEmptyObject:function(e){return w.isObject(e)&&!Object.keys(e).length},isArray:function(e){return e&&Array.isArray(e)},isFunction:function(e){return e&&\"function\"==typeof e},isElement:function(e){return e&&1===e.nodeType},isString:function(e){return\"string\"==typeof e||\"[object String]\"===Object.prototype.toString.call(e)},isSupported:{canvas:function(){var e=t.createElement(\"canvas\");return e&&e.getContext&&e.getContext(\"2d\")},webworkers:function(){return e.Worker},blob:function(){return w.Blob},Uint8Array:function(){return e.Uint8Array},Uint32Array:function(){return e.Uint32Array},videoCodecs:function(){var e=t.createElement(\"video\"),r={mp4:!1,h264:!1,ogv:!1,ogg:!1,webm:!1};try{e&&e.canPlayType&&(r.mp4=\"\"!==e.canPlayType('video/mp4; codecs=\"mp4v.20.8\"'),r.h264=\"\"!==(e.canPlayType('video/mp4; codecs=\"avc1.42E01E\"')||e.canPlayType('video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"')),r.ogv=\"\"!==e.canPlayType('video/ogg; codecs=\"theora\"'),r.ogg=\"\"!==e.canPlayType('video/ogg; codecs=\"theora\"'),r.webm=-1!==e.canPlayType('video/webm; codecs=\"vp8, vorbis\"'))}catch(i){}return r}()},noop:function(){},each:function(e,t){var r=void 0,i=void 0;if(w.isArray(e)){ for(r=-1,i=e.length;++r0&&arguments[0]!==i?arguments[0]:{};if(!t.body||e.resizeFont===!1){ return e.fontSize; }var r=e.text,n=e.gifWidth,o=parseInt(e.fontSize,10),a=parseInt(e.minFontSize,10),s=t.createElement(\"div\"),d=t.createElement(\"span\");for(s.setAttribute(\"width\",n),s.appendChild(d),d.innerHTML=r,d.style.fontSize=o+\"px\",d.style.textIndent=\"-9999px\",d.style.visibility=\"hidden\",t.body.appendChild(d);d.offsetWidth>n&&o>=a;){ d.style.fontSize=--o+\"px\"; }return t.body.removeChild(d),o+\"px\"},webWorkerError:!1},y=Object.freeze({\"default\":w}),C={validate:function(e){e=w.isObject(e)?e:{};var t={};return w.each(C.validators,function(r,i){var n=i.errorCode;return e[n]||i.condition?void 0:(t=i,t.error=!0,!1)}),delete t.condition,t},isValid:function R(e){var t=C.validate(e),R=t.error!==!0?!0:!1;return R},validators:[{condition:w.isFunction(w.getUserMedia),errorCode:\"getUserMedia\",errorMsg:\"The getUserMedia API is not supported in your browser\"},{condition:w.isSupported.canvas(),errorCode:\"canvas\",errorMsg:\"Canvas elements are not supported in your browser\"},{condition:w.isSupported.webworkers(),errorCode:\"webworkers\",errorMsg:\"The Web Workers API is not supported in your browser\"},{condition:w.isFunction(w.URL),errorCode:\"window.URL\",errorMsg:\"The window.URL API is not supported in your browser\"},{condition:w.isSupported.blob(),errorCode:\"window.Blob\",errorMsg:\"The window.Blob File API is not supported in your browser\"},{condition:w.isSupported.Uint8Array(),errorCode:\"window.Uint8Array\",errorMsg:\"The window.Uint8Array function constructor is not supported in your browser\"},{condition:w.isSupported.Uint32Array(),errorCode:\"window.Uint32Array\",errorMsg:\"The window.Uint32Array function constructor is not supported in your browser\"}],messages:{videoCodecs:{errorCode:\"videocodec\",errorMsg:\"The video codec you are trying to use is not supported in your browser\"}}},k=Object.freeze({\"default\":C}),S=function(){},x={sampleInterval:10,numWorkers:2,filter:\"\",gifWidth:200,gifHeight:200,interval:.1,numFrames:10,frameDuration:1,keepCameraOn:!1,images:[],video:null,webcamVideoElement:null,cameraStream:null,text:\"\",fontWeight:\"normal\",fontSize:\"16px\",minFontSize:\"10px\",resizeFont:!1,fontFamily:\"sans-serif\",fontColor:\"#ffffff\",textAlign:\"center\",textBaseline:\"bottom\",textXCoordinate:null,textYCoordinate:null,progressCallback:S,completeCallback:S,saveRenderingContexts:!1,savedRenderingContexts:[],showFrameText:!0,crossOrigin:\"Anonymous\",waterMark:null,waterMarkHeight:null,waterMarkWidth:null,waterMarkXCoordinate:1,waterMarkYCoordinate:1},F=Object.freeze({\"default\":x}),W=function(){},O=function(e){this.canvas=null,this.ctx=null,this.repeat=0,this.frames=[],this.numRenderedFrames=0,this.onRenderCompleteCallback=W,this.onRenderProgressCallback=W,this.workers=[],this.availableWorkers=[],this.generatingGIF=!1,this.options=e,this.initializeWebWorkers(e)};O.prototype={workerMethods:c(),initializeWebWorkers:function(e){var r=this,i=d.toString()+\"(\"+c.toString()+\"());\",n=void 0,o=void 0,a=void 0,s=void 0,l=-1,u=\"\";for(s=e.numWorkers;++lt;t++){ e[t]=String.fromCharCode(t); }return e}(),bufferToString:function(e){for(var t=e.length,r=\"\",i=-1;++i0&&arguments[0]!==i?arguments[0]:{},r=e.data;delete s.data,s.pixels=Array.prototype.slice.call(r.pixels),s.palette=Array.prototype.slice.call(r.palette),s.done=!0,s.beingProcessed=!1,t.freeWorker(d),t.onFrameFinished(n)};return s=a[e],s.beingProcessed||s.done?(this.onFrameFinished(),void 0):(s.sampleInterval=o,s.beingProcessed=!0,s.gifshot=!0,d=this.getWorker(),d?(d.onmessage=c,d.postMessage(s)):c({data:t.workerMethods.run(s)}),void 0)},startRendering:function(e){this.onRenderCompleteCallback=e;for(var t=0;t=0&&this.processFrame(e)},generateGIF:function(e,t){var r=[],i={loop:this.repeat},n=this.options,o=n.interval,a=n.frameDuration,s=n.images,d=!!s.length,c=n.gifHeight,u=n.gifWidth,m=new l(r,u,c,i),g=this.onRenderProgressCallback,f=d?100*o:0,h=void 0,p=void 0;this.generatingGIF=!0,w.each(e,function(t,r){var i=r.palette;g(.75+.25*r.position*1/e.length);for(var n=0;a>n;n++){ m.addFrame(0,0,u,c,r.pixels,{palette:i,delay:f}) }}),m.end(),g(1),this.frames=[],this.generatingGIF=!1,w.isFunction(t)&&(h=this.bufferToString(r),p=\"data:image/gif;base64,\"+w.btoa(h),t(p))},setRepeat:function(e){this.repeat=e},addFrame:function(e,t,r){t=w.isObject(t)?t:{};var i=this,n=i.ctx,o=i.options,a=o.gifWidth,s=o.gifHeight,d=w.getFontSize(t),c=t,l=c.filter,u=c.fontColor,m=c.fontFamily,g=c.fontWeight,f=(c.gifHeight,c.gifWidth,c.text),h=c.textAlign,p=c.textBaseline,v=c.waterMark,b=c.waterMarkHeight,y=c.waterMarkWidth,C=c.waterMarkXCoordinate,k=c.waterMarkYCoordinate,S=t.textXCoordinate?t.textXCoordinate:\"left\"===h?1:\"right\"===h?a:a/2,x=t.textYCoordinate?t.textYCoordinate:\"top\"===p?1:\"center\"===p?s/2:s,F=g+\" \"+d+\" \"+m,W=r&&t.showFrameText?r:f,O=void 0;try{n.filter=l,n.drawImage(e,0,0,a,s),W&&(n.font=F,n.fillStyle=u,n.textAlign=h,n.textBaseline=p,n.fillText(W,S,x)),v&&n.drawImage(v,C,k,y,b),O=n.getImageData(0,0,a,s),i.addFrameImageData(O)}catch(E){return\"\"+E}},addFrameImageData:function(){var e=arguments.length>0&&arguments[0]!==i?arguments[0]:{},t=this.frames,r=e.data;this.frames.push({data:r,width:e.width,height:e.height,palette:null,dithering:null,done:!1,beingProcessed:!1,position:t.length})},onRenderProgress:function(e){this.onRenderProgressCallback=e},isRendering:function(){return this.generatingGIF},getBase64GIF:function(e){var t=this,r=function(r){t.destroyWorkers(),w.requestTimeout(function(){e(r)},0)};t.startRendering(r)},destroyWorkers:function(){if(!this.workerError){var e=this.workers;w.each(e,function(e,t){var r=t.worker,i=t.objectUrl;r.terminate(),w.URL.revokeObjectURL(i)})}}};var E=function(){},M={getGIF:function(){var e=arguments.length>0&&arguments[0]!==i?arguments[0]:{},r=arguments[1];r=w.isFunction(r)?r:E;var n=t.createElement(\"canvas\"),o=void 0,a=e.images,s=!!a.length,d=e.cameraStream,c=e.crop,l=e.filter,u=e.fontColor,m=e.fontFamily,g=e.fontWeight,f=e.keepCameraOn,h=(e.numWorkers,e.progressCallback),p=e.saveRenderingContexts,v=e.savedRenderingContexts,b=e.text,y=e.textAlign,C=e.textBaseline,k=e.videoElement,S=e.videoHeight,x=e.videoWidth,F=e.webcamVideoElement,W=e.waterMark,M=e.waterMarkHeight,A=e.waterMarkWidth,U=e.waterMarkXCoordinate,R=e.waterMarkYCoordinate,T=Number(e.gifWidth),I=Number(e.gifHeight),j=Number(e.interval),V=(Number(e.sampleInterval),s?0:1e3*j),H=[],z=v.length?v.length:e.numFrames,L=z,B=new O(e),P=w.getFontSize(e),G=e.textXCoordinate?e.textXCoordinate:\"left\"===y?1:\"right\"===y?T:T/2,D=e.textYCoordinate?e.textYCoordinate:\"top\"===C?1:\"center\"===C?I/2:I,N=g+\" \"+P+\" \"+m,q=c?Math.floor(c.scaledWidth/2):0,X=c?x-c.scaledWidth:0,Y=c?Math.floor(c.scaledHeight/2):0,Q=c?S-c.scaledHeight:0,_=function K(){function e(){try{X>x&&(X=x),Q>S&&(Q=S),0>q&&(q=0),0>Y&&(Y=0),o.filter=l,o.drawImage(k,q,Y,X,Q,0,0,T,I),t()}catch(r){if(\"NS_ERROR_NOT_AVAILABLE\"!==r.name){ throw r; }w.requestTimeout(e,100)}}function t(){var e=void 0;p&&H.push(o.getImageData(0,0,T,I)),W&&o.drawImage(W,U,R,A,M),b&&(o.font=N,o.fillStyle=u,o.textAlign=y,o.textBaseline=C,o.fillText(b,G,D)),e=o.getImageData(0,0,T,I),B.addFrameImageData(e),L=i,h((z-L)/z),i>0&&w.requestTimeout(K,V),L||B.getBase64GIF(function(e){r({error:!1,errorCode:\"\",errorMsg:\"\",image:e,cameraStream:d,videoElement:k,webcamVideoElement:F,savedRenderingContexts:H,keepCameraOn:f})})}var i=L-1;v.length?(o.putImageData(v[z-L],0,0),t()):e()};z=z!==i?z:10,j=j!==i?j:.1,n.width=T,n.height=I,o=n.getContext(\"2d\"),function J(){return v.length||0!==k.currentTime?(_(),void 0):(w.requestTimeout(J,100),void 0)}()},getCropDimensions:function(){var e=arguments.length>0&&arguments[0]!==i?arguments[0]:{},t=e.videoWidth,r=e.videoHeight,n=e.gifWidth,o=e.gifHeight,a={width:0,height:0,scaledWidth:0,scaledHeight:0};return t>r?(a.width=Math.round(t*(o/r))-n,a.scaledWidth=Math.round(a.width*(r/o))):(a.height=Math.round(r*(n/t))-o,a.scaledHeight=Math.round(a.height*(t/n))),a}},A={loadedData:!1,defaultVideoDimensions:{width:640,height:480},findVideoSize:function T(e){T.attempts=T.attempts||0;var t=e.cameraStream,r=e.completedCallback,i=e.videoElement;i&&(i.videoWidth>0&&i.videoHeight>0?(i.removeEventListener(\"loadeddata\",A.findVideoSize),r({videoElement:i,cameraStream:t,videoWidth:i.videoWidth,videoHeight:i.videoHeight})):T.attempts<10?(T.attempts+=1,w.requestTimeout(function(){A.findVideoSize(e)},400)):r({videoElement:i,cameraStream:t,videoWidth:A.defaultVideoDimensions.width,videoHeight:A.defaultVideoDimensions.height}))},onStreamingTimeout:function(e){w.isFunction(e)&&e({error:!0,errorCode:\"getUserMedia\",errorMsg:\"There was an issue with the getUserMedia API - Timed out while trying to start streaming\",image:null,cameraStream:{}})},stream:function(e){var t=w.isArray(e.existingVideo)?e.existingVideo[0]:e.existingVideo,r=e.cameraStream,i=e.completedCallback,n=e.streamedCallback,o=e.videoElement;if(w.isFunction(n)&&n(),t){if(w.isString(t)){ o.src=t,o.innerHTML=''; }else if(t instanceof Blob){try{o.src=w.URL.createObjectURL(t)}catch(a){}o.innerHTML=''}}else if(o.mozSrcObject){ o.mozSrcObject=r; }else if(w.URL){ try{o.srcObject=r,o.src=w.URL.createObjectURL(r)}catch(a$1){o.srcObject=r} }o.play(),w.requestTimeout(function s(){s.count=s.count||0,A.loadedData===!0?(A.findVideoSize({videoElement:o,cameraStream:r,completedCallback:i}),A.loadedData=!1):(s.count+=1,s.count>10?A.findVideoSize({videoElement:o,cameraStream:r,completedCallback:i}):s())},0)},startStreaming:function(e){var r=w.isFunction(e.error)?e.error:w.noop,i=w.isFunction(e.streamed)?e.streamed:w.noop,n=w.isFunction(e.completed)?e.completed:w.noop,o=e.crossOrigin,a=e.existingVideo,s=e.lastCameraStream,d=e.options,c=e.webcamVideoElement,l=w.isElement(a)?a:c?c:t.createElement(\"video\");o&&(l.crossOrigin=d.crossOrigin),l.autoplay=!0,l.loop=!0,l.muted=!0,l.addEventListener(\"loadeddata\",function(){A.loadedData=!0,d.offset&&(l.currentTime=d.offset)}),a?A.stream({videoElement:l,existingVideo:a,completedCallback:n}):s?A.stream({videoElement:l,cameraStream:s,streamedCallback:i,completedCallback:n}):w.getUserMedia({video:!0},function(e){A.stream({videoElement:l,cameraStream:e,streamedCallback:i,completedCallback:n})},r)},startVideoStreaming:function(e){var t=arguments.length>1&&arguments[1]!==i?arguments[1]:{},r=t.timeout!==i?t.timeout:0,n=t.callback,o=t.webcamVideoElement,a=void 0;r>0&&(a=w.requestTimeout(function(){A.onStreamingTimeout(n)},1e4)),A.startStreaming({error:function(){n({error:!0,errorCode:\"getUserMedia\",errorMsg:\"There was an issue with the getUserMedia API - the user probably denied permission\",image:null,cameraStream:{}})},streamed:function(){clearTimeout(a)},completed:function(){var t=arguments.length>0&&arguments[0]!==i?arguments[0]:{},r=t.cameraStream,n=t.videoElement,o=t.videoHeight,a=t.videoWidth;e({cameraStream:r,videoElement:n,videoHeight:o,videoWidth:a})},lastCameraStream:t.lastCameraStream,webcamVideoElement:o,crossOrigin:t.crossOrigin,options:t})},stopVideoStreaming:function(e){e=w.isObject(e)?e:{};var t=e,r=t.keepCameraOn,i=t.videoElement,n=t.webcamVideoElement,o=e.cameraStream||{},a=o.getTracks?o.getTracks()||[]:[],s=!!a.length,d=a[0];!r&&s&&w.isFunction(d.stop)&&d.stop(),w.isElement(i)&&!n&&(i.pause(),w.isFunction(w.URL.revokeObjectURL)&&!w.webWorkerError&&i.src&&w.URL.revokeObjectURL(i.src),w.removeElement(i))}},U={utils:y,error:k,defaultOptions:F,createGIF:v,takeSnapShot:b,stopVideoStreaming:g,isSupported:n,isWebCamGIFSupported:o,isExistingVideoGIFSupported:s,isExistingImagesGIFSupported:a,VERSION:\"0.4.5\"};\"function\"==typeof define&&define.amd?define([],function(){return U}):\"undefined\"!=typeof exports?module.exports=U:e.gifshot=U}(\"undefined\"!=typeof window?window:{},\"undefined\"!=typeof document?document:{createElement:function(){}},\"undefined\"!=typeof window?window.navigator:{});\n(function (global, factory) {\n if(typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = factory();\n module.exports.default = factory();\n }\n\telse if(typeof define === 'function' && define.amd) {\n define(factory);\n }\n else {\n (global = global || self, global.heic2any = factory())\n }\n}(this, function () { 'use strict';\nvar workerString = \"\\nvar Module=void 0!==Module?Module:{};(function(){var d={print:function(A){A=Array.prototype.slice.call(arguments).join(\\\" \\\"),console.log(A)},printErr:function(A){A=Array.prototype.slice.call(arguments).join(\\\" \\\"),console.error(A)},canvas:{},noInitialRun:!0},A={};for(Sr in d)d.hasOwnProperty(Sr)&&(A[Sr]=d[Sr]);var i,f,e=!1,l=!1,o=!1,r=!1;if(d.ENVIRONMENT)if(\\\"WEB\\\"===d.ENVIRONMENT)e=!0;else if(\\\"WORKER\\\"===d.ENVIRONMENT)l=!0;else if(\\\"NODE\\\"===d.ENVIRONMENT)o=!0;else{if(\\\"SHELL\\\"!==d.ENVIRONMENT)throw new Error(\\\"The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.\\\");r=!0}else e=\\\"object\\\"==typeof window,l=\\\"function\\\"==typeof importScripts,o=\\\"object\\\"==typeof process&&\\\"function\\\"==typeof require&&!e&&!l,r=!e&&!o&&!l;if(o)d.print||(d.print=console.log),d.printErr||(d.printErr=console.warn),d.read=function(A,e){var r;return(r=vr(A))||(i=i||require(\\\"fs\\\"),A=(f=f||require(\\\"path\\\")).normalize(A),r=i.readFileSync(A)),e?r:r.toString()},d.readBinary=function(A){var e=d.read(A,!0);return e.buffer||(e=new Uint8Array(e)),h(e.buffer),e},d.thisProgram||(1>2],r=-16&(e+A+15|0);if((I[D>>2]=r,H<=r)&&!z())return I[D>>2]=e,0;return e},alignMemory:function(A,e){return A=Math.ceil(A/(e||16))*(e||16)},makeBigInt:function(A,e,r){return r?+(A>>>0)+4294967296*(e>>>0):+(A>>>0)+4294967296*(0|e)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};d.Runtime=k;var n=0;function h(A,e){A||Mr(\\\"Assertion failed: \\\"+e)}function w(A,e,r){switch(\\\"*\\\"===(r=r||\\\"i8\\\").charAt(r.length-1)&&(r=\\\"i32\\\"),r){case\\\"i1\\\":case\\\"i8\\\":B[A>>0]=e;break;case\\\"i16\\\":X[A>>1]=e;break;case\\\"i32\\\":I[A>>2]=e;break;case\\\"i64\\\":tempI64=[e>>>0,(tempDouble=e,1<=+iA(tempDouble)?0>>0:~~+fA((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],I[A>>2]=tempI64[0],I[A+4>>2]=tempI64[1];break;case\\\"float\\\":G[A>>2]=e;break;case\\\"double\\\":V[A>>3]=e;break;default:Mr(\\\"invalid type for setValue: \\\"+r)}}var t=0,v=2,m=4;function a(A,e,r,i){var f,n;n=\\\"number\\\"==typeof A?(f=!0,A):(f=!1,A.length);var t,o=\\\"string\\\"==typeof e?e:null;if(t=r==m?i:[\\\"function\\\"==typeof Gr?Gr:k.staticAlloc,k.stackAlloc,k.staticAlloc,k.dynamicAlloc][void 0===r?v:r](Math.max(n,o?1:e.length)),f){var a;for(h(0==(3&(i=t))),a=t+(-4&n);i>2]=0;for(a=t+n;i>0]=0;return t}if(\\\"i8\\\"===o)return A.subarray||A.slice?E.set(A,t):E.set(new Uint8Array(A),t),t;for(var c,l,u,b=0;b>0],(0!=r||e)&&(f++,!e||f!=e););e=e||f;var n=\\\"\\\";if(i<128){for(var t;0>10,56320|1023&c)}else a+=String.fromCharCode((31&i)<<6|f);else a+=String.fromCharCode(i)}}function b(A,e,r,i){if(!(0>6,e[r++]=128|63&o}else if(o<=65535){if(n<=r+2)break;e[r++]=224|o>>12,e[r++]=128|o>>6&63,e[r++]=128|63&o}else if(o<=2097151){if(n<=r+3)break;e[r++]=240|o>>18,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}else if(o<=67108863){if(n<=r+4)break;e[r++]=248|o>>24,e[r++]=128|o>>18&63,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}else{if(n<=r+5)break;e[r++]=252|o>>30,e[r++]=128|o>>24&63,e[r++]=128|o>>18&63,e[r++]=128|o>>12&63,e[r++]=128|o>>6&63,e[r++]=128|63&o}}return e[r]=0,r-f}function s(A,e,r){return b(A,E,e,r)}function Z(A){for(var e=0,r=0;r>2]>e)return!1;var r=H;for(H=Math.max(H,U);H>2];)H=H<=536870912?S(2*H,A):Math.min(S((3*H+2147483648)/4,A),e);var i,f=d.reallocBuffer(H);return f&&f.byteLength==H?(i=f,d.buffer=y=i,O(),!0):(H=r,!1)}R=_=D=0,N=!1,d.reallocBuffer||(d.reallocBuffer=function(A){var e;try{if(ArrayBuffer.transfer)e=ArrayBuffer.transfer(y,A);else{var r=B;e=new ArrayBuffer(A),new Int8Array(e).set(r)}}catch(A){return!1}return!!Ir(e)&&e});try{(J=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\\\"byteLength\\\").get))(new ArrayBuffer(4))}catch(Or){J=function(A){return A.byteLength}}var j=d.TOTAL_STACK||5242880,H=d.TOTAL_MEMORY||16777216;if(H>0]=A.charCodeAt(i);r||(B[e>>0]=0)}Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(A,e){var r=65535&A,i=65535&e;return r*i+((A>>>16)*i+r*(e>>>16)<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(A){A>>>=0;for(var e=0;e<32;e++)if(A&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(A){return A<0?Math.ceil(A):Math.floor(A)}),Math.trunc=Math.trunc;var iA=Math.abs,fA=(Math.cos,Math.sin,Math.tan,Math.acos,Math.asin,Math.atan,Math.atan2,Math.exp,Math.log,Math.sqrt,Math.ceil),nA=Math.floor,tA=(Math.pow,Math.imul,Math.fround,Math.round,Math.min),oA=(Math.clz32,Math.trunc,0),aA=null,cA=null;function lA(A){oA++,d.monitorRunDependencies&&d.monitorRunDependencies(oA)}function uA(A){if(oA--,d.monitorRunDependencies&&d.monitorRunDependencies(oA),0==oA&&(null!==aA&&(clearInterval(aA),aA=null),cA)){var e=cA;cA=null,e()}}d.addRunDependency=lA,d.removeRunDependency=uA,d.preloadedImages={},d.preloadedAudios={};var bA=null;F=k.GLOBAL_BASE,R=F+79664,L.push({func:function(){Zr()}},{func:function(){yr()}},{func:function(){Br()}},{func:function(){Er()}},{func:function(){pr()}},{func:function(){Xr()}});var sA=R;function dA(){return!!dA.uncaught_exception}R+=16;var kA={last:0,caught:[],infos:{},deAdjust:function(A){if(!A||kA.infos[A])return A;for(var e in kA.infos){if(kA.infos[e].adjusted===A)return e}return A},addRef:function(A){A&&kA.infos[A].refcount++},decRef:function(A){if(A){var e=kA.infos[A];h(0>2]=A),A}var vA={0:\\\"Success\\\",1:\\\"Not super-user\\\",2:\\\"No such file or directory\\\",3:\\\"No such process\\\",4:\\\"Interrupted system call\\\",5:\\\"I/O error\\\",6:\\\"No such device or address\\\",7:\\\"Arg list too long\\\",8:\\\"Exec format error\\\",9:\\\"Bad file number\\\",10:\\\"No children\\\",11:\\\"No more processes\\\",12:\\\"Not enough core\\\",13:\\\"Permission denied\\\",14:\\\"Bad address\\\",15:\\\"Block device required\\\",16:\\\"Mount device busy\\\",17:\\\"File exists\\\",18:\\\"Cross-device link\\\",19:\\\"No such device\\\",20:\\\"Not a directory\\\",21:\\\"Is a directory\\\",22:\\\"Invalid argument\\\",23:\\\"Too many open files in system\\\",24:\\\"Too many open files\\\",25:\\\"Not a typewriter\\\",26:\\\"Text file busy\\\",27:\\\"File too large\\\",28:\\\"No space left on device\\\",29:\\\"Illegal seek\\\",30:\\\"Read only file system\\\",31:\\\"Too many links\\\",32:\\\"Broken pipe\\\",33:\\\"Math arg out of domain of func\\\",34:\\\"Math result not representable\\\",35:\\\"File locking deadlock error\\\",36:\\\"File or path name too long\\\",37:\\\"No record locks available\\\",38:\\\"Function not implemented\\\",39:\\\"Directory not empty\\\",40:\\\"Too many symbolic links\\\",42:\\\"No message of desired type\\\",43:\\\"Identifier removed\\\",44:\\\"Channel number out of range\\\",45:\\\"Level 2 not synchronized\\\",46:\\\"Level 3 halted\\\",47:\\\"Level 3 reset\\\",48:\\\"Link number out of range\\\",49:\\\"Protocol driver not attached\\\",50:\\\"No CSI structure available\\\",51:\\\"Level 2 halted\\\",52:\\\"Invalid exchange\\\",53:\\\"Invalid request descriptor\\\",54:\\\"Exchange full\\\",55:\\\"No anode\\\",56:\\\"Invalid request code\\\",57:\\\"Invalid slot\\\",59:\\\"Bad font file fmt\\\",60:\\\"Device not a stream\\\",61:\\\"No data (for no delay io)\\\",62:\\\"Timer expired\\\",63:\\\"Out of streams resources\\\",64:\\\"Machine is not on the network\\\",65:\\\"Package not installed\\\",66:\\\"The object is remote\\\",67:\\\"The link has been severed\\\",68:\\\"Advertise error\\\",69:\\\"Srmount error\\\",70:\\\"Communication error on send\\\",71:\\\"Protocol error\\\",72:\\\"Multihop attempted\\\",73:\\\"Cross mount point (not really error)\\\",74:\\\"Trying to read unreadable message\\\",75:\\\"Value too large for defined data type\\\",76:\\\"Given log. name not unique\\\",77:\\\"f.d. invalid for this operation\\\",78:\\\"Remote address changed\\\",79:\\\"Can access a needed shared lib\\\",80:\\\"Accessing a corrupted shared lib\\\",81:\\\".lib section in a.out corrupted\\\",82:\\\"Attempting to link in too many libs\\\",83:\\\"Attempting to exec a shared library\\\",84:\\\"Illegal byte sequence\\\",86:\\\"Streams pipe error\\\",87:\\\"Too many users\\\",88:\\\"Socket operation on non-socket\\\",89:\\\"Destination address required\\\",90:\\\"Message too long\\\",91:\\\"Protocol wrong type for socket\\\",92:\\\"Protocol not available\\\",93:\\\"Unknown protocol\\\",94:\\\"Socket type not supported\\\",95:\\\"Not supported\\\",96:\\\"Protocol family not supported\\\",97:\\\"Address family not supported by protocol family\\\",98:\\\"Address already in use\\\",99:\\\"Address not available\\\",100:\\\"Network interface is not configured\\\",101:\\\"Network is unreachable\\\",102:\\\"Connection reset by network\\\",103:\\\"Connection aborted\\\",104:\\\"Connection reset by peer\\\",105:\\\"No buffer space available\\\",106:\\\"Socket is already connected\\\",107:\\\"Socket is not connected\\\",108:\\\"Can't send after socket shutdown\\\",109:\\\"Too many references\\\",110:\\\"Connection timed out\\\",111:\\\"Connection refused\\\",112:\\\"Host is down\\\",113:\\\"Host is unreachable\\\",114:\\\"Socket already connected\\\",115:\\\"Connection already in progress\\\",116:\\\"Stale file handle\\\",122:\\\"Quota exceeded\\\",123:\\\"No medium (in tape drive)\\\",125:\\\"Operation canceled\\\",130:\\\"Previous owner died\\\",131:\\\"State not recoverable\\\"},mA={splitPath:function(A){return/^(\\\\/?|)([\\\\s\\\\S]*?)((?:\\\\.{1,2}|[^\\\\/]+?|)(\\\\.[^.\\\\/]*|))(?:[\\\\/]*)$/.exec(A).slice(1)},normalizeArray:function(A,e){for(var r=0,i=A.length-1;0<=i;i--){var f=A[i];\\\".\\\"===f?A.splice(i,1):\\\"..\\\"===f?(A.splice(i,1),r++):r&&(A.splice(i,1),r--)}if(e)for(;r;r--)A.unshift(\\\"..\\\");return A},normalize:function(A){var e=\\\"/\\\"===A.charAt(0),r=\\\"/\\\"===A.substr(-1);return(A=mA.normalizeArray(A.split(\\\"/\\\").filter(function(A){return!!A}),!e).join(\\\"/\\\"))||e||(A=\\\".\\\"),A&&r&&(A+=\\\"/\\\"),(e?\\\"/\\\":\\\"\\\")+A},dirname:function(A){var e=mA.splitPath(A),r=e[0],i=e[1];return r||i?r+(i=i&&i.substr(0,i.length-1)):\\\".\\\"},basename:function(A){if(\\\"/\\\"===A)return\\\"/\\\";var e=A.lastIndexOf(\\\"/\\\");return-1===e?A:A.substr(e+1)},extname:function(A){return mA.splitPath(A)[3]},join:function(){var A=Array.prototype.slice.call(arguments,0);return mA.normalize(A.join(\\\"/\\\"))},join2:function(A,e){return mA.normalize(A+\\\"/\\\"+e)},resolve:function(){for(var A=\\\"\\\",e=!1,r=arguments.length-1;-1<=r&&!e;r--){var i=0<=r?arguments[r]:EA.cwd();if(\\\"string\\\"!=typeof i)throw new TypeError(\\\"Arguments to path.resolve must be strings\\\");if(!i)return\\\"\\\";A=i+\\\"/\\\"+A,e=\\\"/\\\"===i.charAt(0)}return(e?\\\"/\\\":\\\"\\\")+(A=mA.normalizeArray(A.split(\\\"/\\\").filter(function(A){return!!A}),!e).join(\\\"/\\\"))||\\\".\\\"},relative:function(A,e){function r(A){for(var e=0;eA.contents.length&&(A.contents=ZA.getFileDataAsRegularArray(A),A.usedBytes=A.contents.length),!A.contents||A.contents.subarray){var r=A.contents?A.contents.length:0;if(e<=r)return;e=Math.max(e,r*(r<1048576?2:1.125)|0),0!=r&&(e=Math.max(e,256));var i=A.contents;return A.contents=new Uint8Array(e),void(0e)A.contents.length=e;else for(;A.contents.length=A.node.usedBytes)return 0;var t=Math.min(A.node.usedBytes-f,i);if(h(0<=t),8r.timestamp)&&(t.push(A),n++)});var r=[];if(Object.keys(f.entries).forEach(function(A){f.entries[A];i.entries[A]||(r.push(A),n++)}),!n)return e(null);var o=0,A=(\\\"remote\\\"===i.type?i.db:f.db).transaction([pA.DB_STORE_NAME],\\\"readwrite\\\"),a=A.objectStore(pA.DB_STORE_NAME);function c(A){return A?c.errored?void 0:(c.errored=!0,e(A)):++o>=n?e(null):void 0}A.onerror=function(A){c(this.error),A.preventDefault()},t.sort().forEach(function(r){\\\"local\\\"===f.type?pA.loadRemoteEntry(a,r,function(A,e){if(A)return c(A);pA.storeLocalEntry(r,e,c)}):pA.loadLocalEntry(r,function(A,e){if(A)return c(A);pA.storeRemoteEntry(a,r,e,c)})}),r.sort().reverse().forEach(function(A){\\\"local\\\"===f.type?pA.removeLocalEntry(A,c):pA.removeRemoteEntry(a,A,c)})}},yA={isWindows:!(bA=\\\"data:application/octet-stream;base64,AAAAAAAAAAAEAAAAAAAAABgKAAAhAAAAIgAAAPz////8////GAoAACMAAAAkAAAAAAAAAAAAAACYRAAAzEgAAMBEAADiSAAAQAAAAAAAAACYRAAAdUoAAMBEAADtSQAA2AkAAAAAAADARAAAL0oAABgKAAAAAAAAwEQAANNKAABYAAAAAAAAAMBEAAA4SwAAgAAAAAAAAADARAAAplsAAIAAAAAAAAAAQAAAAAAAAADoCQAAFwAAABgAAADA////wP///+gJAAAZAAAAGgAAAEAAAAAAAAAASAoAABsAAAAcAAAAOAAAAPj///9ICgAAHQAAAB4AAADA////wP///0gKAAAfAAAAIAAAAAAAAAA4AAAAAAAAABgKAAAhAAAAIgAAAMj////I////GAoAACMAAAAkAAAAwEQAAHNLAABICgAAAAAAAMBEAAAsTAAAOA8AAAAAAADARAAAhkwAAIAAAAAAAAAAwEQAAJdMAAA4DwAAAAAAAMBEAABbTgAAgAAAAAAAAADARAAA6kwAAKABAAAAAAAAmEQAAAVNAADARAAAHE0AADgPAAAAAAAAwEQAAMBNAACgAQAAAAAAAMBEAADcTQAAOA8AAAAAAADARAAAbE4AADgPAAAAAAAAwEQAALtOAACAAAAAAAAAAMBEAADLTgAAOA8AAAAAAADARAAADk8AAIAAAAAAAAAAwEQAAB9PAAA4DwAAAAAAAMBEAABjTwAAgAAAAAAAAADARAAAdE8AADgPAAAAAAAAwEQAAONPAACAAAAAAAAAAMBEAAD0TwAAOA8AAAAAAADARAAAT1AAAIAAAAAAAAAAwEQAAGBQAAA4DwAAAAAAAMBEAABfUQAAgAAAAAAAAADARAAAcFEAADgPAAAAAAAAwEQAAGFTAACAAAAAAAAAAMBEAAByUwAAOA8AAAAAAADARAAA41MAAIAAAAAAAAAAwEQAAPRTAAA4DwAAAAAAAMBEAABcVAAAgAAAAAAAAADARAAAbVQAADgPAAAAAAAAwEQAANVUAACAAAAAAAAAAMBEAADmVAAAOA8AAAAAAADARAAARVUAAIAAAAAAAAAAwEQAAFZVAAA4DwAAAAAAAMBEAAC0VQAAgAAAAAAAAADARAAAxVUAADgPAAAAAAAAwEQAACZWAACAAAAAAAAAAMBEAAA3VgAAOA8AAAAAAADARAAAtVYAAIAAAAAAAAAAwEQAAMZWAAA4DwAAAAAAAMBEAAAKVwAAgAAAAAAAAADARAAAG1cAADgPAAAAAAAAwEQAAF9XAACAAAAAAAAAAMBEAABwVwAAOA8AAAAAAADARAAAOFgAAIAAAAAAAAAAwEQAAElYAAA4DwAAAAAAAMBEAACNWAAAgAAAAAAAAADARAAAnlgAADgPAAAAAAAAwEQAAMRZAACAAAAAAAAAAMBEAADVWQAAOA8AAAAAAADARAAALVoAAIAAAAAAAAAAwEQAAD5aAAA4DwAAAAAAAMBEAACmWgAAgAAAAAAAAADARAAAt1oAADgPAAAAAAAAwEQAAPtaAAA4DwAAAAAAAMBEAAA/WwAAOA8AAAAAAADARAAAYGMAADgPAAAAAAAAwEQAAN9kAAA4DwAAAAAAAEhFAACfcwAASEUAAIpzAABIRQAAcHMAAEhFAABicwAASEUAAFBzAABIRQAAQXMAAJhEAAAycwAALEUAACJzAAAAAAAA+AQAACxFAAARcwAAAQAAAPgEAACYRAAA/XIAACxFAADocgAAAAAAACAFAAAsRQAA0nIAAAEAAAAgBQAAmEQAAMVyAAAsRQAAt3IAAAAAAABIBQAALEUAAKhyAAABAAAASAUAAJhEAACbcgAAmEQAALFzAABkRQAAlXQAAAAAAAABAAAAmAUAAAAAAACYRAAA1HQAAMBEAAD6dAAAOA8AAAAAAADARAAAFnYAADgPAAAAAAAAmEQAABh6AABkRQAAyXkAAAAAAAACAAAAwAUAAAIAAAD4BQAAAggAAMBEAAB/eQAAOA8AAAAAAACYRAAA93kAAMBEAAAsegAAOA8AAAAAAADARAAAdn0AADgPAAAAAAAAwEQAACN+AAAwBgAAAAAAAJhEAAA4fgAAwEQAAFp+AAAwBgAAAAAAAMBEAABxfgAAMAYAAAAAAADARAAAiH4AADAGAAAAAAAAwEQAAKR+AAAwBgAAAAAAAMBEAAC8fgAAMAYAAAAAAADARAAA2H4AADAGAAAAAAAAwEQAAPZ+AAAwBgAAAAAAAMBEAAAMfwAAMAYAAAAAAADARAAAIn8AADAGAAAAAAAAwEQAAI1/AAAwBgAAAAAAAMBEAACrfwAAMAYAAAAAAADARAAAwX8AADAGAAAAAAAAwEQAANR/AAAwBgAAAAAAAMBEAADnfwAAMAYAAAAAAADARAAABYAAADAGAAAAAAAAwEQAAB+AAAA4DwAAAAAAAMBEAABwgAAAOA8AAAAAAADARAAAtoAAADgPAAAAAAAAwEQAAPyAAAA4DwAAAAAAAMBEAABFgQAAMAYAAAAAAADARAAAWoEAADgPAAAAAAAAwEQAAKKBAAAwBgAAAAAAAMBEAAC3gQAAOA8AAAAAAADARAAA/4EAADgPAAAAAAAAwEQAAFCCAAA4DwAAAAAAAMBEAACaggAAOA8AAAAAAADARAAA6YIAADgPAAAAAAAAwEQAADqDAAA4DwAAAAAAAMBEAACDgwAAOA8AAAAAAADARAAAzIMAADgPAAAAAAAAwEQAABeEAAA4DwAAAAAAAMBEAABmhAAAOA8AAAAAAADARAAAs4QAADgPAAAAAAAAwEQAAP2EAAA4DwAAAAAAAMBEAABHhQAAMAYAAAAAAADARAAAXIUAADgPAAAAAAAAwEQAAKSFAAAwBgAAAAAAAMBEAAC5hQAAOA8AAAAAAADARAAAAYYAADgPAAAAAAAAwEQAAEeHAAC4CAAAAAAAAGRFAABZhwAAAAAAAAEAAADQCAAAAgQAAJhEAABohwAAwEQAAIyYAADoCAAAAAAAAJhEAACemAAAwEQAANWaAADoCAAAAAAAAMBEAAD8mgAA6AgAAAAAAADARAAAhLwAAOgIAAAAAAAAZEUAANvDAAAAAAAAAQAAAJgFAAAAAAAAZEUAAJzDAAAAAAAAAQAAAJgFAAAAAAAAmEQAAH3DAACYRAAAXsMAAJhEAAA/wwAAmEQAACDDAACYRAAAAcMAAJhEAADiwgAAmEQAAMPCAACYRAAApMIAAJhEAACFwgAAmEQAAGbCAACYRAAAR8IAAJhEAAAowgAAwEQAACjPAADACQAAAAAAAJhEAAAWzwAAwEQAAFLPAADACQAAAAAAAJhEAAB8zwAAmEQAAK3PAABkRQAA3s8AAAAAAAABAAAAsAkAAAP0//9kRQAADdAAAAAAAAABAAAAyAkAAAP0//9kRQAAPNAAAAAAAAABAAAAsAkAAAP0//9kRQAAa9AAAAAAAAABAAAAyAkAAAP0//9kRQAAmtAAAAMAAAACAAAA6AkAAAIAAAAYCgAAAggAAAwAAAAAAAAA6AkAABcAAAAYAAAA9P////T////oCQAAGQAAABoAAADARAAAytAAAOAJAAAAAAAAwEQAAOPQAADYCQAAAAAAAMBEAAAi0QAA4AkAAAAAAADARAAAOtEAANgJAAAAAAAAwEQAAFLRAADgCgAAAAAAAMBEAABm0QAAMA8AAAAAAADARAAAfNEAAOAKAAAAAAAAZEUAALbRAAAAAAAAAgAAAOAKAAACAAAAIAsAAAAAAABkRQAA+tEAAAAAAAABAAAAOAsAAAAAAACYRAAAENIAAGRFAAAp0gAAAAAAAAIAAADgCgAAAgAAAGALAAAAAAAAZEUAAG3SAAAAAAAAAQAAADgLAAAAAAAAZEUAAJbSAAAAAAAAAgAAAOAKAAACAAAAmAsAAAAAAABkRQAA2tIAAAAAAAABAAAAsAsAAAAAAACYRAAA8NIAAGRFAAAJ0wAAAAAAAAIAAADgCgAAAgAAANgLAAAAAAAAZEUAAE3TAAAAAAAAAQAAALALAAAAAAAAZEUAAKPUAAAAAAAAAwAAAOAKAAACAAAAGAwAAAIAAAAgDAAAAAgAAJhEAAAK1QAAmEQAAOjUAABkRQAAHdUAAAAAAAADAAAA4AoAAAIAAAAYDAAAAgAAAFAMAAAACAAAmEQAAGLVAABkRQAAhNUAAAAAAAACAAAA4AoAAAIAAAB4DAAAAAgAAJhEAADJ1QAAZEUAAN7VAAAAAAAAAgAAAOAKAAACAAAAeAwAAAAIAABkRQAAI9YAAAAAAAACAAAA4AoAAAIAAADADAAAAgAAAJhEAAA/1gAAZEUAAFTWAAAAAAAAAgAAAOAKAAACAAAAwAwAAAIAAABkRQAAcNYAAAAAAAACAAAA4AoAAAIAAADADAAAAgAAAGRFAACM1gAAAAAAAAIAAADgCgAAAgAAAMAMAAACAAAAZEUAALfWAAAAAAAAAgAAAOAKAAACAAAASA0AAAAAAACYRAAA/dYAAGRFAAAh1wAAAAAAAAIAAADgCgAAAgAAAHANAAAAAAAAmEQAAGfXAABkRQAAhtcAAAAAAAACAAAA4AoAAAIAAACYDQAAAAAAAJhEAADM1wAAZEUAAOXXAAAAAAAAAgAAAOAKAAACAAAAwA0AAAAAAACYRAAAK9gAAGRFAABE2AAAAAAAAAIAAADgCgAAAgAAAOgNAAACAAAAmEQAAFnYAABkRQAA8NgAAAAAAAACAAAA4AoAAAIAAADoDQAAAgAAAMBEAABx2AAAIA4AAAAAAABkRQAAlNgAAAAAAAACAAAA4AoAAAIAAABADgAAAgAAAJhEAAC32AAAwEQAAM7YAAAgDgAAAAAAAGRFAAAF2QAAAAAAAAIAAADgCgAAAgAAAEAOAAACAAAAZEUAACfZAAAAAAAAAgAAAOAKAAACAAAAQA4AAAIAAABkRQAASdkAAAAAAAACAAAA4AoAAAIAAABADgAAAgAAAMBEAABs2QAA4AoAAAAAAABkRQAAgtkAAAAAAAACAAAA4AoAAAIAAADoDgAAAgAAAJhEAACU2QAAZEUAAKnZAAAAAAAAAgAAAOAKAAACAAAA6A4AAAIAAADARAAAxtkAAOAKAAAAAAAAwEQAANvZAADgCgAAAAAAAJhEAADw2QAAZEUAAAnaAAAAAAAAAQAAADAPAAAAAAAAwEQAADTaAABgDwAAAAAAAJhEAADc2gAAwEQAADzbAAB4DwAAAAAAAMBEAADp2gAAiA8AAAAAAACYRAAACtsAAMBEAAAX2wAAaA8AAAAAAADARAAAHtwAAGAPAAAAAAAAwEQAAC7cAACgDwAAAAAAAMBEAABj3AAAeA8AAAAAAADARAAAP9wAAMAPAAAAAAAAwEQAAIXcAAB4DwAAAAAAABBFAACt3AAAEEUAAK/cAAAQRQAAstwAABBFAAC03AAAEEUAALbcAAAQRQAAuNwAABBFAAC63AAAEEUAALzcAAAQRQAAvtwAABBFAADA3AAAEEUAAJTSAAAQRQAAwtwAABBFAADE3AAAEEUAAMbcAADARAAAyNwAAHgPAAAAAAAAwEQAAOncAABoDwAAAAAAAAAAAABIAAAAAQAAAAIAAAABAAAAAQAAAAIAAAADAAAAAAAAAFgAAAADAAAABAAAAAEAAADQEAAAJAEAADgBAADkEAAAOAAAAAAAAABwAAAABQAAAAYAAADI////yP///3AAAAAHAAAACAAAAAAAAABgAAAACQAAAAoAAAABAAAABAAAAAEAAAABAAAAAgAAAAMAAAAFAAAABAAAAAUAAAABAAAABgAAAAIAAAAAAAAAgAAAAAsAAAAMAAAAAgAAAAMAAAANAAAABAAAAAAAAACQAAAADgAAAA8AAAAFAAAABgAAAA0AAAAHAAAAAAAAAKAAAAALAAAAEAAAAAgAAAADAAAADQAAAAkAAABAAAAAAAAAAEABAAARAAAAEgAAADgAAAD4////QAEAABMAAAAUAAAAwP///8D///9AAQAAFQAAABYAAACYEQAA5AAAALwAAADQAAAAJAEAADgBAAAMAQAA+AAAAMARAACsEQAAAAAAAJgEAAAlAAAAJgAAACcAAAADAAAAKAAAAAAAAACIBAAAKQAAACoAAAArAAAAAwAAACwAAAAAAAAAeAQAAC0AAAAuAAAALwAAAAMAAAAwAAAAAAAAAGgEAAAxAAAAMgAAAAoAAAALAAAADQAAAAwAAAAAAAAAWAQAADMAAAA0AAAANQAAAAMAAAA2AAAAAAAAAEgEAAALAAAANwAAAA0AAAAOAAAAOAAAAA8AAAAAAAAAOAQAADkAAAA6AAAAOwAAAAMAAAA8AAAAAAAAACgEAAA9AAAAPgAAABAAAAARAAAAPwAAABIAAAAAAAAAGAQAAEAAAABBAAAAQgAAAAMAAABDAAAAAAAAAAgEAAALAAAARAAAABMAAAAUAAAARQAAABUAAAAAAAAA+AMAAEYAAABHAAAASAAAAAMAAABJAAAAAAAAAOgDAABKAAAASwAAABYAAAAXAAAATAAAABgAAAAAAAAA2AMAAE0AAABOAAAATwAAAAMAAABQAAAAAAAAAMgDAAALAAAAUQAAABkAAAADAAAADQAAABoAAAAAAAAAuAMAAFIAAABTAAAAVAAAAAMAAABVAAAAAAAAAKgDAAALAAAAVgAAABsAAAADAAAADQAAABwAAAAAAAAAmAMAAFcAAABYAAAAWQAAAAMAAABaAAAAAAAAAIgDAABbAAAAXAAAAB0AAAAeAAAAXQAAAB8AAAAAAAAAeAMAAF4AAABfAAAAYAAAAAMAAABhAAAAAAAAAGgDAAALAAAAYgAAACAAAAAhAAAADQAAACIAAAAAAAAAWAMAAGMAAABkAAAAZQAAAAMAAABmAAAAAAAAAEgDAABnAAAAaAAAACMAAAAkAAAADQAAACUAAAAAAAAAOAMAAGkAAABqAAAAawAAAAMAAABsAAAAAAAAACgDAAALAAAAbQAAACYAAAADAAAADQAAACcAAAAAAAAAGAMAAG4AAABvAAAAcAAAAAMAAABxAAAAAAAAAAgDAAALAAAAcgAAACgAAAADAAAADQAAACkAAAAAAAAA+AIAAHMAAAB0AAAAdQAAAAMAAAB2AAAAAAAAAOgCAAALAAAAdwAAACoAAAArAAAADQAAACwAAAAAAAAA2AIAAHgAAAB5AAAAegAAAAMAAAB7AAAAAAAAAMgCAAB8AAAAfQAAAC0AAAAuAAAAfgAAAC8AAAAAAAAAuAIAAH8AAACAAAAAgQAAAAMAAACCAAAAAAAAAKgCAACDAAAAhAAAADAAAAAxAAAADQAAADIAAAAAAAAAmAIAAIUAAACGAAAAhwAAAAMAAACIAAAAAAAAAIgCAACJAAAAigAAADMAAAA0AAAADQAAADUAAAAAAAAAeAIAAIsAAACMAAAAjQAAAAMAAACOAAAAAAAAAGgCAACPAAAAkAAAADYAAAA3AAAADQAAADgAAAAAAAAAWAIAAJEAAACSAAAAkwAAAAMAAACUAAAAAAAAAEgCAACVAAAAlgAAADkAAAADAAAADQAAADoAAAAAAAAAOAIAAJcAAACYAAAAmQAAAAMAAACaAAAAAAAAACgCAAALAAAAmwAAADsAAAADAAAADQAAADwAAAAAAAAAGAIAAJwAAACdAAAAngAAAAMAAACfAAAAAAAAAAgCAAALAAAAoAAAAD0AAAADAAAADQAAAD4AAAAAAAAA+AEAAKEAAACiAAAAowAAAAMAAACkAAAAAAAAAOgBAAClAAAApgAAAD8AAAADAAAADQAAAEAAAAAAAAAA2AEAAKcAAACoAAAAqQAAAAMAAACqAAAAAAAAAIABAACrAAAArAAAAEEAAABCAAAADQAAAEMAAAAAAAAAcAEAAK0AAACuAAAArwAAAAMAAACwAAAAAAAAAGABAACxAAAAsgAAAEQAAABFAAAADQAAAEYAAAAAAAAAUAEAALMAAAC0AAAAtQAAAAMAAAC2AAAAAAAAAMgBAAC3AAAAuAAAALkAAAADAAAAugAAAAAAAAC4AQAAuwAAALwAAAAGAAAARwAAAEgAAAAAAAAAqAEAAL0AAAC+AAAAvwAAAAMAAADAAAAAAAAAAJABAADBAAAAwgAAAAcAAABJAAAASgAAAKNdAAAAAAAAqAQAAMMAAADEAAAAxQAAAAMAAADGAAAAAAAAALgEAADHAAAAyAAAAMkAAAADAAAAygAAAAMAAAAEAAAABQAAAAYAAACABQAAOBAAAAAFAADwDwAAAAUAAHAFAAAABQAAgAUAADAQAAAABQAAeAUAAAAFAAB4BQAAAAUAADgQAAB4BQAAKAUAAOgEAADgBAAA8A8AADgFAAAAAAAAoAUAAMsAAADMAAAAzQAAAAMAAADOAAAAAAAAALAFAADPAAAA0AAAANEAAAADAAAA0gAAAAAAAAAABgAA0wAAANQAAADVAAAAAwAAANYAAAAAAAAA6AUAANcAAADYAAAA2QAAAAMAAADaAAAAAAAAABAGAADbAAAA3AAAAN0AAAADAAAA3gAAAAAAAADIBQAA3wAAAOAAAAAAAAAAIAYAAOEAAADiAAAAAQAAAAIAAAAAAAAAOAYAAOEAAADjAAAAAwAAAAQAAAAAAAAASAYAAOEAAADkAAAABQAAAAYAAAAAAAAAWAYAAOEAAADlAAAABwAAAAgAAAAAAAAAaAYAAOEAAADmAAAACQAAAAoAAAAAAAAAeAYAAOEAAADnAAAACwAAAAwAAAAAAAAAiAYAAOEAAADoAAAADQAAAA4AAAAAAAAAmAYAAOEAAADpAAAADwAAABAAAAAAAAAAqAYAAOEAAADqAAAAEQAAABIAAAAAAAAAuAYAAOEAAADrAAAAEwAAABQAAAAAAAAAyAYAAOEAAADsAAAAFQAAABYAAAAAAAAA2AYAAOEAAADtAAAAFwAAABgAAAAAAAAA6AYAAOEAAADuAAAAGQAAABoAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAAAAAPgGAADhAAAA7wAAABsAAAAcAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAAIBwAA4QAAAPAAAAAdAAAAHgAAAAAAAAAYBwAA4QAAAPEAAAAfAAAAIAAAAAAAAACYCAAA8gAAAPMAAAD0AAAAAwAAAPUAAAAAAAAAiAgAAPYAAAD3AAAA+AAAAAMAAAD5AAAAAAAAAHgIAADhAAAA+gAAACEAAAAiAAAAAAAAAGgIAAD7AAAA/AAAAP0AAAADAAAA/gAAAAAAAABYCAAA4QAAAP8AAAAjAAAAJAAAAAAAAABICAAAAAEAAAEBAAACAQAAAwAAAAMBAAAAAAAAOAgAAAQBAAAFAQAABgEAAAMAAAAHAQAAAAAAACgIAAAIAQAACQEAAAoBAAADAAAACwEAAAAAAAAYCAAADAEAAA0BAAAOAQAAAwAAAA8BAAAAAAAACAgAABABAAARAQAAEgEAAAMAAAATAQAAAAAAAPgHAAAUAQAAFQEAABYBAAADAAAAFwEAAAAAAADoBwAAGAEAABkBAAAaAQAAAwAAABsBAAAAAAAA2AcAABwBAAAdAQAAHgEAAAMAAAAfAQAAAAAAAMgHAAAgAQAAIQEAACIBAAADAAAAIwEAAAAAAAC4BwAAJAEAACUBAAAmAQAAAwAAACcBAAAAAAAAqAcAACgBAAApAQAAKgEAAAMAAAArAQAAAAAAAJgHAAAsAQAALQEAAC4BAAADAAAALwEAAAAAAACIBwAA4QAAADABAAAlAAAAJgAAAAAAAAB4BwAAMQEAADIBAAAzAQAAAwAAADQBAAAAAAAAaAcAAOEAAAA1AQAAJwAAACgAAAAAAAAAWAcAADYBAAA3AQAAOAEAAAMAAAA5AQAAAAAAAEgHAAA6AQAAOwEAADwBAAADAAAAPQEAAAAAAAA4BwAAPgEAAD8BAABAAQAAAwAAAEEBAAAAAAAAKAcAAEIBAABDAQAARAEAAAMAAABFAQAAAQAAAAEAAAABAAAAAgAAAAgAAAACAAAARgEAAAIAAABLAAAAAAAAAAAAAABbhgAAAAAAAAEAAAACAAAABAAAALsLAACKhgAABwAAAIEAAAArNwEABgAAAAAAAABjhgAABwAAAGQAAAArNwEAAAAAAKgIAABHAQAASAEAAAQAAAAFAAAAAAAAALgIAABJAQAASgEAAAMAAAADAAAAAQAAAEwAAAAAAAAA2AgAAEsBAABMAQAATQEAAAMAAAA57wAAiwQBAJMEAQCzBAEAMwUBADMHAQAAAAAAOe8AAOP5AADr+QAAC/oAAIv6AACL/AAAAAAAADnvAAA77wAAQ+8AAGPvAADj7wAA4/EAAAAAAAAAAAAAAAAAADMPAQBTDwEA0w8BANMRAQAAAAAAAAAAANMZAQDzGQEAcxoBAHMcAQAAAAAAAAAAAHMkAQCTJAEAEyUBABMnAQAAAAAA8AgAAEsBAABOAQAATwEAAAQAAAAAAAAAGgAAAAoAAAABAAAAAAAAAAAJAABLAQAAUAEAAFEBAAAFAAAA/////wIAAAACAAAAAQAAAP////8CAAAAAQAAAAEAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACEAAAAiAAAAIgAAACMAAAAjAAAAJAAAACQAAAAlAAAAKAAAAC0AAAAzAAAAOQAAAEAAAABIAAAAxQAAALkAAADJAAAAxQAAALkAAADJAAAAbgAAAJoAAAB6AAAAiQAAAIsAAACNAAAAnQAAAGsAAACLAAAAfgAAAGsAAACLAAAAfgAAAD8AAACYAAAAmAAAAG8AAACNAAAAmQAAAG8AAABbAAAAqwAAAIYAAACNAAAAeQAAAIwAAAA9AAAAmgAAAHkAAACMAAAAPQAAAJoAAABvAAAAbwAAAH0AAABuAAAAbgAAAF4AAAB8AAAAbAAAAHwAAABrAAAAfQAAAI0AAACzAAAAmQAAAH0AAABrAAAAfQAAAI0AAACzAAAAmQAAAH0AAABrAAAAfQAAAI0AAACzAAAAmQAAAH0AAACMAAAAiwAAALYAAAC2AAAAmAAAAIgAAACYAAAAiAAAAJkAAACIAAAAiwAAAG8AAACIAAAAiwAAAG8AAACbAAAAmgAAAIsAAACZAAAAiwAAAHsAAAB7AAAAPwAAAJkAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACqAAAAmQAAAHsAAAB7AAAAawAAAHkAAABrAAAAeQAAAKcAAACXAAAAtwAAAIwAAACXAAAAtwAAAIwAAACqAAAAmgAAAIsAAACZAAAAiwAAAHsAAAB7AAAAPwAAAHwAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACmAAAAtwAAAIwAAACIAAAAmQAAAJoAAACqAAAAmQAAAIoAAACKAAAAegAAAHkAAAB6AAAAeQAAAKcAAACXAAAAtwAAAIwAAACXAAAAtwAAAIwAAACNAAAAbwAAAIwAAACMAAAAjAAAAIwAAACKAAAAmQAAAIgAAACnAAAAmAAAAJgAAABrAAAApwAAAFsAAAB6AAAAawAAAKcAAABrAAAApwAAAFsAAABrAAAAawAAAKcAAACZAAAAmQAAAJkAAADIAAAAuQAAAKAAAACaAAAAmgAAAJoAAACMAAAAXAAAAIkAAACKAAAAjAAAAJgAAACKAAAAiwAAAJkAAABKAAAAlQAAAFwAAACLAAAAawAAAHoAAACYAAAAjAAAALMAAACmAAAAtgAAAIwAAADjAAAAegAAAMUAAACaAAAAxAAAAMQAAACnAAAAmgAAAJgAAACnAAAAtgAAALYAAACGAAAAlQAAAIgAAACZAAAAeQAAAIgAAACJAAAAqQAAAMIAAACmAAAApwAAAJoAAACnAAAAiQAAALYAAACaAAAAxAAAAKcAAACnAAAAmgAAAJgAAACnAAAAtgAAALYAAACGAAAAlQAAAIgAAACZAAAAeQAAAIgAAAB6AAAAqQAAANAAAACmAAAApwAAAJoAAACYAAAApwAAALYAAABuAAAAbgAAAHwAAAB9AAAAjAAAAJkAAAB9AAAAfwAAAIwAAABtAAAAbwAAAI8AAAB/AAAAbwAAAE8AAABsAAAAewAAAD8AAAB9AAAAbgAAAF4AAABuAAAAXwAAAE8AAAB9AAAAbwAAAG4AAABOAAAAbgAAAG8AAABvAAAAXwAAAF4AAABsAAAAewAAAGwAAAB9AAAAbgAAAHwAAABuAAAAXwAAAF4AAAB9AAAAbwAAAG8AAABPAAAAfQAAAH4AAABvAAAAbwAAAE8AAABsAAAAewAAAF0AAACZAAAAigAAAIoAAAB8AAAAigAAAF4AAADgAAAApwAAAHoAAABeAAAAigAAALYAAACaAAAAlQAAAGsAAACnAAAAmgAAAJUAAABcAAAApwAAAJoAAAC4AAAAmgAAALcAAAC4AAAAmgAAAIsAAACaAAAAmgAAAJoAAACLAAAAmgAAAJoAAACMAAAAxgAAAKkAAADGAAAAlQAAAIYAAAAAAAAAEAkAAEsBAABSAQAAUwEAAAYAAAAAAAAAAAAAACAAAAAaAAAAFQAAABEAAAANAAAACQAAAAUAAAACAAAAAAAAAP7////7////9/////P////v////6////+b////g////5v///+v////v////8/////f////7/////v///wAAAAACAAAABQAAAAkAAAANAAAAEQAAABUAAAAaAAAAIAAAAADw//+a+f//cvz//4r9//8e/v//ev7//8X+//8A////xf7//3r+//8e/v//iv3//3L8//+a+f//APD//wAAAAADAAAAAwAAAAIAAAAAAAAAAwAAAAQAAAAEAAAAAAAAAAEAAAAAAAAAAgAAAAEAAAACAAAAAAAAAAMAAAABAAAAAwAAAAIAAAADAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAwAAAAAAAAADAAAAAQAAAAMAAAACAAAAAgAAwAMAAMAEAADA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QQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8MgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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ZXJzaW9uOiAAZmxhZ3M6IABOU3QzX18yMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBOU3QzX18yMTliYXNpY19vc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUATjRoZWlmOUJveEhlYWRlckUAbV91dWlkX3R5cGUuc2l6ZSgpID09IDE2AGJveC5jYwBwcmVwZW5kX2hlYWRlcgAobV9mbGFncyAmIH4weDAwRkZGRkZGKSA9PSAwAE40aGVpZjNCb3hFAGZ0eXAgYm94IHRvbyBzbWFsbCAobGVzcyB0aGFuIDggYnl0ZXMpAG1ham9yIGJyYW5kOiAAbWlub3IgdmVyc2lvbjogAGNvbXBhdGlibGUgYnJhbmRzOiAATjRoZWlmOEJveF9mdHlwRQBNYXhpbXVtIG51bWJlciBvZiBjaGlsZCBib3hlcyAAIGV4Y2VlZGVkLgBOU3QzX18yMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBCb3ggc2l6ZSAoACBieXRlcykgc21hbGxlciB0aGFuIGhlYWRlciBzaXplICgAIGJ5dGVzKQBTZWN1cml0eSBsaW1pdCBmb3IgbWF4aW11bSBuZXN0aW5nIG9mIGJveGVzIGhhcyBiZWVuIGV4Y2VlZGVkAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjNCb3hFTlNfOWFsbG9jYXRvcklTMl9FRUVFAHdyaXRlAGJpdHNfcGVyX2NoYW5uZWw6IAAsAE40aGVpZjhCb3hfcGl4aUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9waXhpRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBwcm9maWxlIHNpemU6IABONGhlaWYxN2NvbG9yX3Byb2ZpbGVfcmF3RQBONGhlaWYxM2NvbG9yX3Byb2ZpbGVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjE3Y29sb3JfcHJvZmlsZV9yYXdFTlNfOWFsbG9jYXRvcklTMl9FRUVFAGNvbG91cl9wcmltYXJpZXM6IAB0cmFuc2Zlcl9jaGFyYWN0ZXJpc3RpY3M6IABtYXRyaXhfY29lZmZpY2llbnRzOiAAZnVsbF9yYW5nZV9mbGFnOiAATjRoZWlmMThjb2xvcl9wcm9maWxlX25jbHhFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjE4Y29sb3JfcHJvZmlsZV9uY2x4RU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBtX2NvbG9yX3Byb2ZpbGUAY29sb3VyX3R5cGU6IABubyBjb2xvciBwcm9maWxlCgBONGhlaWY4Qm94X2NvbHJFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfY29sckVOU185YWxsb2NhdG9ySVMyX0VFRUUAbG9jYXRpb246IABONGhlaWY3Qm94X3VybEUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmN0JveF91cmxFTlNfOWFsbG9jYXRvcklTMl9FRUVFAE40aGVpZjhCb3hfZHJlZkUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9kcmVmRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBONGhlaWY4Qm94X2RpbmZFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfZGluZkVOU185YWxsb2NhdG9ySVMyX0VFRUUAZ3JvdXAgdHlwZTogAHwgZ3JvdXAgaWQ6IAB8IGVudGl0eSBJRHM6IAAgAE40aGVpZjhCb3hfZ3JwbEUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9ncnBsRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBudW1iZXIgb2YgZGF0YSBieXRlczogAE40aGVpZjhCb3hfaWRhdEUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pZGF0RU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBzZXFfcHJvZmlsZTogAHNlcV9sZXZlbF9pZHhfMDogAGhpZ2hfYml0ZGVwdGg6IAB0d2VsdmVfYml0OiAAY2hyb21hX3N1YnNhbXBsaW5nX3g6IABjaHJvbWFfc3Vic2FtcGxpbmdfeTogAGNocm9tYV9zYW1wbGVfcG9zaXRpb246IABpbml0aWFsX3ByZXNlbnRhdGlvbl9kZWxheTogAG5vdCBwcmVzZW50CgBjb25maWcgT0JVczoATjRoZWlmOEJveF9hdjFDRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWY4Qm94X2F2MUNFTlNfOWFsbG9jYXRvcklTMl9FRUVFAGNvbmZpZ3VyYXRpb25fdmVyc2lvbjogAGdlbmVyYWxfcHJvZmlsZV9zcGFjZTogAGdlbmVyYWxfdGllcl9mbGFnOiAAZ2VuZXJhbF9wcm9maWxlX2lkYzogAGdlbmVyYWxfcHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzOiAAZ2VuZXJhbF9jb25zdHJhaW50X2luZGljYXRvcl9mbGFnczogAGdlbmVyYWxfbGV2ZWxfaWRjOiAAbWluX3NwYXRpYWxfc2VnbWVudGF0aW9uX2lkYzogAHBhcmFsbGVsaXNtX3R5cGU6IABjaHJvbWFfZm9ybWF0OiAAYml0X2RlcHRoX2x1bWE6IABiaXRfZGVwdGhfY2hyb21hOiAAYXZnX2ZyYW1lX3JhdGU6IABjb25zdGFudF9mcmFtZV9yYXRlOiAAbnVtX3RlbXBvcmFsX2xheWVyczogAHRlbXBvcmFsX2lkX25lc3RlZDogAGxlbmd0aF9zaXplOiAAPGFycmF5PgoAYXJyYXlfY29tcGxldGVuZXNzOiAATkFMX3VuaXRfdHlwZTogAE40aGVpZjhCb3hfaHZjQ0UATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9odmNDRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQByZWZlcmVuY2Ugd2l0aCB0eXBlICcAJwAgZnJvbSBJRDogACB0byBJRHM6IABONGhlaWY4Qm94X2lyZWZFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaXJlZkVOU185YWxsb2NhdG9ySVMyX0VFRUUAY2xlYW5fYXBlcnR1cmU6IAAvACB4IABvZmZzZXQ6IAAgOyAATjRoZWlmOEJveF9jbGFwRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWY4Qm94X2NsYXBFTlNfOWFsbG9jYXRvcklTMl9FRUVFAG1pcnJvciBheGlzOiAAdmVydGljYWwKAGhvcml6b250YWwKAE40aGVpZjhCb3hfaW1pckUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pbWlyRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQByb3RhdGlvbjogACBkZWdyZWVzIChDQ1cpCgBONGhlaWY4Qm94X2lyb3RFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaXJvdEVOU185YWxsb2NhdG9ySVMyX0VFRUUAYXV4IHR5cGU6IABhdXggc3VidHlwZXM6IABONGhlaWY4Qm94X2F1eENFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfYXV4Q0VOU185YWxsb2NhdG9ySVMyX0VFRUUAaW1hZ2Ugd2lkdGg6IABpbWFnZSBoZWlnaHQ6IABONGhlaWY4Qm94X2lzcGVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaXNwZUVOU185YWxsb2NhdG9ySVMyX0VFRUUAYXNzb2NpYXRpb25zIGZvciBpdGVtIElEOiAAcHJvcGVydHkgaW5kZXg6IAAgKGVzc2VudGlhbDogAE40aGVpZjhCb3hfaXBtYUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pcG1hRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBONGhlaWY4Qm94X2lwY29FAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaXBjb0VOU185YWxsb2NhdG9ySVMyX0VFRUUATjRoZWlmOEJveF9pcHJwRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWY4Qm94X2lwcnBFTlNfOWFsbG9jYXRvcklTMl9FRUVFAG1pbWUAdXJpIABpdGVtX0lEOiAAaXRlbV9wcm90ZWN0aW9uX2luZGV4OiAAaXRlbV90eXBlOiAAaXRlbV9uYW1lOiAAY29udGVudF90eXBlOiAAY29udGVudF9lbmNvZGluZzogAGl0ZW0gdXJpIHR5cGU6IABoaWRkZW4gaXRlbTogAE40aGVpZjhCb3hfaW5mZUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pbmZlRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBONGhlaWY4Qm94X2lpbmZFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaWluZkVOU185YWxsb2NhdG9ySVMyX0VFRUUAaWxvYyBib3ggY29udGFpbnMgACBpdGVtcywgd2hpY2ggZXhjZWVkcyB0aGUgc2VjdXJpdHkgbGltaXQgb2YgACBpdGVtcy4ATnVtYmVyIG9mIGV4dGVudHMgaW4gaWxvYyBib3ggKAApIGV4Y2VlZHMgc2VjdXJpdHkgbGltaXQgKABpdGVtIElEOiAAICBjb25zdHJ1Y3Rpb24gbWV0aG9kOiAAICBkYXRhX3JlZmVyZW5jZV9pbmRleDogACAgYmFzZV9vZmZzZXQ6IAAgIGV4dGVudHM6IAA7aW5kZXg9AE40aGVpZjhCb3hfaWxvY0UATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9pbG9jRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBtX2l0ZW1fSUQgPD0gMHhGRkZGAE40aGVpZjhCb3hfcGl0bUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9waXRtRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBwcmVfZGVmaW5lZDogAGhhbmRsZXJfdHlwZTogAG5hbWU6IABONGhlaWY4Qm94X2hkbHJFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjhCb3hfaGRsckVOU185YWxsb2NhdG9ySVMyX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEJveF9tZXRhRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWY4Qm94X2Z0eXBFTlNfOWFsbG9jYXRvcklTMl9FRUVFAEJveCBzaXplIAAgZXhjZWVkcyBzZWN1cml0eSBsaW1pdC4ATjRoZWlmOEJveF9tZXRhRQBpbG9jIGJveCBjb250YWluZWQgACBieXRlcywgdG90YWwgbWVtb3J5IHNpemUgd291bGQgYmUgACBieXRlcywgZXhjZWVkaW5nIHRoZSBzZWN1cml0eSBsaW1pdCBvZiAAIGJ5dGVzAGlsb2MgZGF0YSBwb2ludGVycyBvdXQgb2YgYWxsb3dlZCByYW5nZQBFeHRlbnQgaW4gaWxvYyBib3ggcmVmZXJlbmNlcyBkYXRhIG91dHNpZGUgb2YgZmlsZSBib3VuZHMgAChwb2ludHMgdG8gZmlsZSBwb3NpdGlvbiAAc3VjY2VzcwByZWFkX2RhdGEAaWRhdCBib3ggcmVmZXJlbmNlZCBpbiBpcmVmIGJveCBpcyBub3QgcHJlc2VudCBpbiBmaWxlAEl0ZW0gY29uc3RydWN0aW9uIG1ldGhvZCAAIG5vdCBpbXBsZW1lbnRlZABpZGF0IGJveCBjb250YWluZWQgAEl0ZW0gKElEPQApIGhhcyBubyBwcm9wZXJ0aWVzIGFzc2lnbmVkIHRvIGl0IGluIGlwbWEgYm94AE5vbmV4aXN0aW5nIHByb3BlcnR5IChpbmRleD0AKSBmb3IgaXRlbSAAIElEPQAgcmVmZXJlbmNlZCBpbiBpcG1hIGJveABVbmtub3duIGVycm9yAGVycm9yLmNjAGdldF9lcnJvcl9zdHJpbmcAQ29sb3IgcHJvZmlsZSBkb2VzIG5vdCBleGlzdABFcnJvciBkdXJpbmcgZW5jb2Rpbmcgb3Igd3JpdGluZyBvdXRwdXQgZmlsZQBFbmNvZGVyIHBsdWdpbiBnZW5lcmF0ZWQgYW4gZXJyb3IARGVjb2RlciBwbHVnaW4gZ2VuZXJhdGVkIGFuIGVycm9yAE1lbW9yeSBhbGxvY2F0aW9uIGVycm9yAFVzYWdlIGVycm9yAFVuc3VwcG9ydGVkIGZlYXR1cmUAVW5zdXBwb3J0ZWQgZmlsZS10eXBlAEludmFsaWQgaW5wdXQASW5wdXQgZmlsZSBkb2VzIG5vdCBleGlzdABDYW5ub3Qgd3JpdGUgb3V0cHV0IGRhdGEAVW5zdXBwb3J0ZWQgYml0IGRlcHRoAFVuc3VwcG9ydGVkIGl0ZW0gY29uc3RydWN0aW9uIG1ldGhvZABVbnN1cHBvcnRlZCBjb2xvciBjb252ZXJzaW9uAFVuc3VwcG9ydGVkIGRhdGEgdmVyc2lvbgBVbnN1cHBvcnRlZCBpbWFnZSB0eXBlAFVuc3VwcG9ydGVkIGNvZGVjAEludmFsaWQgcGFyYW1ldGVyIHZhbHVlAFVuc3VwcG9ydGVkIHBhcmFtZXRlcgBUaGUgdmVyc2lvbiBvZiB0aGUgcGFzc2VkIHdyaXRlciBpcyBub3Qgc3VwcG9ydGVkAFRoZSB2ZXJzaW9uIG9mIHRoZSBwYXNzZWQgcGx1Z2luIGlzIG5vdCBzdXBwb3J0ZWQATm9uLWV4aXN0aW5nIGltYWdlIGNoYW5uZWwgcmVmZXJlbmNlZABOVUxMIGFyZ3VtZW50IHJlY2VpdmVkAE5vbi1leGlzdGluZyBpdGVtIElEIHJlZmVyZW5jZWQAU2VjdXJpdHkgbGltaXQgZXhjZWVkZWQASW52YWxpZCBwaXhpIGJveABJbnZhbGlkIGltYWdlIHNpemUASW52YWxpZCBmcmFjdGlvbmFsIG51bWJlcgBXcm9uZyB0aWxlIGltYWdlIGNocm9tYSBmb3JtYXQAVW5rbm93biBjb2xvciBwcm9maWxlIHR5cGUATm8gb3IgaW52YWxpZCBwcmltYXJ5IGl0ZW0AVHlwZSBvZiBhdXhpbGlhcnkgaW1hZ2UgdW5zcGVjaWZpZWQAT3ZlcmxheSBpbWFnZSBvdXRzaWRlIG9mIGNhbnZhcyBhcmVhAEludmFsaWQgb3ZlcmxheSBkYXRhAEludmFsaWQgY2xlYW4tYXBlcnR1cmUgc3BlY2lmaWNhdGlvbgBJdGVtIGhhcyBubyBkYXRhAE5vIHByb3BlcnRpZXMgYXNzaWduZWQgdG8gaXRlbQAnaXBtYScgYm94IHJlZmVyZW5jZXMgYSBub24tZXhpc3RpbmcgcHJvcGVydHkATm90IGEgJ3BpY3QnIGhhbmRsZXIATm8gJ2luZmUnIGJveABObyAnaXJlZicgYm94AE5vICdpcHJwJyBib3gATm8gJ2lpbmYnIGJveABObyAnaWxvYycgYm94AE5vICdpcG1hJyBib3gATm8gJ2lwY28nIGJveABObyAncGl0bScgYm94AE5vICdhdjFDJyBib3gATm8gJ2h2Y0MnIGJveABObyAnaGRscicgYm94AE5vICdtZXRhJyBib3gATm8gJ2lkYXQnIGJveABObyAnZnR5cCcgYm94AE1pc3NpbmcgZ3JpZCBpbWFnZXMASW52YWxpZCBncmlkIGRhdGEASW52YWxpZCBib3ggc2l6ZQBVbmV4cGVjdGVkIGVuZCBvZiBmaWxlAFVuc3BlY2lmaWVkADogAEZpbGUgZG9lcyBub3QgaW5jbHVkZSBhbnkgc3VwcG9ydGVkIGJyYW5kcy4KAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjE5U3RyZWFtUmVhZGVyX21lbW9yeUVOU185YWxsb2NhdG9ySVMyX0VFRUUAaGVpZl9maWxlLmNjAEl0ZW0gd2l0aCBJRCAAIGhhcyBubyBjb21wcmVzc2VkIGRhdGEAZ2V0X2NvbXByZXNzZWRfaW1hZ2VfZGF0YQBoZWlmX2ltYWdlLmNjAGNocm9tYV9oX3N1YnNhbXBsaW5nAGNocm9tYV92X3N1YnNhbXBsaW5nAG51bV9pbnRlcmxlYXZlZF9waXhlbHNfcGVyX3BsYW5lAHdpZHRoID49IDAAYWxsb2MAaGVpZ2h0ID49IDAAYml0X2RlcHRoID49IDEAYml0X2RlcHRoIDw9IDMyAG1fYml0X2RlcHRoIDw9IDE2AGJwcCA8PSAyNTUAZ2V0X3N0b3JhZ2VfYml0c19wZXJfcGl4ZWwAaXNfY2hyb21hX3dpdGhfYWxwaGEATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmMTRIZWlmUGl4ZWxJbWFnZUVOU185YWxsb2NhdG9ySVMyX0VFRUUAQ2FuIGN1cnJlbnRseSBvbmx5IG1pcnJvciBpbWFnZXMgd2l0aCA4IGJpdHMgcGVyIHBpeGVsAENhbiBjdXJyZW50bHkgb25seSBmaWxsIGltYWdlcyB3aXRoIDggYml0cyBwZXIgcGl4ZWwAZmlsbF9SR0JfMTZiaXQAaW5fdyA+PSAwAG92ZXJsYXkAaW5faCA+PSAwAG91dF93ID49IDAAb3V0X2ggPj0gMABPdmVybGF5IGltYWdlIG91dHNpZGUgb2YgcmlnaHQgb3IgYm90dG9tIGNhbnZhcyBib3JkZXIAT3ZlcmxheSBpbWFnZSBvdXRzaWRlIG9mIGxlZnQgb3IgdG9wIGNhbnZhcyBib3JkZXIAaGVpZl9nZXRfdmVyc2lvbgBpaQBoZWlmX2dldF92ZXJzaW9uX251bWJlcgBoZWlmX2NvbnRleHRfYWxsb2MAaGVpZl9jb250ZXh0X2ZyZWUAdmlpAGhlaWZfY29udGV4dF9yZWFkX2Zyb21fbWVtb3J5AGlpaWkAaGVpZl9jb250ZXh0X2dldF9udW1iZXJfb2ZfdG9wX2xldmVsX2ltYWdlcwBpaWkAaGVpZl9qc19jb250ZXh0X2dldF9saXN0X29mX3RvcF9sZXZlbF9pbWFnZV9JRHMAaGVpZl9qc19jb250ZXh0X2dldF9pbWFnZV9oYW5kbGUAaGVpZl9qc19kZWNvZGVfaW1hZ2UAaWlpaWkAaGVpZl9pbWFnZV9oYW5kbGVfcmVsZWFzZQBoZWlmX2Vycm9yX2NvZGUAaGVpZl9lcnJvcl9PawBoZWlmX2Vycm9yX0lucHV0X2RvZXNfbm90X2V4aXN0AGhlaWZfZXJyb3JfSW52YWxpZF9pbnB1dABoZWlmX2Vycm9yX1Vuc3VwcG9ydGVkX2ZpbGV0eXBlAGhlaWZfZXJyb3JfVW5zdXBwb3J0ZWRfZmVhdHVyZQBoZWlmX2Vycm9yX1VzYWdlX2Vycm9yAGhlaWZfZXJyb3JfTWVtb3J5X2FsbG9jYXRpb25fZXJyb3IAaGVpZl9lcnJvcl9EZWNvZGVyX3BsdWdpbl9lcnJvcgBoZWlmX2Vycm9yX0VuY29kZXJfcGx1Z2luX2Vycm9yAGhlaWZfZXJyb3JfRW5jb2RpbmdfZXJyb3IAaGVpZl9lcnJvcl9Db2xvcl9wcm9maWxlX2RvZXNfbm90X2V4aXN0AGhlaWZfc3ViZXJyb3JfY29kZQBoZWlmX3N1YmVycm9yX1Vuc3BlY2lmaWVkAGhlaWZfc3ViZXJyb3JfQ2Fubm90X3dyaXRlX291dHB1dF9kYXRhAGhlaWZfc3ViZXJyb3JfRW5kX29mX2RhdGEAaGVpZl9zdWJlcnJvcl9JbnZhbGlkX2JveF9zaXplAGhlaWZfc3ViZXJyb3JfTm9fZnR5cF9ib3gAaGVpZl9zdWJlcnJvcl9Ob19pZGF0X2JveABoZWlmX3N1YmVycm9yX05vX21ldGFfYm94AGhlaWZfc3ViZXJyb3JfTm9faGRscl9ib3gAaGVpZl9zdWJlcnJvcl9Ob19odmNDX2JveABoZWlmX3N1YmVycm9yX05vX3BpdG1fYm94AGhlaWZfc3ViZXJyb3JfTm9faXBjb19ib3gAaGVpZl9zdWJlcnJvcl9Ob19pcG1hX2JveABoZWlmX3N1YmVycm9yX05vX2lsb2NfYm94AGhlaWZfc3ViZXJyb3JfTm9faWluZl9ib3gAaGVpZl9zdWJlcnJvcl9Ob19pcHJwX2JveABoZWlmX3N1YmVycm9yX05vX2lyZWZfYm94AGhlaWZfc3ViZXJyb3JfTm9fcGljdF9oYW5kbGVyAGhlaWZfc3ViZXJyb3JfSXBtYV9ib3hfcmVmZXJlbmNlc19ub25leGlzdGluZ19wcm9wZXJ0eQBoZWlmX3N1YmVycm9yX05vX3Byb3BlcnRpZXNfYXNzaWduZWRfdG9faXRlbQBoZWlmX3N1YmVycm9yX05vX2l0ZW1fZGF0YQBoZWlmX3N1YmVycm9yX0ludmFsaWRfZ3JpZF9kYXRhAGhlaWZfc3ViZXJyb3JfTWlzc2luZ19ncmlkX2ltYWdlcwBoZWlmX3N1YmVycm9yX05vX2F2MUNfYm94AGhlaWZfc3ViZXJyb3JfSW52YWxpZF9jbGVhbl9hcGVydHVyZQBoZWlmX3N1YmVycm9yX0ludmFsaWRfb3ZlcmxheV9kYXRhAGhlaWZfc3ViZXJyb3JfT3ZlcmxheV9pbWFnZV9vdXRzaWRlX29mX2NhbnZhcwBoZWlmX3N1YmVycm9yX0F1eGlsaWFyeV9pbWFnZV90eXBlX3Vuc3BlY2lmaWVkAGhlaWZfc3ViZXJyb3JfTm9fb3JfaW52YWxpZF9wcmltYXJ5X2l0ZW0AaGVpZl9zdWJlcnJvcl9Ob19pbmZlX2JveABoZWlmX3N1YmVycm9yX1NlY3VyaXR5X2xpbWl0X2V4Y2VlZGVkAGhlaWZfc3ViZXJyb3JfVW5rbm93bl9jb2xvcl9wcm9maWxlX3R5cGUAaGVpZl9zdWJlcnJvcl9Xcm9uZ190aWxlX2ltYWdlX2Nocm9tYV9mb3JtYXQAaGVpZl9zdWJlcnJvcl9JbnZhbGlkX2ZyYWN0aW9uYWxfbnVtYmVyAGhlaWZfc3ViZXJyb3JfSW52YWxpZF9pbWFnZV9zaXplAGhlaWZfc3ViZXJyb3JfTm9uZXhpc3RpbmdfaXRlbV9yZWZlcmVuY2VkAGhlaWZfc3ViZXJyb3JfTnVsbF9wb2ludGVyX2FyZ3VtZW50AGhlaWZfc3ViZXJyb3JfTm9uZXhpc3RpbmdfaW1hZ2VfY2hhbm5lbF9yZWZlcmVuY2VkAGhlaWZfc3ViZXJyb3JfVW5zdXBwb3J0ZWRfcGx1Z2luX3ZlcnNpb24AaGVpZl9zdWJlcnJvcl9VbnN1cHBvcnRlZF93cml0ZXJfdmVyc2lvbgBoZWlmX3N1YmVycm9yX1Vuc3VwcG9ydGVkX3BhcmFtZXRlcgBoZWlmX3N1YmVycm9yX0ludmFsaWRfcGFyYW1ldGVyX3ZhbHVlAGhlaWZfc3ViZXJyb3JfSW52YWxpZF9waXhpX2JveABoZWlmX3N1YmVycm9yX1Vuc3VwcG9ydGVkX2NvZGVjAGhlaWZfc3ViZXJyb3JfVW5zdXBwb3J0ZWRfaW1hZ2VfdHlwZQBoZWlmX3N1YmVycm9yX1Vuc3VwcG9ydGVkX2RhdGFfdmVyc2lvbgBoZWlmX3N1YmVycm9yX1Vuc3VwcG9ydGVkX2NvbG9yX2NvbnZlcnNpb24AaGVpZl9zdWJlcnJvcl9VbnN1cHBvcnRlZF9pdGVtX2NvbnN0cnVjdGlvbl9tZXRob2QAaGVpZl9zdWJlcnJvcl9VbnN1cHBvcnRlZF9iaXRfZGVwdGgAaGVpZl9jb21wcmVzc2lvbl9mb3JtYXQAaGVpZl9jb21wcmVzc2lvbl91bmRlZmluZWQAaGVpZl9jb21wcmVzc2lvbl9IRVZDAGhlaWZfY29tcHJlc3Npb25fQVZDAGhlaWZfY29tcHJlc3Npb25fSlBFRwBoZWlmX2NvbXByZXNzaW9uX0FWMQBoZWlmX2Nocm9tYQBoZWlmX2Nocm9tYV91bmRlZmluZWQAaGVpZl9jaHJvbWFfbW9ub2Nocm9tZQBoZWlmX2Nocm9tYV80MjAAaGVpZl9jaHJvbWFfNDIyAGhlaWZfY2hyb21hXzQ0NABoZWlmX2Nocm9tYV9pbnRlcmxlYXZlZF9SR0IAaGVpZl9jaHJvbWFfaW50ZXJsZWF2ZWRfUkdCQQBoZWlmX2Nocm9tYV9pbnRlcmxlYXZlZF9SUkdHQkJfQkUAaGVpZl9jaHJvbWFfaW50ZXJsZWF2ZWRfUlJHR0JCQUFfQkUAaGVpZl9jaHJvbWFfaW50ZXJsZWF2ZWRfUlJHR0JCX0xFAGhlaWZfY2hyb21hX2ludGVybGVhdmVkX1JSR0dCQkFBX0xFAGhlaWZfY2hyb21hX2ludGVybGVhdmVkXzI0Yml0AGhlaWZfY2hyb21hX2ludGVybGVhdmVkXzMyYml0AGhlaWZfY29sb3JzcGFjZQBoZWlmX2NvbG9yc3BhY2VfdW5kZWZpbmVkAGhlaWZfY29sb3JzcGFjZV9ZQ2JDcgBoZWlmX2NvbG9yc3BhY2VfUkdCAGhlaWZfY29sb3JzcGFjZV9tb25vY2hyb21lAGhlaWZfY2hhbm5lbABoZWlmX2NoYW5uZWxfWQBoZWlmX2NoYW5uZWxfQ3IAaGVpZl9jaGFubmVsX0NiAGhlaWZfY2hhbm5lbF9SAGhlaWZfY2hhbm5lbF9HAGhlaWZfY2hhbm5lbF9CAGhlaWZfY2hhbm5lbF9BbHBoYQBoZWlmX2NoYW5uZWxfaW50ZXJsZWF2ZWQAaGVpZl9jb250ZXh0AHYAdmkAaGVpZl9pbWFnZV9oYW5kbGUAaGVpZl9pbWFnZQBoZWlmX2Vycm9yAGkAY29kZQB2aWlpAHN1YmNvZGUAMTBoZWlmX2Vycm9yAFBLMTBoZWlmX2ltYWdlAFAxMGhlaWZfaW1hZ2UAMTBoZWlmX2ltYWdlAFBLMTdoZWlmX2ltYWdlX2hhbmRsZQBQMTdoZWlmX2ltYWdlX2hhbmRsZQAxN2hlaWZfaW1hZ2VfaGFuZGxlAFBLMTJoZWlmX2NvbnRleHQAUDEyaGVpZl9jb250ZXh0ADEyaGVpZl9jb250ZXh0ADEyaGVpZl9jaGFubmVsADE1aGVpZl9jb2xvcnNwYWNlADExaGVpZl9jaHJvbWEAMjNoZWlmX2NvbXByZXNzaW9uX2Zvcm1hdAAxOGhlaWZfc3ViZXJyb3JfY29kZQAxNWhlaWZfZXJyb3JfY29kZQBOMTBlbXNjcmlwdGVuM3ZhbEUAaXNfcHJpbWFyeQB0aHVtYm5haWxzAHdpZHRoAGhlaWdodABjaHJvbWEAY29sb3JzcGFjZQBoZWlmX2ltYWdlX2dldF9jaHJvbWFfZm9ybWF0KGltYWdlKSA9PSBoZWlmX2Nocm9tYV9pbnRlcmxlYXZlZF8yNGJpdAAuL2hlaWZfZW1zY3JpcHRlbi5oAGhlaWZfaW1hZ2VfZ2V0X2Nocm9tYV9mb3JtYXQoaW1hZ2UpID09IGhlaWZfY2hyb21hX21vbm9jaHJvbWUAZGF0YQBOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBOU3QzX18yMjFfX2Jhc2ljX3N0cmluZ19jb21tb25JTGIxRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjExSGVpZkNvbnRleHRFTlNfOWFsbG9jYXRvcklTMl9FRUVFADEuMTAuMABTdWNjZXNzAExlc3MgdGhhbiA4IGJ5dGVzIG9mIGRhdGEAR3JpZCBpbWFnZSBkYXRhIGluY29tcGxldGUACgBPdmVybGF5IGltYWdlIGRhdGEgaW5jb21wbGV0ZQBPdmVybGF5IGltYWdlIGRhdGEgdmVyc2lvbiAAIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQAeABpbWFnZV9pbmRleCA8IG1fb2Zmc2V0cy5zaXplKCkAaGVpZl9jb250ZXh0LmNjAGdldF9vZmZzZXQATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmOEhlaWZGaWxlRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBodmMxAGdyaWQAaWRlbgBpb3ZsAGF2MDEAJ3BpdG0nIGJveCByZWZlcmVuY2VzIGEgbm9uLWV4aXN0aW5nIGltYWdlAEltYWdlIHNpemUgACBleGNlZWRzIHRoZSBtYXhpbXVtIGltYWdlIHNpemUgAFRvbyBtYW55IHRodW1ibmFpbCByZWZlcmVuY2VzAFRodW1ibmFpbCByZWZlcmVuY2VzIGEgbm9uLWV4aXN0aW5nIGltYWdlAFRodW1ibmFpbCByZWZlcmVuY2VzIGFub3RoZXIgdGh1bWJuYWlsAFJlY3Vyc2l2ZSB0aHVtYm5haWwgaW1hZ2UgZGV0ZWN0ZWQATm8gYXV4QyBwcm9wZXJ0eSBmb3IgaW1hZ2UgAFRvbyBtYW55IGF1eGlsaWFyeSBpbWFnZSByZWZlcmVuY2VzAHVybjptcGVnOmF2YzoyMDE1OmF1eGlkOjEAdXJuOm1wZWc6aGV2YzoyMDE1OmF1eGlkOjEAdXJuOm1wZWc6bXBlZ0I6Y2ljcDpzeXN0ZW1zOmF1eGlsaWFyeTphbHBoYQBOb24tZXhpc3RpbmcgYWxwaGEgaW1hZ2UgcmVmZXJlbmNlZABSZWN1cnNpdmUgYWxwaGEgaW1hZ2UgZGV0ZWN0ZWQAdXJuOm1wZWc6aGV2YzoyMDE1OmF1eGlkOjIAdXJuOm1wZWc6bXBlZ0I6Y2ljcDpzeXN0ZW1zOmF1eGlsaWFyeTpkZXB0aABOb24tZXhpc3RpbmcgZGVwdGggaW1hZ2UgcmVmZXJlbmNlZABSZWN1cnNpdmUgZGVwdGggaW1hZ2UgZGV0ZWN0ZWQATm9uLWV4aXN0aW5nIGF1eCBpbWFnZSByZWZlcmVuY2VkAFJlY3Vyc2l2ZSBhdXggaW1hZ2UgZGV0ZWN0ZWQATm8gaHZjQyBwcm9wZXJ0eSBpbiBodmMxIHR5cGUgaW1hZ2UATWV0YWRhdGEgbm90IGNvcnJlY3RseSBhc3NpZ25lZCB0byBpbWFnZQBNZXRhZGF0YSBhc3NpZ25lZCB0byBub24tZXhpc3RpbmcgaW1hZ2UATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJTjRoZWlmMTNJbWFnZU1ldGFkYXRhRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBONGhlaWYzNlNFSU1lc3NhZ2VfZGVwdGhfcmVwcmVzZW50YXRpb25faW5mb0UAMzBoZWlmX2RlcHRoX3JlcHJlc2VudGF0aW9uX2luZm8ATjRoZWlmMTBTRUlNZXNzYWdlRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUlONGhlaWYxMUhlaWZDb250ZXh0NUltYWdlRU5TXzlhbGxvY2F0b3JJUzNfRUVFRQBpbWdpbmZvAGRlY29kZV9pbWFnZV9wbGFuYXIAaW1nX3dpZHRoID49IDAAaW1nX2hlaWdodCA+PSAwAE5vIGlyZWYgYm94IGF2YWlsYWJsZSwgYnV0IG5lZWRlZCBmb3IgaW92bCBpbWFnZQBOdW1iZXIgb2YgaW1hZ2Ugb2Zmc2V0cyBkb2VzIG5vdCBtYXRjaCB0aGUgbnVtYmVyIG9mIGltYWdlIHJlZmVyZW5jZXMATm8gaXJlZiBib3ggYXZhaWxhYmxlLCBidXQgbmVlZGVkIGZvciBpZGVuIGltYWdlACdpZGVuJyBpbWFnZSB3aXRoIG1vcmUgdGhhbiBvbmUgcmVmZXJlbmNlIGltYWdlAE5vIGlyZWYgYm94IGF2YWlsYWJsZSwgYnV0IG5lZWRlZCBmb3IgZ3JpZCBpbWFnZQBtX3Jvd3MgPD0gMjU2AGdldF9yb3dzAG1fY29sdW1ucyA8PSAyNTYAZ2V0X2NvbHVtbnMAVGlsZWQgaW1hZ2Ugd2l0aCAAPQAgdGlsZXMsIGJ1dCBvbmx5IAAgdGlsZSBpbWFnZXMgaW4gZmlsZQBUaWxlIGltYWdlIElEPQAgaXMgbm90IGEgcHJvcGVyIGltYWdlLgAhaW1hZ2VfcmVmZXJlbmNlcy5lbXB0eSgpAGRlY29kZV9mdWxsX2dyaWRfaW1hZ2UATm8gcGl4aSBpbmZvcm1hdGlvbiBmb3IgbHVtYSBjaGFubmVsLgBEaWZmZXJlbnQgbnVtYmVyIG9mIGJpdHMgcGVyIHBpeGVsIGluIGVhY2ggY2hhbm5lbC4AVW5leGlzdGluZyBncmlkIGltYWdlIHJlZmVyZW5jZWQAc3JjX3dpZHRoID49IDAAZGVjb2RlX2FuZF9wYXN0ZV90aWxlX2ltYWdlAHNyY19oZWlnaHQgPj0gMABJbWFnZSB0aWxlIGhhcyBkaWZmZXJlbnQgY2hyb21hIGZvcm1hdCB0aGFuIGNvbWJpbmVkIGltYWdlAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSU40aGVpZjM2U0VJTWVzc2FnZV9kZXB0aF9yZXByZXNlbnRhdGlvbl9pbmZvRU5TXzlhbGxvY2F0b3JJUzJfRUVFRQBTdWNjZXNzAHdhbnRfYWxwaGEgJiYgIWhhc19hbHBoYQBoZWlmX2NvbG9yY29udmVyc2lvbi5jYwBjb252ZXJ0X2NvbG9yc3BhY2UAMThPcF9SR0JfdG9fUkdCMjRfMzIATjRoZWlmMjRDb2xvckNvbnZlcnNpb25PcGVyYXRpb25FADIwT3BfWUNiQ3I0MjBfdG9fUkdCMjQAMjBPcF9ZQ2JDcjQyMF90b19SR0IzMgAyNU9wX1JHQl9IRFJfdG9fUlJHR0JCYWFfQkUAMjFPcF9SR0JfdG9fUlJHR0JCYWFfQkUAMjVPcF9SUkdHQkJhYV9CRV90b19SR0JfSERSADI3T3BfUlJHR0JCYWFfc3dhcF9lbmRpYW5uZXNzADE5T3BfbW9ub190b19ZQ2JDcjQyMAAxOU9wX21vbm9fdG9fUkdCMjRfMzIAMjBPcF9SR0IyNF8zMl90b19ZQ2JDcgB0YXJnZXRfc3RhdGUubmNseF9wcm9maWxlAHRhcmdldF9zdGF0ZS5uY2x4X3Byb2ZpbGUtPmdldF9tYXRyaXhfY29lZmZpY2llbnRzKCkgPT0gMAAyN09wX1JHQjI0XzMyX3RvX1lDYkNyNDQ0X0dCUgAxOU9wX2Ryb3BfYWxwaGFfcGxhbmUAMTZPcF90b19oZHJfcGxhbmVzADE2T3BfdG9fc2RyX3BsYW5lcwAyN09wX1JSR0dCQnh4X0hEUl90b19ZQ2JDcjQyMAAyM09wX1lDYkNyNDIwX3RvX1JSR0dCQmFhAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTI3T3BfUlJHR0JCeHhfSERSX3RvX1lDYkNyNDIwTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE2T3BfdG9fc2RyX3BsYW5lc05TXzlhbGxvY2F0b3JJUzFfRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUkxNk9wX3RvX2hkcl9wbGFuZXNOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMTlPcF9kcm9wX2FscGhhX3BsYW5lTlNfOWFsbG9jYXRvcklTMV9FRUVFADE1T3BfUkdCX3RvX1lDYkNySXRFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE1T3BfUkdCX3RvX1lDYkNySXRFTlNfOWFsbG9jYXRvcklTMl9FRUVFADE1T3BfUkdCX3RvX1lDYkNySWhFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE1T3BfUkdCX3RvX1lDYkNySWhFTlNfOWFsbG9jYXRvcklTMl9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTI3T3BfUkdCMjRfMzJfdG9fWUNiQ3I0NDRfR0JSTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTIwT3BfUkdCMjRfMzJfdG9fWUNiQ3JOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMjVPcF9SUkdHQkJhYV9CRV90b19SR0JfSERSTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTI3T3BfUlJHR0JCYWFfc3dhcF9lbmRpYW5uZXNzTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE5T3BfbW9ub190b19SR0IyNF8zMk5TXzlhbGxvY2F0b3JJUzFfRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUkxOU9wX21vbm9fdG9fWUNiQ3I0MjBOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMjFPcF9SR0JfdG9fUlJHR0JCYWFfQkVOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMjVPcF9SR0JfSERSX3RvX1JSR0dCQmFhX0JFTlNfOWFsbG9jYXRvcklTMV9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTIzT3BfWUNiQ3I0MjBfdG9fUlJHR0JCYWFOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX2VtcGxhY2VJMjBPcF9ZQ2JDcjQyMF90b19SR0IzMk5TXzlhbGxvY2F0b3JJUzFfRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUkyME9wX1lDYkNyNDIwX3RvX1JHQjI0TlNfOWFsbG9jYXRvcklTMV9FRUVFADE1T3BfWUNiQ3JfdG9fUkdCSWhFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE1T3BfWUNiQ3JfdG9fUkdCSWhFTlNfOWFsbG9jYXRvcklTMl9FRUVFADE1T3BfWUNiQ3JfdG9fUkdCSXRFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE1T3BfWUNiQ3JfdG9fUkdCSXRFTlNfOWFsbG9jYXRvcklTMl9FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9lbXBsYWNlSTE4T3BfUkdCX3RvX1JHQjI0XzMyTlNfOWFsbG9jYXRvcklTMV9FRUVFACFjaGFubmVscy5lbXB0eSgpAFN1Y2Nlc3MAQ2Fubm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgaW1hZ2UgcGxhbmUAQ2hhbm5lbHMgd2l0aCBkaWZmZXJlbnQgbnVtYmVyIG9mIGJpdHMgcGVyIHBpeGVsIGFyZSBub3Qgc3VwcG9ydGVkAGxpYmRlMjY1IEhFVkMgZGVjb2RlcgAsIHZlcnNpb24gADEuMC4yAGRlMjY1LmNjAGRlMjY1X3NldF9wYXJhbWV0ZXJfYm9vbABjaGFubmVsPj0wICYmIGNoYW5uZWwgPD0gMgBkZTI2NV9nZXRfaW1hZ2VfcGxhbmUAMTVkZWNvZGVyX2NvbnRleHQAMTJiYXNlX2NvbnRleHQAMTFlcnJvcl9xdWV1ZQB0aHJlYWRfY29udGV4dHM9PU5VTEwAZGVjY3R4LmNjAGFsbG9jYXRlX3RocmVhZF9jb250ZXh0cwBkZWNvZGVfc2xpY2VfdW5pdF9wYXJhbGxlbABpbWctPm51bV90aHJlYWRzX2FjdGl2ZSgpID09IDAAZGVjb2RlX3NsaWNlX3VuaXRfdGlsZXMAbiA8IG5UaHJlYWRDb250ZXh0cwAuL2RlY2N0eC5oAGdldF90aHJlYWRfY29udGV4dABkZWNvZGVfc2xpY2VfdW5pdF9XUFAAUFBTICVkIGhhcyBub3QgYmVlbiByZWFkCgBwcm9jZXNzX3NsaWNlX3NlZ21lbnRfaGVhZGVyAGhkci0+bnVtX3JlZl9pZHhfbDBfYWN0aXZlIDw9IDE2AGNvbnN0cnVjdF9yZWZlcmVuY2VfcGljdHVyZV9saXN0cwBoZHItPm51bV9yZWZfaWR4X2wxX2FjdGl2ZSA8PSAxNgBjdHgtPmRwYi5oYXNfZnJlZV9kcGJfcGljdHVyZSh0cnVlKQBnZW5lcmF0ZV91bmF2YWlsYWJsZV9yZWZlcmVuY2VfcGljdHVyZQBpZHg+PTAAbmFsAGRlY29kZQBmYWxsYmFjay1kY3QuY2MAdHJhbnNmb3JtX3NraXBfOF9mYWxsYmFjawB0cmFuc2Zvcm1fc2tpcF8xNl9mYWxsYmFjawBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFpaWFVSTklDPTYuJh8WDQT88+rh2tLKw723sq6rqKamWldQRjkrGQn359XHurCppqapsLrH1ef3CRkrOUZQV1paUkMuFvzhyrerpqiyw9rzDSY9TlhaVUk2HwTq0r2upllLMhLuzrWnp7XO7hIyS1lZSzIS7s61p6e1zu4SMktZWEMf88quprLS/CZJWlU9FurDq6a32gQuTlpSNg3hvahXOQnVsKa65xlGWlAr98epqcf3K1BaRhnnuqaw1Qk5V1Uu872mt+omUlg2/MOmsuEfTlo9BMqortoWSVpDDdKrUyTcra3cJFNTJNytrdwkU1Mk3K2t3CRTUyTcra3cJFNSFsqmww1OVR/Spr0ESVgm2qi3/ENaLuGrsvM9WjbqrlAJuqnnOVor1abHGVdG97Cw90ZXGcem1StaOeepuglQTvyutw1VQ+qowx9aNtqm0i5aJsqm4T1YFr2r80lSBLJL7qfOMlkStbUSWTLOp+5LS+6nzjJZErW1ElkyzqfuS0nhpupOQ9qm81I90qj8VTbKqwRYLsOuDVomvbIWWh+3RtWpCVoZsMc5UOem91crurorV/em51A5x7AZWgmp1UZDyrImVeqmBFoNqOFSLrfDPUnSrh9Y86b8Whar2k42vUDAwEBAwMBAQMDAQEDAwEBAwMBAQMDAQEDAwEBAwMBAPbfSUh+o81r8phZV2rI2Q73KTiar6loEpg1Y4a4uScM5sOda96krRrrVVwmmGVDHx1AZpglX1bpGK6n3WuewOTar/FjSw1INpiZDsupa4bdJH6YWTr3aWvOuPS6oBFXKMqcSS7XuWc7OWe61SxKnMjKnEku17lnOzlnutUsSpzIupiY2ph89qBZDqw1JrgROsvxSt/NVvepYw+Faytpa0iumORmpRgmwUPe6V+fHWtXVWsfnV7r3ULAJRqkZOaYrJqhJ/L1a0uFVsg09pjYWrlLqylrD806rHy6mQwS3WNokrVPc3FOtJCStU9zcU60kJK1T3NxTrSQkrVPc3FOtJB+yWsMENqhS2upJpkPz0lWrLg29WrcWJq5Yyvw9pk7hGbpasCsJx1epOffVUKZG5+dGplDV9zmpV8cJK7BauhkWw1WmSdr8LrJarjbz4UOoWL0fDcpSpk7SBCa3Wqs96hLOS6dZtTLu7jK1WadLzhISzkunWbUy7u4ytVmnS84SDdo9slimVbc24QQW0kOuWqZSvS7q/B/KSataqE7DJvMJ5yvHRrBXplqpULo51Rn39xnVObpQqVqmV7BGxyvnCQTzFuEm0jbDQ7dOrlWoWqZaplirUrJJvT3KLtof6g38KHdpZHRoJjEpPT0wAGZhbGxiYWNrLW1vdGlvbi5jYwBwdXRfdW53ZWlnaHRlZF9wcmVkXzhfZmFsbGJhY2sAbG9nMldEPj0xAHB1dF93ZWlnaHRlZF9wcmVkXzhfZmFsbGJhY2sAcHV0X3dlaWdodGVkX2JpcHJlZF84X2ZhbGxiYWNrAHB1dF93ZWlnaHRlZF9wcmVkX2F2Z184X2ZhbGxiYWNrAHB1dF91bndlaWdodGVkX3ByZWRfMTZfZmFsbGJhY2sAcHV0X3dlaWdodGVkX3ByZWRfMTZfZmFsbGJhY2sAcHV0X3dlaWdodGVkX2JpcHJlZF8xNl9mYWxsYmFjawBwdXRfd2VpZ2h0ZWRfcHJlZF9hdmdfMTZfZmFsbGJhY2sAIXJlb3JkZXJfb3V0cHV0X3F1ZXVlLmVtcHR5KCkAZHBiLmNjAG91dHB1dF9uZXh0X3BpY3R1cmVfaW5fcmVvcmRlcl9idWZmZXIAbmV3X2ltYWdlAGltZy0+c3BzLkJpdERlcHRoX1kgPj0gOCAmJiBpbWctPnNwcy5CaXREZXB0aF9ZIDw9IDE2AGltYWdlLmNjAGRlMjY1X2ltYWdlX2dldF9idWZmZXIAaW1nLT5zcHMuQml0RGVwdGhfQyA+PSA4ICYmIGltZy0+c3BzLkJpdERlcHRoX0MgPD0gMTYAc3BzAGFsbG9jX2ltYWdlAGZpcnN0ICUgMiA9PSAwAGNvcHlfbGluZXNfZnJvbQBlbmQgJSAyID09IDAAblRocmVhZHNSdW5uaW5nID49IDAAdGhyZWFkX2ZpbmlzaGVzAC4vaW1hZ2UuaABwZW5kaW5nX2lucHV0X05BTCA9PSBOVUxMAG5hbC1wYXJzZXIuY2MAcHVzaF9OQUwALS0tLS0tLS0tLSBQUFMgcmFuZ2UtZXh0ZW5zaW9uIC0tLS0tLS0tLS0KAGxvZzJfbWF4X3RyYW5zZm9ybV9za2lwX2Jsb2NrX3NpemUgICAgICA6ICVkCgBjcm9zc19jb21wb25lbnRfcHJlZGljdGlvbl9lbmFibGVkX2ZsYWcgOiAlZAoAY2hyb21hX3FwX29mZnNldF9saXN0X2VuYWJsZWRfZmxhZyAgICAgIDogJWQKAGRpZmZfY3VfY2hyb21hX3FwX29mZnNldF9kZXB0aCAgICAgICAgICA6ICVkCgBjaHJvbWFfcXBfb2Zmc2V0X2xpc3RfbGVuICAgICAgICAgICAgICAgOiAlZAoAY2JfcXBfb2Zmc2V0X2xpc3RbJWRdICAgICAgICAgICAgICAgICAgICA6ICVkCgBjcl9xcF9vZmZzZXRfbGlzdFslZF0gICAgICAgICAgICAgICAgICAgIDogJWQKAGxvZzJfc2FvX29mZnNldF9zY2FsZV9sdW1hICAgICAgICAgICAgICA6ICVkCgBsb2cyX3Nhb19vZmZzZXRfc2NhbGVfY2hyb21hICAgICAgICAgICAgOiAlZAoAdGlsZVg+PTAgJiYgdGlsZVk+PTAAcHBzLmNjAHNldF9kZXJpdmVkX3ZhbHVlcwAtLS0tLS0tLS0tLS0tLS0tLSBQUFMgLS0tLS0tLS0tLS0tLS0tLS0KAHBpY19wYXJhbWV0ZXJfc2V0X2lkICAgICAgIDogJWQKAHNlcV9wYXJhbWV0ZXJfc2V0X2lkICAgICAgIDogJWQKAGRlcGVuZGVudF9zbGljZV9zZWdtZW50c19lbmFibGVkX2ZsYWcgOiAlZAoAc2lnbl9kYXRhX2hpZGluZ19mbGFnICAgICAgOiAlZAoAY2FiYWNfaW5pdF9wcmVzZW50X2ZsYWcgICAgOiAlZAoAbnVtX3JlZl9pZHhfbDBfZGVmYXVsdF9hY3RpdmUgOiAlZAoAbnVtX3JlZl9pZHhfbDFfZGVmYXVsdF9hY3RpdmUgOiAlZAoAcGljX2luaXRfcXAgICAgICAgICAgICAgICAgOiAlZAoAY29uc3RyYWluZWRfaW50cmFfcHJlZF9mbGFnOiAlZAoAdHJhbnNmb3JtX3NraXBfZW5hYmxlZF9mbGFnOiAlZAoAY3VfcXBfZGVsdGFfZW5hYmxlZF9mbGFnICAgOiAlZAoAZGlmZl9jdV9xcF9kZWx0YV9kZXB0aCAgICAgOiAlZAoAcGljX2NiX3FwX29mZnNldCAgICAgICAgICAgICA6ICVkCgBwaWNfY3JfcXBfb2Zmc2V0ICAgICAgICAgICAgIDogJWQKAHBwc19zbGljZV9jaHJvbWFfcXBfb2Zmc2V0c19wcmVzZW50X2ZsYWcgOiAlZAoAd2VpZ2h0ZWRfcHJlZF9mbGFnICAgICAgICAgICA6ICVkCgB3ZWlnaHRlZF9iaXByZWRfZmxhZyAgICAgICAgIDogJWQKAG91dHB1dF9mbGFnX3ByZXNlbnRfZmxhZyAgICAgOiAlZAoAdHJhbnNxdWFudF9ieXBhc3NfZW5hYmxlX2ZsYWc6ICVkCgB0aWxlc19lbmFibGVkX2ZsYWcgICAgICAgICAgIDogJWQKAGVudHJvcHlfY29kaW5nX3N5bmNfZW5hYmxlZF9mbGFnOiAlZAoAbnVtX3RpbGVfY29sdW1ucyAgICA6ICVkCgBudW1fdGlsZV9yb3dzICAgICAgIDogJWQKAHVuaWZvcm1fc3BhY2luZ19mbGFnOiAlZAoAdGlsZSBjb2x1bW4gYm91bmRhcmllczogAHRpbGUgcm93IGJvdW5kYXJpZXM6IAAqJWQgAGxvb3BfZmlsdGVyX2Fjcm9zc190aWxlc19lbmFibGVkX2ZsYWcgOiAlZAoAcHBzX2xvb3BfZmlsdGVyX2Fjcm9zc19zbGljZXNfZW5hYmxlZF9mbGFnOiAlZAoAZGVibG9ja2luZ19maWx0ZXJfY29udHJvbF9wcmVzZW50X2ZsYWc6ICVkCgBkZWJsb2NraW5nX2ZpbHRlcl9vdmVycmlkZV9lbmFibGVkX2ZsYWc6ICVkCgBwaWNfZGlzYWJsZV9kZWJsb2NraW5nX2ZpbHRlcl9mbGFnOiAlZAoAYmV0YV9vZmZzZXQ6ICAlZAoAdGNfb2Zmc2V0OiAgICAlZAoAcGljX3NjYWxpbmdfbGlzdF9kYXRhX3ByZXNlbnRfZmxhZzogJWQKAGxpc3RzX21vZGlmaWNhdGlvbl9wcmVzZW50X2ZsYWc6ICVkCgBsb2cyX3BhcmFsbGVsX21lcmdlX2xldmVsICAgICAgOiAlZAoAbnVtX2V4dHJhX3NsaWNlX2hlYWRlcl9iaXRzICAgIDogJWQKAHNsaWNlX3NlZ21lbnRfaGVhZGVyX2V4dGVuc2lvbl9wcmVzZW50X2ZsYWcgOiAlZAoAcHBzX2V4dGVuc2lvbl9mbGFnICAgICAgICAgICAgOiAlZAoAcHBzX3JhbmdlX2V4dGVuc2lvbl9mbGFnICAgICAgOiAlZAoAcHBzX211bHRpbGF5ZXJfZXh0ZW5zaW9uX2ZsYWcgOiAlZAoAcHBzX2V4dGVuc2lvbl82Yml0cyAgICAgICAgICAgOiAlZAoATG9nMk1pbkN1UXBEZWx0YVNpemUgICAgICAgICAgOiAlZAoATG9nMk1pbkN1Q2hyb21hUXBPZmZzZXRTaXplIChSRXh0KSA6ICVkCgBMb2cyTWF4VHJhbnNmb3JtU2tpcFNpemUgICAgKFJFeHQpIDogJWQKAHNhby0lZAAxNXRocmVhZF90YXNrX3NhbwAxMXRocmVhZF90YXNrAFNFSSBkZWNvZGVkIHBpY3R1cmUgTUQ1IG1pc21hdGNoIChQT0M9JWQpCgBTRUkgZGVjb2RlZCBwaWN0dXJlIGhhc2g6ICUwNHgsIGRlY29kZWQgcGljdHVyZTogJTA0eCAoUE9DPSVkKQoAc2xpY2Utc2VnbWVudC0lZDslZABpbml0VHlwZSA+PSAwICYmIGluaXRUeXBlIDw9IDIAc2xpY2UuY2MAaW5pdGlhbGl6ZV9DQUJBQ19tb2RlbHMAZGVjb2RlX3BhcnRfbW9kZQAAAQICAgIDBQcICgwNDxESExQVFhcXGBgZGRobGxwcHR0eH3JlYWRfY29kaW5nX3VuaXQAUHJlZE1vZGUgPT0gY3VQcmVkTW9kZQByZWFkX3RyYW5zZm9ybV90cmVlAGNvbnRleHQgPj0gMCAmJiBjb250ZXh0IDw9IDIAZGVjb2RlX3NwbGl0X3RyYW5zZm9ybV9mbGFnACEodHJhZm9EZXB0aD09MCAmJiBsb2cyVHJhZm9TaXplPT0yKQBjYmZfY2IgIT0gLTEAcmVhZF90cmFuc2Zvcm1fdW5pdABjYmZfY3IgIT0gLTEAY2JmX2x1bWEgIT0gLTEAeDxzcHMuUGljV2lkdGhJbk1pblBVcwBzZXRfSW50cmFQcmVkTW9kZUMAeTxzcHMuUGljSGVpZ2h0SW5NaW5QVXMAaWR4PGludHJhUHJlZE1vZGVDLmRhdGFfc2l6ZQAyNXRocmVhZF90YXNrX3NsaWNlX3NlZ21lbnQAY3RiLXJvdy0lZAAxOXRocmVhZF90YXNrX2N0Yl9yb3cAcHBzLT5wcHNfcmVhZABkdW1wX3NsaWNlX3NlZ21lbnRfaGVhZGVyAHNwcy0+c3BzX3JlYWQALS0tLS0tLS0tLS0tLS0tLS0gU0xJQ0UgLS0tLS0tLS0tLS0tLS0tLS0KAGZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWcgICAgICA6ICVkCgBub19vdXRwdXRfb2ZfcHJpb3JfcGljc19mbGFnICAgICAgICAgOiAlZAoAc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQgICAgICAgICAgIDogJWQKAGRlcGVuZGVudF9zbGljZV9zZWdtZW50X2ZsYWcgICAgICAgICA6ICVkCgBzbGljZV9zZWdtZW50X2FkZHJlc3MgICAgICAgICAgICAgICAgOiAlZAoAc2xpY2VfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJWMKAHBpY19vdXRwdXRfZmxhZyAgICAgICAgICAgICAgICAgICAgICA6ICVkCgBjb2xvdXJfcGxhbmVfaWQgICAgICAgICAgICAgICAgICAgICAgOiAlZAoAc2xpY2VfcGljX29yZGVyX2NudF9sc2IgICAgICAgICAgICAgIDogJWQKAHNob3J0X3Rlcm1fcmVmX3BpY19zZXRfc3BzX2ZsYWcgICAgICA6ICVkCgBzaG9ydF90ZXJtX3JlZl9waWNfc2V0X2lkeCAgICAgICAgICAgOiAlZAoAbnVtX2xvbmdfdGVybV9zcHMgICAgICAgICAgICAgICAgICAgICAgICA6ICVkCgBudW1fbG9uZ190ZXJtX3BpY3MgICAgICAgICAgICAgICAgICAgICAgIDogJWQKAHNsaWNlX3RlbXBvcmFsX212cF9lbmFibGVkX2ZsYWcgOiAlZAoAc2xpY2Vfc2FvX2x1bWFfZmxhZyAgICAgICAgICAgICA6ICVkCgBzbGljZV9zYW9fY2hyb21hX2ZsYWcgICAgICAgICAgIDogJWQKAG51bV9yZWZfaWR4X2FjdGl2ZV9vdmVycmlkZV9mbGFnIDogJWQKAChmcm9tIFBQUykAbnVtX3JlZl9pZHhfbDBfYWN0aXZlICAgICAgICAgIDogJWQgJXMKAG51bV9yZWZfaWR4X2wxX2FjdGl2ZSAgICAgICAgICA6ICVkICVzCgByZWZfcGljX2xpc3RfbW9kaWZpY2F0aW9uX2ZsYWdfbDAgOiAlZAoAICAlZDogJWQKAHJlZl9waWNfbGlzdF9tb2RpZmljYXRpb25fZmxhZ19sMSA6ICVkCgBtdmRfbDFfemVyb19mbGFnICAgICAgICAgICAgICAgOiAlZAoAY2FiYWNfaW5pdF9mbGFnICAgICAgICAgICAgICAgIDogJWQKAGNvbGxvY2F0ZWRfZnJvbV9sMF9mbGFnICAgICAgICA6ICVkCgBjb2xsb2NhdGVkX3JlZl9pZHggICAgICAgICAgICAgOiAlZAoAbHVtYV9sb2cyX3dlaWdodF9kZW5vbSAgICAgICAgIDogJWQKAENocm9tYUxvZzJXZWlnaHREZW5vbSAgICAgICAgICA6ICVkCgBMdW1hV2VpZ2h0X0wlZFslZF0gICAgICAgICAgICAgOiAlZAoAbHVtYV9vZmZzZXRfbCVkWyVkXSAgICAgICAgICAgIDogJWQKAENocm9tYVdlaWdodF9MJWRbJWRdWyVkXSAgICAgICAgOiAlZAoAQ2hyb21hT2Zmc2V0X0wlZFslZF1bJWRdICAgICAgICA6ICVkCgBmaXZlX21pbnVzX21heF9udW1fbWVyZ2VfY2FuZCAgOiAlZAoAc2xpY2VfcXBfZGVsdGEgICAgICAgICA6ICVkCgBzbGljZV9jYl9xcF9vZmZzZXQgICAgIDogJWQKAHNsaWNlX2NyX3FwX29mZnNldCAgICAgOiAlZAoAZGVibG9ja2luZ19maWx0ZXJfb3ZlcnJpZGVfZmxhZyA6ICVkCgAob3ZlcnJpZGUpAChmcm9tIHBwcykAc2xpY2VfZGVibG9ja2luZ19maWx0ZXJfZGlzYWJsZWRfZmxhZyA6ICVkICVzCgBzbGljZV9iZXRhX29mZnNldCAgOiAlZAoAc2xpY2VfdGNfb2Zmc2V0ICAgIDogJWQKAHNsaWNlX2xvb3BfZmlsdGVyX2Fjcm9zc19zbGljZXNfZW5hYmxlZF9mbGFnIDogJWQKAG51bV9lbnRyeV9wb2ludF9vZmZzZXRzICAgIDogJWQKAG9mZnNldF9sZW4gICAgICAgICAgICAgICAgIDogJWQKAGVudHJ5IHBvaW50IFslaV0gOiAlZAoAAAEEBQIDBAUGBggIBwcIY2N0eElkeExvb2t1cFtsb2cydy0yXVtjSWR4XVtzY2FuSWR4XVtwcmV2Q3NiZl1beEMrKHlDPDxsb2cydyldID09IGN0eElkeEluYwBhbGxvY19hbmRfaW5pdF9zaWduaWZpY2FudF9jb2VmZl9jdHhJZHhfbG9va3VwVGFibGUAcmVmPDcAc3BzLmNjABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQERAREBESERISERIVExQVFBMVGBYWGBgWFhgZGRseGxkZHR8jIx8dJCksKSQvNjYvQUZBWFhzEBAQEBAQEBAQEBEREREREhISEhISFBQUFBQUFBgYGBgYGBgYGRkZGRkZGRwcHBwcHCEhISEhKSkpKTY2NkdHW2ZpbGxfc2NhbGluZ19mYWN0b3IAc2NhbGluZ19saXN0X3ByZWRfbWF0cml4X2lkX2RlbHRhPT0xAHJlYWRfc2NhbGluZ19saXN0AC0tLS0tLS0tLS0tLS0tLS0tIFNQUyAtLS0tLS0tLS0tLS0tLS0tLQoAdmlkZW9fcGFyYW1ldGVyX3NldF9pZCAgOiAlZAoAc3BzX21heF9zdWJfbGF5ZXJzICAgICAgOiAlZAoAc3BzX3RlbXBvcmFsX2lkX25lc3RpbmdfZmxhZyA6ICVkCgBzZXFfcGFyYW1ldGVyX3NldF9pZCAgICA6ICVkCgA0OjQ6NAB1bmtub3duAG1vbm9jaHJvbWUANDoyOjAANDoyOjIAY2hyb21hX2Zvcm1hdF9pZGMgICAgICAgOiAlZCAoJXMpCgBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyA6ICVkCgBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzICA6ICVkCgBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyA6ICVkCgBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyAgICA6ICVkCgBjb25mX3dpbl9sZWZ0X29mZnNldCAgOiAlZAoAY29uZl93aW5fcmlnaHRfb2Zmc2V0IDogJWQKAGNvbmZfd2luX3RvcF9vZmZzZXQgICA6ICVkCgBjb25mX3dpbl9ib3R0b21fb2Zmc2V0OiAlZAoAYml0X2RlcHRoX2x1bWEgICA6ICVkCgBiaXRfZGVwdGhfY2hyb21hIDogJWQKAGxvZzJfbWF4X3BpY19vcmRlcl9jbnRfbHNiIDogJWQKAHNwc19zdWJfbGF5ZXJfb3JkZXJpbmdfaW5mb19wcmVzZW50X2ZsYWcgOiAlZAoAbG9nMl9taW5fbHVtYV9jb2RpbmdfYmxvY2tfc2l6ZSA6ICVkCgBsb2cyX2RpZmZfbWF4X21pbl9sdW1hX2NvZGluZ19ibG9ja19zaXplIDogJWQKAGxvZzJfbWluX3RyYW5zZm9ybV9ibG9ja19zaXplICAgOiAlZAoAbG9nMl9kaWZmX21heF9taW5fdHJhbnNmb3JtX2Jsb2NrX3NpemUgOiAlZAoAbWF4X3RyYW5zZm9ybV9oaWVyYXJjaHlfZGVwdGhfaW50ZXIgOiAlZAoAbWF4X3RyYW5zZm9ybV9oaWVyYXJjaHlfZGVwdGhfaW50cmEgOiAlZAoAc2NhbGluZ19saXN0X2VuYWJsZV9mbGFnIDogJWQKAExheWVyICVkCgAgIHNwc19tYXhfZGVjX3BpY19idWZmZXJpbmcgICAgICA6ICVkCgAgIHNwc19tYXhfbnVtX3Jlb3JkZXJfcGljcyAgICAgICA6ICVkCgAgIHNwc19tYXhfbGF0ZW5jeV9pbmNyZWFzZV9wbHVzMSA6ICVkCgBzcHNfc2NhbGluZ19saXN0X2RhdGFfcHJlc2VudF9mbGFnIDogJWQKAHNjYWxpbmcgbGlzdCBsb2dnaW5nIG91dHB1dCBub3QgaW1wbGVtZW50ZWQAYW1wX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgICAgICAgOiAlZAoAc2FtcGxlX2FkYXB0aXZlX29mZnNldF9lbmFibGVkX2ZsYWcgOiAlZAoAcGNtX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgICAgICAgOiAlZAoAcGNtX3NhbXBsZV9iaXRfZGVwdGhfbHVtYSAgICAgOiAlZAoAcGNtX3NhbXBsZV9iaXRfZGVwdGhfY2hyb21hICAgOiAlZAoAbG9nMl9taW5fcGNtX2x1bWFfY29kaW5nX2Jsb2NrX3NpemUgOiAlZAoAbG9nMl9kaWZmX21heF9taW5fcGNtX2x1bWFfY29kaW5nX2Jsb2NrX3NpemUgOiAlZAoAcGNtX2xvb3BfZmlsdGVyX2Rpc2FibGVfZmxhZyAgOiAlZAoAbnVtX3Nob3J0X3Rlcm1fcmVmX3BpY19zZXRzIDogJWQKAGxvbmdfdGVybV9yZWZfcGljc19wcmVzZW50X2ZsYWcgOiAlZAoAcmVmX3BpY19zZXRbICUyZCBdOiAAbnVtX2xvbmdfdGVybV9yZWZfcGljc19zcHMgOiAlZAoAbHRfcmVmX3BpY19wb2NfbHNiX3Nwc1slZF0gOiAlZCAgICh1c2VkX2J5X2N1cnJfcGljX2x0X3Nwc19mbGFnPSVkKQoAc3BzX3RlbXBvcmFsX212cF9lbmFibGVkX2ZsYWcgICAgICA6ICVkCgBzdHJvbmdfaW50cmFfc21vb3RoaW5nX2VuYWJsZV9mbGFnIDogJWQKAHZ1aV9wYXJhbWV0ZXJzX3ByZXNlbnRfZmxhZyAgICAgICAgOiAlZAoAc3BzX2V4dGVuc2lvbl9wcmVzZW50X2ZsYWcgICAgOiAlZAoAc3BzX3JhbmdlX2V4dGVuc2lvbl9mbGFnICAgICAgOiAlZAoAc3BzX211bHRpbGF5ZXJfZXh0ZW5zaW9uX2ZsYWcgOiAlZAoAc3BzX2V4dGVuc2lvbl82Yml0cyAgICAgICAgICAgOiAlZAoAQ3RiU2l6ZVkgICAgIDogJWQKAE1pbkNiU2l6ZVkgICA6ICVkCgBNYXhDYlNpemVZICAgOiAlZAoATWluVEJTaXplWSAgIDogJWQKAE1heFRCU2l6ZVkgICA6ICVkCgBQaWNXaWR0aEluQ3Ric1kgICAgICAgICA6ICVkCgBQaWNIZWlnaHRJbkN0YnNZICAgICAgICA6ICVkCgBTdWJXaWR0aEMgICAgICAgICAgICAgICA6ICVkCgBTdWJIZWlnaHRDICAgICAgICAgICAgICA6ICVkCgAtLS0tLS0tLS0tLS0tLS0tLSBTUFMtcmFuZ2UtZXh0ZW5zaW9uIC0tLS0tLS0tLS0tLS0tLS0tCgB0cmFuc2Zvcm1fc2tpcF9yb3RhdGlvbl9lbmFibGVkX2ZsYWcgICAgOiAlZAoAdHJhbnNmb3JtX3NraXBfY29udGV4dF9lbmFibGVkX2ZsYWcgICAgIDogJWQKAGltcGxpY2l0X3JkcGNtX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICA6ICVkCgBleHBsaWNpdF9yZHBjbV9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgOiAlZAoAZXh0ZW5kZWRfcHJlY2lzaW9uX3Byb2Nlc3NpbmdfZmxhZyAgICAgIDogJWQKAGludHJhX3Ntb290aGluZ19kaXNhYmxlZF9mbGFnICAgICAgICAgICA6ICVkCgBoaWdoX3ByZWNpc2lvbl9vZmZzZXRzX2VuYWJsZWRfZmxhZyAgICAgOiAlZAoAcGVyc2lzdGVudF9yaWNlX2FkYXB0YXRpb25fZW5hYmxlZF9mbGFnIDogJWQKAGNhYmFjX2J5cGFzc19hbGlnbm1lbnRfZW5hYmxlZF9mbGFnICAgICA6ICVkCgB0cmFuc2Zvcm0uY2MAMABzY2FsZV9jb2VmZmljaWVudHNfaW50ZXJuYWwAcmRwY21Nb2RlPT0wAEVSUjogAElORk86IAB2cHMuY2MAYWxsb2NhdG9yPFQ+OjphbGxvY2F0ZShzaXplX3QgbikgJ24nIGV4Y2VlZHMgbWF4aW11bSBzdXBwb3J0ZWQgc2l6ZQBmaXJzdExheWVyUmVhZCA8IE1BWF9URU1QT1JBTF9TVUJMQVlFUlMAcmVhZAAtLS0tLS0tLS0tLS0tLS0tLSBWUFMgLS0tLS0tLS0tLS0tLS0tLS0KAHZpZGVvX3BhcmFtZXRlcl9zZXRfaWQgICAgICAgICAgICAgICAgOiAlZAoAdnBzX21heF9sYXllcnMgICAgICAgICAgICAgICAgICAgICAgICA6ICVkCgB2cHNfbWF4X3N1Yl9sYXllcnMgICAgICAgICAgICAgICAgICAgIDogJWQKAHZwc190ZW1wb3JhbF9pZF9uZXN0aW5nX2ZsYWcgICAgICAgICAgOiAlZAoAICBQcm9maWxlL1RpZXIvTGV2ZWwgW0xheWVyICVkXQoAdnBzX3N1Yl9sYXllcl9vcmRlcmluZ19pbmZvX3ByZXNlbnRfZmxhZyA6ICVkCgBsYXllciAlZDogdnBzX21heF9kZWNfcGljX2J1ZmZlcmluZyA9ICVkCgAgICAgICAgICB2cHNfbWF4X251bV9yZW9yZGVyX3BpY3MgID0gJWQKACAgICAgICAgIHZwc19tYXhfbGF0ZW5jeV9pbmNyZWFzZSAgPSAlZAoAbGF5ZXIgKGFsbCk6IHZwc19tYXhfZGVjX3BpY19idWZmZXJpbmcgPSAlZAoAICAgICAgICAgICAgIHZwc19tYXhfbnVtX3Jlb3JkZXJfcGljcyAgPSAlZAoAICAgICAgICAgICAgIHZwc19tYXhfbGF0ZW5jeV9pbmNyZWFzZSAgPSAlZAoAdnBzX21heF9sYXllcl9pZCAgID0gJWQKAHZwc19udW1fbGF5ZXJfc2V0cyA9ICVkCgB2cHNfdGltaW5nX2luZm9fcHJlc2VudF9mbGFnID0gJWQKAGxheWVyX2lkX2luY2x1ZGVkX2ZsYWdbJWRdWyVkXSA9ICVkCgB2cHNfbnVtX3VuaXRzX2luX3RpY2sgPSAlZAoAdnBzX3RpbWVfc2NhbGUgICAgICAgID0gJWQKAHZwc19wb2NfcHJvcG9ydGlvbmFsX3RvX3RpbWluZ19mbGFnID0gJWQKAHZwc19udW1fdGlja3NfcG9jX2RpZmZfb25lID0gJWQKAHZwc19udW1faHJkX3BhcmFtZXRlcnMgICAgID0gJWQKAGhyZF9sYXllcl9zZXRfaWR4WyVkXSA9ICVkCgB2cHNfZXh0ZW5zaW9uX2ZsYWcgPSAlZAoAZ2VuZXJhbABzdWJfbGF5ZXIAICAlc19wcm9maWxlX3NwYWNlICAgICA6ICVkCgAgICVzX3RpZXJfZmxhZyAgICAgICAgIDogJWQKACh1bmtub3duKQBGb3JtYXRSYW5nZUV4dGVuc2lvbnMATWFpblN0aWxsUGljdHVyZQBNYWluMTAATWFpbgAgICVzX3Byb2ZpbGVfaWRjICAgICAgIDogJXMKACAgJXNfcHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzOiAAKgoAICAgICVzX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnIDogJWQKACAgICAlc19pbnRlcmxhY2VkX3NvdXJjZV9mbGFnIDogJWQKACAgICAlc19ub25fcGFja2VkX2NvbnN0cmFpbnRfZmxhZyA6ICVkCgAgICAgJXNfZnJhbWVfb25seV9jb25zdHJhaW50X2ZsYWcgOiAlZAoAKiwAKiVkACAgJXNfbGV2ZWxfaWRjICAgICAgICAgOiAlZCAoJTQuMmYpCgB1bnNwZWNpZmllZABNQUMAU0VDQU0ATlRTQwBQQUwAY29tcG9uZW50AC0tLS0tLS0tLS0tLS0tLS0tIFZVSSAtLS0tLS0tLS0tLS0tLS0tLQoAc2FtcGxlIGFzcGVjdCByYXRpbyAgICAgICAgOiAlZDolZAoAb3ZlcnNjYW5faW5mb19wcmVzZW50X2ZsYWcgOiAlZAoAb3ZlcnNjYW5fYXBwcm9wcmlhdGVfZmxhZyAgOiAlZAoAdmlkZW9fc2lnbmFsX3R5cGVfcHJlc2VudF9mbGFnOiAlZAoAICB2aWRlb19mb3JtYXQgICAgICAgICAgICAgICAgOiAlcwoAICB2aWRlb19mdWxsX3JhbmdlX2ZsYWcgICAgICAgOiAlZAoAICBjb2xvdXJfZGVzY3JpcHRpb25fcHJlc2VudF9mbGFnIDogJWQKACAgY29sb3VyX3ByaW1hcmllcyAgICAgICAgICAgIDogJWQKACAgdHJhbnNmZXJfY2hhcmFjdGVyaXN0aWNzICAgIDogJWQKACAgbWF0cml4X2NvZWZmcyAgICAgICAgICAgICAgIDogJWQKAGNocm9tYV9sb2NfaW5mb19wcmVzZW50X2ZsYWc6ICVkCgAgIGNocm9tYV9zYW1wbGVfbG9jX3R5cGVfdG9wX2ZpZWxkICAgOiAlZAoAICBjaHJvbWFfc2FtcGxlX2xvY190eXBlX2JvdHRvbV9maWVsZDogJWQKAG5ldXRyYWxfY2hyb21hX2luZGljYXRpb25fZmxhZzogJWQKAGZpZWxkX3NlcV9mbGFnICAgICAgICAgICAgICAgIDogJWQKAGZyYW1lX2ZpZWxkX2luZm9fcHJlc2VudF9mbGFnIDogJWQKAGRlZmF1bHRfZGlzcGxheV93aW5kb3dfZmxhZyAgIDogJWQKACAgZGVmX2Rpc3Bfd2luX2xlZnRfb2Zmc2V0ICAgIDogJWQKACAgZGVmX2Rpc3Bfd2luX3JpZ2h0X29mZnNldCAgIDogJWQKACAgZGVmX2Rpc3Bfd2luX3RvcF9vZmZzZXQgICAgIDogJWQKACAgZGVmX2Rpc3Bfd2luX2JvdHRvbV9vZmZzZXQgIDogJWQKAHZ1aV90aW1pbmdfaW5mb19wcmVzZW50X2ZsYWcgIDogJWQKACAgdnVpX251bV91bml0c19pbl90aWNrICAgICAgIDogJWQKACAgdnVpX3RpbWVfc2NhbGUgICAgICAgICAgICAgIDogJWQKAHZ1aV9wb2NfcHJvcG9ydGlvbmFsX3RvX3RpbWluZ19mbGFnIDogJWQKAHZ1aV9udW1fdGlja3NfcG9jX2RpZmZfb25lICAgICAgICAgIDogJWQKAHZ1aV9ocmRfcGFyYW1ldGVyc19wcmVzZW50X2ZsYWcgOiAlZAoAYml0c3RyZWFtX3Jlc3RyaWN0aW9uX2ZsYWcgICAgICAgICA6ICVkCgAgIHRpbGVzX2ZpeGVkX3N0cnVjdHVyZV9mbGFnICAgICAgIDogJWQKACAgbW90aW9uX3ZlY3RvcnNfb3Zlcl9waWNfYm91bmRhcmllc19mbGFnIDogJWQKACAgcmVzdHJpY3RlZF9yZWZfcGljX2xpc3RzX2ZsYWcgICAgOiAlZAoAICBtaW5fc3BhdGlhbF9zZWdtZW50YXRpb25faWRjICAgICA6ICVkCgAgIG1heF9ieXRlc19wZXJfcGljX2Rlbm9tICAgICAgICAgIDogJWQKACAgbWF4X2JpdHNfcGVyX21pbl9jdV9kZW5vbSAgICAgICAgOiAlZAoAICBsb2cyX21heF9tdl9sZW5ndGhfaG9yaXpvbnRhbCAgICA6ICVkCgAgIGxvZzJfbWF4X212X2xlbmd0aF92ZXJ0aWNhbCAgICAgIDogJWQKAGJpdHN0cmVhbS5jYwB2YWx1ZT4wAGdldF91dmxjAICw0PCAp8XjgJ672HuWss10jqnDb4eguWmAmK9kepCmX3SJnlpugpZVaHuOUWN1h01eb4BJWWl6RVVkdEJQX24+TFpoO0hWYzhFUV41QU1ZMz5JVTA7RVAuOEJMKzU/SCkyO0UnMDhBJS02PiMrMzshKTA4ICcuNR4lKzIdIykwGyEnLRofJSsYHiMpFxwhJxYbICUVGh4jFBgdIRMXGx8SFhoeERUZHBAUFxsPExYZDhIVGA4RFBcNEBMWDA8SFQwOERQLDhATCw0PEgoMDxEKDA4QCQsNDwkLDA4ICgwOCAkLDQcJCwwHCQoMBwgKCwYICQsGBwkKBgcICQICAgIGBQQEAwMDAwICAgICAgICAQEBAQEBAQEBAQEBAQEBAQAAAQICBAQFBgcICQkLCwwNDQ8PEBASEhMTFRUWFhcYGBkaGhsbHB0dHh4eHyAgISEhIiIjIyMkJCQlJSUmJj8BAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj4/Y2FiYWMuY2MAbGVuZ3RoID49IDAAaW5pdF9DQUJBQ19kZWNvZGVyACVwIGMndG9yID0gJXAKACVwIGRlc3RydWN0b3IKAG1mcmVlICVwCgAlcCBpbml0CgAqcmVmY250PjEAY29udGV4dG1vZGVsLmNjAGRlY291cGxlX29yX2FsbG9jX3dpdGhfZW1wdHlfZGF0YQAlcCAoYWxsb2MpCgBtb2RlbFtpXS5zdGF0ZSA8PSA2MgBzZXRfaW5pdFZhbHVlACVwIHJlbGVhc2UgJXAKACVwIGRlY291cGxlICglcCkKAHJlZmNudABkZWNvdXBsZQAlcCBhc3NpZ24gPSAlcAoAZGVibG9jay0lZAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQECAgICAwMDAwQEBAUFBgYHCAkKCw0OEBIUFhgAAAAAAAAAAAAAAAAAAAAABgcICQoLDA0ODxAREhQWGBocHiAiJCYoKiwuMDI0Njg6PD5AcmVmUGljUTA9PXJlZlBpY1ExAGRlYmxvY2suY2MAZGVyaXZlX2JvdW5kYXJ5U3RyZW5ndGgAMjZ0aHJlYWRfdGFza19kZWJsb2NrX0NUQlJvdwBpbnRyYXByZWQuY2MAaW50cmFQcmVkTW9kZTwzNQBpbnRyYV9wcmVkaWN0aW9uX2FuZ3VsYXIAaW50cmFQcmVkTW9kZT49MgBpbnRyYV9wcmVkaWN0aW9uX3NhbXBsZV9maWx0ZXJpbmcAc2hkci0+c2xpY2VfdHlwZSA9PSBTTElDRV9UWVBFX0IAbW90aW9uLmNjAGdlbmVyYXRlX2ludGVyX3ByZWRpY3Rpb25fc2FtcGxlcwBtY19jaHJvbWEAdW5pdFggPj0gMCAmJiB1bml0WCA8IHdpZHRoX2luX3VuaXRzAC4uL2xpYmRlMjY1L2ltYWdlLmgAZ2V0AHVuaXRZID49IDAgJiYgdW5pdFkgPCBoZWlnaHRfaW5fdW5pdHMAY3R4LT5oYXNfaW1hZ2UoY29sUGljKQBkZXJpdmVfY29sbG9jYXRlZF9tb3Rpb25fdmVjdG9ycwBkZXJpdmVfY29tYmluZWRfYmlwcmVkaWN0aXZlX21lcmdpbmdfY2FuZGlkYXRlcwByZWZQaWNMaXN0Pj0wAGRlcml2ZV9zcGF0aWFsX2x1bWFfdmVjdG9yX3ByZWRpY3Rpb24AbnVtTVZQQ2FuZExYPT0yAGZpbGxfbHVtYV9tb3Rpb25fdmVjdG9yX3ByZWRpY3RvcnMAUklkeD49MAByZWZwaWMuY2MAcmVhZF9zaG9ydF90ZXJtX3JlZl9waWNfc2V0AFJJZHggPj0gMCAmJiBSSWR4IDwgc2V0cy5zaXplKCkAaj49MCAmJiBqIDwgTUFYX05VTV9SRUZfUElDUwAqJWQlYyAAKiVzCgB2b2lkAGJvb2wAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AGludAB1bnNpZ25lZCBpbnQAbG9uZwB1bnNpZ25lZCBsb25nAGZsb2F0AGRvdWJsZQBzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABEwkLCwAACQYLAAALAAYRAAAAERERAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAADQAAAAQNAAAAAAkOAAAAAAAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEhISAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAACgAAAAAKAAAAAAkLAAAAAAALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBOQU4AMDEyMzQ1Njc4OUFCQ0RFRi4AVCEiGQ0BAgMRSxwMEAQLHRIeJ2hub3BxYiAFBg8TFBUaCBYHKCQXGAkKDhsfJSODgn0mKis8PT4/Q0dKTVhZWltcXV5fYGFjZGVmZ2lqa2xyc3R5ent8AElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAAD/////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wABAgQHAwYFAGluZmluaXR5AG5hbgBMQ19BTEwATENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVMATEFORwBDLlVURi04AFBPU0lYAE1VU0xfTE9DUEFUSABOU3QzX18yOGlvc19iYXNlRQBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBOU3QzX18yOWJhc2ljX2lvc0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFAE5TdDNfXzIxM2Jhc2ljX2lzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjEzYmFzaWNfaXN0cmVhbUl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzIxM2Jhc2ljX29zdHJlYW1Jd05TXzExY2hhcl90cmFpdHNJd0VFRUUATlN0M19fMjE0YmFzaWNfaW9zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjExX19zdGRvdXRidWZJd0VFAE5TdDNfXzIxMV9fc3Rkb3V0YnVmSWNFRQB1bnN1cHBvcnRlZCBsb2NhbGUgZm9yIHN0YW5kYXJkIGlucHV0AE5TdDNfXzIxMF9fc3RkaW5idWZJd0VFAE5TdDNfXzIxMF9fc3RkaW5idWZJY0VFAE5TdDNfXzI3Y29sbGF0ZUljRUUATlN0M19fMjZsb2NhbGU1ZmFjZXRFAE5TdDNfXzI3Y29sbGF0ZUl3RUUAMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRnhYKy1wUGlJbk4AJXAAQwBOU3QzX18yN251bV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzI5X19udW1fZ2V0SWNFRQBOU3QzX18yMTRfX251bV9nZXRfYmFzZUUATlN0M19fMjdudW1fZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yOV9fbnVtX2dldEl3RUUAJXAAAAAATABsbAAlAAAAAABsAE5TdDNfXzI3bnVtX3B1dEljTlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjlfX251bV9wdXRJY0VFAE5TdDNfXzIxNF9fbnVtX3B1dF9iYXNlRQBOU3QzX18yN251bV9wdXRJd05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzI5X19udW1fcHV0SXdFRQAlSDolTTolUwAlbS8lZC8leQAlSTolTTolUyAlcAAlYSAlYiAlZCAlSDolTTolUyAlWQBBTQBQTQBKYW51YXJ5AEZlYnJ1YXJ5AE1hcmNoAEFwcmlsAE1heQBKdW5lAEp1bHkAQXVndXN0AFNlcHRlbWJlcgBPY3RvYmVyAE5vdmVtYmVyAERlY2VtYmVyAEphbgBGZWIATWFyAEFwcgBKdW4ASnVsAEF1ZwBTZXAAT2N0AE5vdgBEZWMAU3VuZGF5AE1vbmRheQBUdWVzZGF5AFdlZG5lc2RheQBUaHVyc2RheQBGcmlkYXkAU2F0dXJkYXkAU3VuAE1vbgBUdWUAV2VkAFRodQBGcmkAU2F0ACVtLyVkLyV5JVktJW0tJWQlSTolTTolUyAlcCVIOiVNJUg6JU06JVMlSDolTTolU05TdDNfXzI4dGltZV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIyMF9fdGltZV9nZXRfY19zdG9yYWdlSWNFRQBOU3QzX18yOXRpbWVfYmFzZUUATlN0M19fMjh0aW1lX2dldEl3TlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjIwX190aW1lX2dldF9jX3N0b3JhZ2VJd0VFAE5TdDNfXzI4dGltZV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMF9fdGltZV9wdXRFAE5TdDNfXzI4dGltZV9wdXRJd05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJY0xiMEVFRQBOU3QzX18yMTBtb25leV9iYXNlRQBOU3QzX18yMTBtb25leXB1bmN0SWNMYjFFRUUATlN0M19fMjEwbW9uZXlwdW5jdEl3TGIwRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMUVFRQAwMTIzNDU2Nzg5ACVMZgBOU3QzX18yOW1vbmV5X2dldEljTlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjExX19tb25leV9nZXRJY0VFADAxMjM0NTY3ODkATlN0M19fMjltb25leV9nZXRJd05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfZ2V0SXdFRQAlLjBMZgBOU3QzX18yOW1vbmV5X3B1dEljTlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjExX19tb25leV9wdXRJY0VFAE5TdDNfXzI5bW9uZXlfcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTFfX21vbmV5X3B1dEl3RUUATlN0M19fMjhtZXNzYWdlc0ljRUUATlN0M19fMjEzbWVzc2FnZXNfYmFzZUUATlN0M19fMjE3X193aWRlbl9mcm9tX3V0ZjhJTGozMkVFRQBOU3QzX18yN2NvZGVjdnRJRGljMTFfX21ic3RhdGVfdEVFAE5TdDNfXzIxMmNvZGVjdnRfYmFzZUUATlN0M19fMjE2X19uYXJyb3dfdG9fdXRmOElMajMyRUVFAE5TdDNfXzI4bWVzc2FnZXNJd0VFAE5TdDNfXzI3Y29kZWN2dEljYzExX19tYnN0YXRlX3RFRQBOU3QzX18yN2NvZGVjdnRJd2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjdjb2RlY3Z0SURzYzExX19tYnN0YXRlX3RFRQBOU3QzX18yNmxvY2FsZTVfX2ltcEUATlN0M19fMjVjdHlwZUljRUUATlN0M19fMjEwY3R5cGVfYmFzZUUATlN0M19fMjVjdHlwZUl3RUUAZmFsc2UAdHJ1ZQBOU3QzX18yOG51bXB1bmN0SWNFRQBOU3QzX18yOG51bXB1bmN0SXdFRQBOU3QzX18yMTRfX3NoYXJlZF9jb3VudEUATlN0M19fMjE5X19zaGFyZWRfd2Vha19jb3VudEUAYmFkX3dlYWtfcHRyAE5TdDNfXzIxMmJhZF93ZWFrX3B0ckUAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlczogJXMAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGZvcmVpZ24gZXhjZXB0aW9uAHRlcm1pbmF0aW5nAHVuY2F1Z2h0AFN0OWV4Y2VwdGlvbgBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQBTdDl0eXBlX2luZm8ATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQBwdGhyZWFkX29uY2UgZmFpbHVyZSBpbiBfX2N4YV9nZXRfZ2xvYmFsc19mYXN0KCkAY2Fubm90IGNyZWF0ZSBwdGhyZWFkIGtleSBmb3IgX19jeGFfZ2V0X2dsb2JhbHMoKQBjYW5ub3QgemVybyBvdXQgdGhyZWFkIHZhbHVlIGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZABTdDExbG9naWNfZXJyb3IAU3QxMmxlbmd0aF9lcnJvcgBOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTIzX19mdW5kYW1lbnRhbF90eXBlX2luZm9FAHYARG4AYgBjAGgAYQBzAHQAaQBqAG0AZgBkAE4xMF9fY3h4YWJpdjExNl9fZW51bV90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0U=\\\"),staticInit:function(){yA.isWindows=!!process.platform.match(/^win/)},mount:function(A){return h(o),yA.createNode(null,\\\"/\\\",yA.getMode(A.opts.root),0)},createNode:function(A,e,r,i){if(!EA.isDir(r)&&!EA.isFile(r)&&!EA.isLink(r))throw new EA.ErrnoError(hA.EINVAL);var f=EA.createNode(A,e,r);return f.node_ops=yA.node_ops,f.stream_ops=yA.stream_ops,f},getMode:function(A){var e;try{e=ur.lstatSync(A),yA.isWindows&&(e.mode=e.mode|(146&e.mode)>>1)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}return e.mode},realPath:function(A){for(var e=[];A.parent!==A;)e.push(A.name),A=A.parent;return e.push(A.mount.opts.root),e.reverse(),mA.join.apply(null,e)},flagsToPermissionStringMap:{0:\\\"r\\\",1:\\\"r+\\\",2:\\\"r+\\\",64:\\\"r\\\",65:\\\"r+\\\",66:\\\"r+\\\",129:\\\"rx+\\\",193:\\\"rx+\\\",514:\\\"w+\\\",577:\\\"w\\\",578:\\\"w+\\\",705:\\\"wx\\\",706:\\\"wx+\\\",1024:\\\"a\\\",1025:\\\"a\\\",1026:\\\"a+\\\",1089:\\\"a\\\",1090:\\\"a+\\\",1153:\\\"ax\\\",1154:\\\"ax+\\\",1217:\\\"ax\\\",1218:\\\"ax+\\\",4096:\\\"rs\\\",4098:\\\"rs+\\\"},flagsToPermissionString:function(A){if(A&=-2097153,A&=-2049,A&=-32769,(A&=-524289)in yA.flagsToPermissionStringMap)return yA.flagsToPermissionStringMap[A];throw new EA.ErrnoError(hA.EINVAL)},node_ops:{getattr:function(A){var e,r=yA.realPath(A);try{e=ur.lstatSync(r)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}return yA.isWindows&&!e.blksize&&(e.blksize=4096),yA.isWindows&&!e.blocks&&(e.blocks=(e.size+e.blksize-1)/e.blksize|0),{dev:e.dev,ino:e.ino,mode:e.mode,nlink:e.nlink,uid:e.uid,gid:e.gid,rdev:e.rdev,size:e.size,atime:e.atime,mtime:e.mtime,ctime:e.ctime,blksize:e.blksize,blocks:e.blocks}},setattr:function(A,e){var r=yA.realPath(A);try{if(void 0!==e.mode&&(ur.chmodSync(r,e.mode),A.mode=e.mode),void 0!==e.timestamp){var i=new Date(e.timestamp);ur.utimesSync(r,i,i)}void 0!==e.size&&ur.truncateSync(r,e.size)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},lookup:function(A,e){var r=mA.join2(yA.realPath(A),e),i=yA.getMode(r);return yA.createNode(A,e,i)},mknod:function(A,e,r,i){var f=yA.createNode(A,e,r,i),n=yA.realPath(f);try{EA.isDir(f.mode)?ur.mkdirSync(n,f.mode):ur.writeFileSync(n,\\\"\\\",{mode:f.mode})}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}return f},rename:function(A,e,r){var i=yA.realPath(A),f=mA.join2(yA.realPath(e),r);try{ur.renameSync(i,f)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},unlink:function(A,e){var r=mA.join2(yA.realPath(A),e);try{ur.unlinkSync(r)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},rmdir:function(A,e){var r=mA.join2(yA.realPath(A),e);try{ur.rmdirSync(r)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},readdir:function(A){var e=yA.realPath(A);try{return ur.readdirSync(e)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},symlink:function(A,e,r){var i=mA.join2(yA.realPath(A),e);try{ur.symlinkSync(r,i)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},readlink:function(A){var e=yA.realPath(A);try{return e=ur.readlinkSync(e),e=br.relative(br.resolve(A.mount.opts.root),e)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}}},stream_ops:{open:function(A){var e=yA.realPath(A.node);try{EA.isFile(A.node.mode)&&(A.nfd=ur.openSync(e,yA.flagsToPermissionString(A.flags)))}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},close:function(A){try{EA.isFile(A.node.mode)&&A.nfd&&ur.closeSync(A.nfd)}catch(A){if(!A.code)throw A;throw new EA.ErrnoError(hA[A.code])}},read:function(A,e,r,i,f){if(0===i)return 0;var n,t=new Buffer(i);try{n=ur.readSync(A.nfd,t,0,i,f)}catch(A){throw new EA.ErrnoError(hA[A.code])}if(0=A.node.size)return 0;var n=A.node.contents.slice(f,f+i),t=BA.reader.readAsArrayBuffer(n);return e.set(new Uint8Array(t),r),n.size},write:function(A,e,r,i,f){throw new EA.ErrnoError(hA.EIO)},llseek:function(A,e,r){var i=e;if(1===r?i+=A.position:2===r&&EA.isFile(A.node.mode)&&(i+=A.node.size),i<0)throw new EA.ErrnoError(hA.EINVAL);return i}}};R+=16,R+=16,R+=16;var EA={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:\\\"/\\\",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(A){if(!(A instanceof EA.ErrnoError))throw A+\\\" : \\\"+p();return wA(A.errno)},lookupPath:function(A,e){if(e=e||{},!(A=mA.resolve(EA.cwd(),A)))return{path:\\\"\\\",node:null};var r={follow_mount:!0,recurse_count:0};for(var i in r)void 0===e[i]&&(e[i]=r[i]);if(8>>0)%EA.nameTable.length},hashAddNode:function(A){var e=EA.hashName(A.parent.id,A.name);A.name_next=EA.nameTable[e],EA.nameTable[e]=A},hashRemoveNode:function(A){var e=EA.hashName(A.parent.id,A.name);if(EA.nameTable[e]===A)EA.nameTable[e]=A.name_next;else for(var r=EA.nameTable[e];r;){if(r.name_next===A){r.name_next=A.name_next;break}r=r.name_next}},lookupNode:function(A,e){var r=EA.mayLookup(A);if(r)throw new EA.ErrnoError(r,A);for(var i=EA.hashName(A.id,e),f=EA.nameTable[i];f;f=f.name_next){var n=f.name;if(f.parent.id===A.id&&n===e)return f}return EA.lookup(A,e)},createNode:function(A,e,r,i){if(!EA.FSNode){EA.FSNode=function(A,e,r,i){A=A||this,this.parent=A,this.mount=A.mount,this.mounted=null,this.id=EA.nextInode++,this.name=e,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=i},EA.FSNode.prototype={};Object.defineProperties(EA.FSNode.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(A){A?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(A){A?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return EA.isDir(this.mode)}},isDevice:{get:function(){return EA.isChrdev(this.mode)}}})}var f=new EA.FSNode(A,e,r,i);return EA.hashAddNode(f),f},destroyNode:function(A){EA.hashRemoveNode(A)},isRoot:function(A){return A===A.parent},isMountpoint:function(A){return!!A.mounted},isFile:function(A){return 32768==(61440&A)},isDir:function(A){return 16384==(61440&A)},isLink:function(A){return 40960==(61440&A)},isChrdev:function(A){return 8192==(61440&A)},isBlkdev:function(A){return 24576==(61440&A)},isFIFO:function(A){return 4096==(61440&A)},isSocket:function(A){return 49152==(49152&A)},flagModes:{r:0,rs:1052672,\\\"r+\\\":2,w:577,wx:705,xw:705,\\\"w+\\\":578,\\\"wx+\\\":706,\\\"xw+\\\":706,a:1089,ax:1217,xa:1217,\\\"a+\\\":1090,\\\"ax+\\\":1218,\\\"xa+\\\":1218},modeStringToFlags:function(A){var e=EA.flagModes[A];if(void 0===e)throw new Error(\\\"Unknown file open mode: \\\"+A);return e},flagsToPermissionString:function(A){var e=[\\\"r\\\",\\\"w\\\",\\\"rw\\\"][3&A];return 512&A&&(e+=\\\"w\\\"),e},nodePermissions:function(A,e){return EA.ignorePermissions||(-1===e.indexOf(\\\"r\\\")||292&A.mode)&&(-1===e.indexOf(\\\"w\\\")||146&A.mode)&&(-1===e.indexOf(\\\"x\\\")||73&A.mode)?0:hA.EACCES},mayLookup:function(A){var e=EA.nodePermissions(A,\\\"x\\\");return e||(A.node_ops.lookup?0:hA.EACCES)},mayCreate:function(A,e){try{EA.lookupNode(A,e);return hA.EEXIST}catch(A){}return EA.nodePermissions(A,\\\"wx\\\")},mayDelete:function(A,e,r){var i;try{i=EA.lookupNode(A,e)}catch(A){return A.errno}var f=EA.nodePermissions(A,\\\"wx\\\");if(f)return f;if(r){if(!EA.isDir(i.mode))return hA.ENOTDIR;if(EA.isRoot(i)||EA.getPath(i)===EA.cwd())return hA.EBUSY}else if(EA.isDir(i.mode))return hA.EISDIR;return 0},mayOpen:function(A,e){return A?EA.isLink(A.mode)?hA.ELOOP:EA.isDir(A.mode)&&(\\\"r\\\"!==EA.flagsToPermissionString(e)||512&e)?hA.EISDIR:EA.nodePermissions(A,EA.flagsToPermissionString(e)):hA.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(A,e){A=A||0,e=e||EA.MAX_OPEN_FDS;for(var r=A;r<=e;r++)if(!EA.streams[r])return r;throw new EA.ErrnoError(hA.EMFILE)},getStream:function(A){return EA.streams[A]},createStream:function(A,e,r){EA.FSStream||(EA.FSStream=function(){},EA.FSStream.prototype={},Object.defineProperties(EA.FSStream.prototype,{object:{get:function(){return this.node},set:function(A){this.node=A}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var i=new EA.FSStream;for(var f in A)i[f]=A[f];A=i;var n=EA.nextfd(e,r);return A.fd=n,EA.streams[n]=A},closeStream:function(A){EA.streams[A]=null},chrdev_stream_ops:{open:function(A){var e=EA.getDevice(A.node.rdev);A.stream_ops=e.stream_ops,A.stream_ops.open&&A.stream_ops.open(A)},llseek:function(){throw new EA.ErrnoError(hA.ESPIPE)}},major:function(A){return A>>8},minor:function(A){return 255&A},makedev:function(A,e){return A<<8|e},registerDevice:function(A,e){EA.devices[A]={stream_ops:e}},getDevice:function(A){return EA.devices[A]},getMounts:function(A){for(var e=[],r=[A];r.length;){var i=r.pop();e.push(i),r.push.apply(r,i.mounts)}return e},syncfs:function(e,r){\\\"function\\\"==typeof e&&(r=e,e=!1),EA.syncFSRequests++,1=i.length&&n(null)}i.forEach(function(A){if(!A.type.syncfs)return t(null);A.type.syncfs(A,e,t)})},mount:function(A,e,r){var i,f=\\\"/\\\"===r,n=!r;if(f&&EA.root)throw new EA.ErrnoError(hA.EBUSY);if(!f&&!n){var t=EA.lookupPath(r,{follow_mount:!1});if(r=t.path,i=t.node,EA.isMountpoint(i))throw new EA.ErrnoError(hA.EBUSY);if(!EA.isDir(i.mode))throw new EA.ErrnoError(hA.ENOTDIR)}var o={type:A,opts:e,mountpoint:r,mounts:[]},a=A.mount(o);return(a.mount=o).root=a,f?EA.root=a:i&&(i.mounted=o,i.mount&&i.mount.mounts.push(o)),a},unmount:function(A){var e=EA.lookupPath(A,{follow_mount:!1});if(!EA.isMountpoint(e.node))throw new EA.ErrnoError(hA.EINVAL);var r=e.node,i=r.mounted,f=EA.getMounts(i);Object.keys(EA.nameTable).forEach(function(A){for(var e=EA.nameTable[A];e;){var r=e.name_next;-1!==f.indexOf(e.mount)&&EA.destroyNode(e),e=r}}),r.mounted=null;var n=r.mount.mounts.indexOf(i);h(-1!==n),r.mount.mounts.splice(n,1)},lookup:function(A,e){return A.node_ops.lookup(A,e)},mknod:function(A,e,r){var i=EA.lookupPath(A,{parent:!0}).node,f=mA.basename(A);if(!f||\\\".\\\"===f||\\\"..\\\"===f)throw new EA.ErrnoError(hA.EINVAL);var n=EA.mayCreate(i,f);if(n)throw new EA.ErrnoError(n);if(!i.node_ops.mknod)throw new EA.ErrnoError(hA.EPERM);return i.node_ops.mknod(i,f,e,r)},create:function(A,e){return e=void 0!==e?e:438,e&=4095,e|=32768,EA.mknod(A,e,0)},mkdir:function(A,e){return e=void 0!==e?e:511,e&=1023,e|=16384,EA.mknod(A,e,0)},mkdirTree:function(A,e){for(var r=A.split(\\\"/\\\"),i=\\\"\\\",f=0;f\\\"}))},staticInit:function(){EA.ensureErrnoError(),EA.nameTable=new Array(4096),EA.mount(ZA,{},\\\"/\\\"),EA.createDefaultDirectories(),EA.createDefaultDevices(),EA.createSpecialDirectories(),EA.filesystems={MEMFS:ZA,IDBFS:pA,NODEFS:yA,WORKERFS:BA}},init:function(A,e,r){h(!EA.init.initialized,\\\"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\\\"),EA.init.initialized=!0,EA.ensureErrnoError(),d.stdin=A||d.stdin,d.stdout=e||d.stdout,d.stderr=r||d.stderr,EA.createStandardStreams()},quit:function(){EA.init.initialized=!1;var A=d._fflush;A&&A(0);for(var e=0;ethis.length-1||A<0)){var e=A%this.chunkSize,r=A/this.chunkSize|0;return this.getter(r)[e]}},f.prototype.setDataGetter=function(A){this.getter=A},f.prototype.cacheLength=function(){var A=new XMLHttpRequest;if(A.open(\\\"HEAD\\\",o,!1),A.send(null),!(200<=A.status&&A.status<300||304===A.status))throw new Error(\\\"Couldn't load \\\"+o+\\\". Status: \\\"+A.status);var e,i=Number(A.getResponseHeader(\\\"Content-length\\\")),r=(e=A.getResponseHeader(\\\"Accept-Ranges\\\"))&&\\\"bytes\\\"===e,f=(e=A.getResponseHeader(\\\"Content-Encoding\\\"))&&\\\"gzip\\\"===e,n=1048576;r||(n=i);var t=this;t.setDataGetter(function(A){var e=A*n,r=(A+1)*n-1;if(r=Math.min(r,i-1),void 0===t.chunks[A]&&(t.chunks[A]=function(A,e){if(e=n.length)return 0;var t=Math.min(n.length-f,i);if(h(0<=t),n.slice)for(var o=0;o>2]=i.dev,I[r+4>>2]=0,I[r+8>>2]=i.ino,I[r+12>>2]=i.mode,I[r+16>>2]=i.nlink,I[r+20>>2]=i.uid,I[r+24>>2]=i.gid,I[r+28>>2]=i.rdev,I[r+32>>2]=0,I[r+36>>2]=i.size,I[r+40>>2]=4096,I[r+44>>2]=i.blocks,I[r+48>>2]=i.atime.getTime()/1e3|0,I[r+52>>2]=0,I[r+56>>2]=i.mtime.getTime()/1e3|0,I[r+60>>2]=0,I[r+64>>2]=i.ctime.getTime()/1e3|0,I[r+68>>2]=0,I[r+72>>2]=i.ino,0},doMsync:function(A,e,r,i){var f=new Uint8Array(E.subarray(A,A+r));EA.msync(e,f,0,r,i)},doMkdir:function(A,e){return\\\"/\\\"===(A=mA.normalize(A))[A.length-1]&&(A=A.substr(0,A.length-1)),EA.mkdir(A,e,0),0},doMknod:function(A,e,r){switch(61440&e){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-hA.EINVAL}return EA.mknod(A,e,r),0},doReadlink:function(A,e,r){if(r<=0)return-hA.EINVAL;var i=EA.readlink(A),f=Math.min(r,Z(i)),n=B[e+f];return s(i,e,r+1),B[e+f]=n,f},doAccess:function(A,e){if(-8&e)return-hA.EINVAL;var r;r=EA.lookupPath(A,{follow:!0}).node;var i=\\\"\\\";return 4&e&&(i+=\\\"r\\\"),2&e&&(i+=\\\"w\\\"),1&e&&(i+=\\\"x\\\"),i&&EA.nodePermissions(r,i)?-hA.EACCES:0},doDup:function(A,e,r){var i=EA.getStream(r);return i&&EA.close(i),EA.open(A,e,0,r,r).fd},doReadv:function(A,e,r,i){for(var f=0,n=0;n>2],o=I[e+(8*n+4)>>2],a=EA.read(A,B,t,o,i);if(a<0)return-1;if(f+=a,a>2],o=I[e+(8*n+4)>>2],a=EA.write(A,B,t,o,i);if(a<0)return-1;f+=a}return f},varargs:0,get:function(A){return XA.varargs+=4,I[XA.varargs-4>>2]},getStr:function(){return g(XA.get())},getStreamFromFD:function(){var A=EA.getStream(XA.get());if(!A)throw new EA.ErrnoError(hA.EBADF);return A},getSocketFromFD:function(){var A=SOCKFS.getSocket(XA.get());if(!A)throw new EA.ErrnoError(hA.EBADF);return A},getSocketAddress:function(A){var e=XA.get(),r=XA.get();if(A&&0===e)return null;var i=__read_sockaddr(e,r);if(i.errno)throw new EA.ErrnoError(i.errno);return i.addr=DNS.lookup_addr(i.addr)||i.addr,i},get64:function(){var A=XA.get(),e=XA.get();return h(0<=A?0===e:-1===e),A},getZero:function(){h(0===XA.get())}};var WA=a([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],\\\"i8\\\",v);var IA={};function CA(A){for(;A.length;){var e=A.pop();A.pop()(e)}}function GA(A){return this.fromWireType(C[A>>2])}var VA={},FA={},RA={},NA=48,_A=57;function YA(A){if(void 0===A)return\\\"_unknown\\\";var e=(A=A.replace(/[^a-zA-Z0-9_]/g,\\\"$\\\")).charCodeAt(0);return NA<=e&&e<=_A?\\\"_\\\"+A:A}function QA(A,e){return A=YA(A),new Function(\\\"body\\\",\\\"return function \\\"+A+'() {\\\\n \\\"use strict\\\"; return body.apply(this, arguments);\\\\n};\\\\n')(e)}function DA(A,r){var e=QA(r,function(A){this.name=r,this.message=A;var e=new Error(A).stack;void 0!==e&&(this.stack=this.toString()+\\\"\\\\n\\\"+e.replace(/^Error(:[^\\\\n]*)?\\\\n/,\\\"\\\"))});return e.prototype=Object.create(A.prototype),(e.prototype.constructor=e).prototype.toString=function(){return void 0===this.message?this.name:this.name+\\\": \\\"+this.message},e}var JA=void 0;function MA(A){throw new JA(A)}function TA(i,e,f){function r(A){var e=f(A);e.length!==i.length&&MA(\\\"Mismatched type converter count\\\");for(var r=0;r>1])};case 2:return function(A){var e=r?I:C;return this.fromWireType(e[A>>2])};default:throw new TypeError(\\\"Unknown integer type: \\\"+A)}}function Oe(A,e){var r=FA[A];return void 0===r&&HA(e+\\\" has unknown type \\\"+Ne(A)),r}function ze(A){if(null===A)return\\\"null\\\";var e=typeof A;return\\\"object\\\"==e||\\\"array\\\"==e||\\\"function\\\"==e?A.toString():\\\"\\\"+A}function je(A,e){switch(e){case 2:return function(A){return this.fromWireType(G[A>>2])};case 3:return function(A){return this.fromWireType(V[A>>3])};default:throw new TypeError(\\\"Unknown float type: \\\"+A)}}function He(A,e){if(!(A instanceof Function))throw new TypeError(\\\"new_ called with constructor type \\\"+typeof A+\\\" which is not a function\\\");var r=QA(A.name||\\\"unknownFunctionName\\\",function(){});r.prototype=A.prototype;var i=new r,f=A.apply(i,e);return f instanceof Object?f:i}function xe(A,e,r,i,f){var n=e.length;n<2&&HA(\\\"argTypes array size mismatch! Must at least get return value and 'this' types!\\\");for(var t=null!==e[1]&&null!==r,o=!1,a=1;a>2)+i]);return r}function Le(A,e,r){switch(e){case 0:return r?function(A){return B[A]}:function(A){return E[A]};case 1:return r?function(A){return X[A>>1]}:function(A){return W[A>>1]};case 2:return r?function(A){return I[A>>2]}:function(A){return C[A>>2]};default:throw new TypeError(\\\"Unknown integer type: \\\"+A)}}var Ke={};function qe(A){var e=Ke[A];return void 0===e?zA(A):e}function $e(A){return A||HA(\\\"Cannot use deleted val. handle = \\\"+A),Qe[A].value}var Ar=R;function er(A){var e,r;er.called?(r=I[Ar>>2],e=I[r>>2]):(er.called=!0,rr.USER=rr.LOGNAME=\\\"web_user\\\",rr.PATH=\\\"/\\\",rr.PWD=\\\"/\\\",rr.HOME=\\\"/home/web_user\\\",rr.LANG=\\\"C.UTF-8\\\",rr._=d.thisProgram,e=a(1024,\\\"i8\\\",v),r=a(256,\\\"i8*\\\",v),I[r>>2]=e,I[Ar>>2]=r);var i=[],f=0;for(var n in A)if(\\\"string\\\"==typeof A[n]){var t=n+\\\"=\\\"+A[n];i.push(t),f+=t.length}if(1024>2]=e,e+=t.length+1}I[r+4*i.length>>2]=0}R+=16;var rr={};var ir={};var fr=1;function nr(A){return A%4==0&&(A%100!=0||A%400==0)}function tr(A,e){for(var r=0,i=0;i<=e;r+=A[i++]);return r}var or=[31,29,31,30,31,30,31,31,30,31,30,31],ar=[31,28,31,30,31,30,31,31,30,31,30,31];function cr(A,e){for(var r=new Date(A.getTime());0n-r.getDate()))return r.setDate(r.getDate()+e),r;e-=n-r.getDate()+1,r.setDate(1),f<11?r.setMonth(f+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}function lr(A,e,r,i){var f=I[i+40>>2],n={tm_sec:I[i>>2],tm_min:I[i+4>>2],tm_hour:I[i+8>>2],tm_mday:I[i+12>>2],tm_mon:I[i+16>>2],tm_year:I[i+20>>2],tm_wday:I[i+24>>2],tm_yday:I[i+28>>2],tm_isdst:I[i+32>>2],tm_gmtoff:I[i+36>>2],tm_zone:f?g(f):\\\"\\\"},t=g(r),o={\\\"%c\\\":\\\"%a %b %d %H:%M:%S %Y\\\",\\\"%D\\\":\\\"%m/%d/%y\\\",\\\"%F\\\":\\\"%Y-%m-%d\\\",\\\"%h\\\":\\\"%b\\\",\\\"%r\\\":\\\"%I:%M:%S %p\\\",\\\"%R\\\":\\\"%H:%M\\\",\\\"%T\\\":\\\"%H:%M:%S\\\",\\\"%x\\\":\\\"%m/%d/%y\\\",\\\"%X\\\":\\\"%H:%M:%S\\\"};for(var a in o)t=t.replace(new RegExp(a,\\\"g\\\"),o[a]);var c=[\\\"Sunday\\\",\\\"Monday\\\",\\\"Tuesday\\\",\\\"Wednesday\\\",\\\"Thursday\\\",\\\"Friday\\\",\\\"Saturday\\\"],l=[\\\"January\\\",\\\"February\\\",\\\"March\\\",\\\"April\\\",\\\"May\\\",\\\"June\\\",\\\"July\\\",\\\"August\\\",\\\"September\\\",\\\"October\\\",\\\"November\\\",\\\"December\\\"];function u(A,e,r){for(var i=\\\"number\\\"==typeof A?A.toString():A||\\\"\\\";i.lengthe?0:(eA(w,A),w.length-1)}if(EA.staticInit(),L.unshift(function(){d.noFSInit||EA.init.initialized||EA.init()}),K.push(function(){EA.ignorePermissions=!1}),q.push(function(){EA.quit()}),d.FS_createFolder=EA.createFolder,d.FS_createPath=EA.createPath,d.FS_createDataFile=EA.createDataFile,d.FS_createPreloadedFile=EA.createPreloadedFile,d.FS_createLazyFile=EA.createLazyFile,d.FS_createLink=EA.createLink,d.FS_createDevice=EA.createDevice,d.FS_unlink=EA.unlink,L.unshift(function(){gA.init()}),q.push(function(){gA.shutdown()}),o){var ur=require(\\\"fs\\\"),br=require(\\\"path\\\");yA.staticInit()}JA=d.InternalError=DA(Error,\\\"InternalError\\\"),SA(),jA=d.BindingError=DA(Error,\\\"BindingError\\\"),te(),Ce(),ye(),Re=d.UnboundTypeError=DA(Error,\\\"UnboundTypeError\\\"),Te(),er(rr),D=k.staticAlloc(4),Y=(_=k.alignMemory(R))+j,Q=k.alignMemory(Y),I[D>>2]=Q;var sr=!(N=!0);function dr(A,e,r){var i=0>4,r=(15&f)<<4|(n=hr.indexOf(A.charAt(a++)))>>2,i=(3&n)<<6|(t=hr.indexOf(A.charAt(a++))),o+=String.fromCharCode(e),64!==n&&(o+=String.fromCharCode(r)),64!==t&&(o+=String.fromCharCode(i)),a>2]=e,e=A.buffer;for(var n=0;n>2],r.adjusted=e,0|(k.setTempRet0(f[n]),e);return e=I[e>>2],0|(k.setTempRet0(i),e)},___cxa_pure_virtual:function(){throw n=!0,\\\"Pure virtual function called!\\\"},___cxa_throw:function(A,e,r){throw kA.infos[A]={ptr:A,adjusted:A,type:e,destructor:r,refcount:0,caught:!1,rethrown:!1},kA.last=A,\\\"uncaught_exception\\\"in dA?dA.uncaught_exception++:dA.uncaught_exception=1,A+\\\" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.\\\"},___gxx_personality_v0:function(){},___lock:function(){},___map_file:function(A,e){return wA(hA.EPERM),-1},___resumeException:function(A){throw kA.last||(kA.last=A),A+\\\" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.\\\"},___setErrNo:wA,___syscall140:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD(),i=(XA.get(),XA.get()),f=XA.get(),n=XA.get(),t=i;return EA.llseek(r,t,n),I[f>>2]=r.position,r.getdents&&0===t&&0===n&&(r.getdents=null),0}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall145:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD(),i=XA.get(),f=XA.get();return XA.doReadv(r,i,f)}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall146:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD(),i=XA.get(),f=XA.get();return XA.doWritev(r,i,f)}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall54:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD(),i=XA.get();switch(i){case 21505:case 21506:return r.tty?0:-hA.ENOTTY;case 21519:if(!r.tty)return-hA.ENOTTY;var f=XA.get();return I[f>>2]=0;case 21520:return r.tty?-hA.EINVAL:-hA.ENOTTY;case 21531:f=XA.get();return EA.ioctl(r,i,f);case 21523:return r.tty?0:-hA.ENOTTY;default:Mr(\\\"bad ioctl syscall \\\"+i)}}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall6:function(A,e){XA.varargs=e;try{var r=XA.getStreamFromFD();return EA.close(r),0}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___syscall91:function(A,e){XA.varargs=e;try{var r=XA.get(),i=XA.get(),f=XA.mappings[r];if(!f)return 0;if(i===f.len){var n=EA.getStream(f.fd);XA.doMsync(r,n,i,f.flags),EA.munmap(n),XA.mappings[r]=null,f.allocated&&Cr(f.malloc)}return 0}catch(A){return void 0!==EA&&A instanceof EA.ErrnoError||Mr(A),-A.errno}},___unlock:function(){},__addDays:cr,__arraySum:tr,__embind_finalize_value_object:function(A){var e=IA[A];delete IA[A];var f=e.rawConstructor,n=e.rawDestructor,u=e.fields;TA([A],u.map(function(A){return A.getterReturnType}).concat(u.map(function(A){return A.setterArgumentType})),function(c){var l={};return u.forEach(function(A,e){var r=A.fieldName,i=c[e],f=A.getter,n=A.getterContext,t=c[e+u.length],o=A.setter,a=A.setterContext;l[r]={read:function(A){return i.fromWireType(f(n,A))},write:function(A,e){var r=[];o(a,A,t.toWireType(r,e)),CA(r)}}}),[{name:e.name,fromWireType:function(A){var e={};for(var r in l)e[r]=l[r].read(A);return n(A),e},toWireType:function(A,e){for(var r in l)if(!(r in e))throw new TypeError(\\\"Missing field\\\");var i=f();for(r in l)l[r].write(i,e[r]);return null!==A&&A.push(n,i),i},argPackAdvance:8,readValueFromPointer:GA,destructorFunction:n}]})},__embind_register_bool:function(A,r,i,f,n){var t=UA(i);xA(A,{name:r=zA(r),fromWireType:function(A){return!!A},toWireType:function(A,e){return e?f:n},argPackAdvance:8,readValueFromPointer:function(A){var e;if(1===i)e=B;else if(2===i)e=X;else{if(4!==i)throw new TypeError(\\\"Unknown boolean type size: \\\"+r);e=I}return this.fromWireType(e[A>>t])},destructorFunction:null})},__embind_register_class:function(c,A,e,l,r,u,i,b,f,s,d,n,k){d=zA(d),u=Fe(r,u),b=b&&Fe(i,b),s=s&&Fe(f,s),k=Fe(n,k);var h=YA(d);le(h,function(){_e(\\\"Cannot construct \\\"+d+\\\" due to unbound types\\\",[l])}),TA([c,A,e],l?[l]:[],function(A){var e,r;A=A[0],r=l?(e=A.registeredClass).instancePrototype:oe.prototype;var i=QA(h,function(){if(Object.getPrototypeOf(this)!==f)throw new jA(\\\"Use 'new' to construct \\\"+d);if(void 0===n.constructor_body)throw new jA(d+\\\" has no accessible constructor\\\");var A=n.constructor_body[arguments.length];if(void 0===A)throw new jA(\\\"Tried to invoke ctor of \\\"+d+\\\" with invalid number of parameters (\\\"+arguments.length+\\\") - expected (\\\"+Object.keys(n.constructor_body).toString()+\\\") parameters instead!\\\");return A.apply(this,arguments)}),f=Object.create(r,{constructor:{value:i}});i.prototype=f;var n=new ue(d,i,f,k,e,u,b,s),t=new Ge(d,n,!0,!1,!1),o=new Ge(d+\\\"*\\\",n,!1,!1,!1),a=new Ge(d+\\\" const*\\\",n,!1,!0,!1);return ae[c]={pointerType:o,constPointerType:a},Ve(h,i),[t,o,a]})},__embind_register_emval:function(A,e){xA(A,{name:e=zA(e),fromWireType:function(A){var e=Qe[A].value;return De(A),e},toWireType:function(A,e){return Ue(e)},argPackAdvance:8,readValueFromPointer:GA,destructorFunction:null})},__embind_register_enum:function(A,e,r,i){var f=UA(r);function n(){}e=zA(e),n.values={},xA(A,{name:e,constructor:n,fromWireType:function(A){return this.constructor.values[A]},toWireType:function(A,e){return e.value},argPackAdvance:8,readValueFromPointer:Se(e,f,i),destructorFunction:null}),le(e,n)},__embind_register_enum_value:function(A,e,r){var i=Oe(A,\\\"enum\\\");e=zA(e);var f=i.constructor,n=Object.create(i.constructor.prototype,{value:{value:r},constructor:{value:QA(i.name+\\\"_\\\"+e,function(){})}});f.values[r]=n,f[e]=n},__embind_register_float:function(A,e,r){var i=UA(r);xA(A,{name:e=zA(e),fromWireType:function(A){return A},toWireType:function(A,e){if(\\\"number\\\"!=typeof e&&\\\"boolean\\\"!=typeof e)throw new TypeError('Cannot convert \\\"'+ze(e)+'\\\" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:je(e,i),destructorFunction:null})},__embind_register_function:function(r,i,A,e,f,n){var t=Pe(i,A);r=zA(r),f=Fe(e,f),le(r,function(){_e(\\\"Cannot call \\\"+r+\\\" due to unbound types\\\",t)},i-1),TA([],t,function(A){var e=[A[0],null].concat(A.slice(1));return Ve(r,xe(r,e,null,f,n),i-1),[]})},__embind_register_integer:function(A,r,e,i,f){r=zA(r),-1===f&&(f=4294967295);var n=UA(e),t=function(A){return A};if(0===i){var o=32-8*e;t=function(A){return A<>>o}}var a=-1!=r.indexOf(\\\"unsigned\\\");xA(A,{name:r,fromWireType:t,toWireType:function(A,e){if(\\\"number\\\"!=typeof e&&\\\"boolean\\\"!=typeof e)throw new TypeError('Cannot convert \\\"'+ze(e)+'\\\" to '+this.name);if(e>>0:0|e},argPackAdvance:8,readValueFromPointer:Le(r,n,0!==i),destructorFunction:null})},__embind_register_memory_view:function(A,e,r){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function f(A){var e=C[A>>=2],r=C[A+1];return new i(C.buffer,r,e)}xA(A,{name:r=zA(r),fromWireType:f,argPackAdvance:8,readValueFromPointer:f},{ignoreDuplicateRegistrations:!0})},__embind_register_std_string:function(A,e){xA(A,{name:e=zA(e),fromWireType:function(A){for(var e=C[A>>2],r=new Array(e),i=0;i>2]=f;for(var t=0;t>2],i=new Array(r),f=A+4>>c,n=0;n>2]=i;for(var n=f+4>>c,t=0;t>2]=fr,ir[fr]=0,fr++,0)},_pthread_mutex_destroy:function(){},_pthread_mutex_init:function(){},_pthread_once:function A(e,r){A.seen||(A.seen={}),e in A.seen||(d.dynCall_v(r),A.seen[e]=1)},_pthread_setspecific:function(A,e){return A in ir?(ir[A]=e,0):hA.EINVAL},_strftime:lr,_strftime_l:function(A,e,r,i){return lr(A,e,r,i)},constNoSmartPtrRawPointerToWireType:se,count_emval_handles:Je,craftInvokerFunction:xe,createNamedFunction:QA,downcastPointer:me,embind_init_charCodes:SA,ensureOverloadTable:ce,enumReadValueFromPointer:Se,exposePublicSymbol:le,extendError:DA,floatReadValueFromPointer:je,flushPendingDeletes:fe,genericPointerToWireType:de,getBasestPointer:Ee,getInheritedInstance:Xe,getInheritedInstanceCount:ge,getLiveInheritedInstances:Ze,getShiftFromSize:UA,getStringOrSymbol:qe,getTypeName:Ne,get_first_emval:Me,heap32VectorToArray:Pe,init_ClassHandle:te,init_RegisteredPointer:Ce,init_embind:ye,init_emval:Te,integerReadValueFromPointer:Le,makeClassHandle:We,makeLegalFunctionName:YA,new_:He,nonConstNoSmartPtrRawPointerToWireType:ke,readLatin1String:zA,registerType:xA,replacePublicSymbol:Ve,requireFunction:Fe,requireHandle:$e,requireRegisteredType:Oe,runDestructor:$A,runDestructors:CA,setDelayFunction:pe,shallowCopyInternalPointer:LA,simpleReadValueFromPointer:GA,throwBindingError:HA,throwInstanceAlreadyDeleted:KA,throwInternalError:MA,throwUnboundTypeError:_e,upcastPointer:be,whenDependentTypesAreResolved:TA,DYNAMICTOP_PTR:D,tempDoublePtr:sA,ABORT:n,STACKTOP:_,STACK_MAX:Y,cttz_i8:WA};var mr,gr=function(A,e,r){var i=A.Int8Array,tr=new i(r),f=A.Int16Array,or=new f(r),n=A.Int32Array,ar=new n(r),t=A.Uint8Array,cr=new t(r),o=A.Uint16Array,lr=new o(r),a=A.Uint32Array,c=(new a(r),A.Float32Array),gA=new c(r),l=A.Float64Array,Q=new l(r),u=A.byteLength,b=0|e.DYNAMICTOP_PTR,d=0|e.tempDoublePtr,ur=(e.ABORT,0|e.STACKTOP),s=(e.STACK_MAX,0|e.cttz_i8),k=0,h=A.NaN,w=A.Infinity,D=0,v=A.Math.floor,V=A.Math.abs,m=(A.Math.sqrt,A.Math.pow,A.Math.cos,A.Math.sin,A.Math.tan,A.Math.acos,A.Math.asin,A.Math.atan,A.Math.atan2,A.Math.exp,A.Math.log,A.Math.ceil),br=A.Math.imul,g=(A.Math.min,A.Math.max,A.Math.clz32),Z=e.abort,p=(e.assert,e.enlargeMemory),y=e.getTotalMemory,B=e.abortOnCannotGrowMemory,E=(e.invoke_i,e.invoke_ii,e.invoke_iii,e.invoke_iiii,e.invoke_iiiii,e.invoke_iiiiid,e.invoke_iiiiii,e.invoke_iiiiiid,e.invoke_iiiiiii,e.invoke_iiiiiiii,e.invoke_iiiiiiiii,e.invoke_v,e.invoke_vi,e.invoke_vii,e.invoke_viii,e.invoke_viiii,e.invoke_viiiii,e.invoke_viiiiii,e.invoke_viiiiiii,e.invoke_viiiiiiii,e.invoke_viiiiiiiii,e.invoke_viiiiiiiiii,e.invoke_viiiiiiiiiiii,e.invoke_viiiiiiiiiiiii,e.ClassHandle,e.ClassHandle_clone,e.ClassHandle_delete,e.ClassHandle_deleteLater,e.ClassHandle_isAliasOf,e.ClassHandle_isDeleted,e.RegisteredClass,e.RegisteredPointer,e.RegisteredPointer_deleteObject,e.RegisteredPointer_destructor,e.RegisteredPointer_fromWireType,e.RegisteredPointer_getPointee,e.__ZSt18uncaught_exceptionv),sr=e.___assert_fail,X=(e.___buildEnvironment,e.___cxa_allocate_exception),W=(e.___cxa_begin_catch,e.___cxa_find_matching_catch,e.___cxa_pure_virtual),I=e.___cxa_throw,C=(e.___gxx_personality_v0,e.___lock),G=e.___map_file,F=(e.___resumeException,e.___setErrNo),R=e.___syscall140,N=e.___syscall145,_=e.___syscall146,Y=e.___syscall54,J=e.___syscall6,M=e.___syscall91,T=e.___unlock,U=(e.__addDays,e.__arraySum,e.__embind_finalize_value_object),S=e.__embind_register_bool,O=e.__embind_register_class,z=e.__embind_register_emval,j=e.__embind_register_enum,H=e.__embind_register_enum_value,x=e.__embind_register_float,P=e.__embind_register_function,L=e.__embind_register_integer,K=e.__embind_register_memory_view,q=e.__embind_register_std_string,$=e.__embind_register_std_wstring,AA=e.__embind_register_value_object,eA=e.__embind_register_value_object_field,rA=e.__embind_register_void,iA=e.__emval_decref,fA=e.__emval_incref,nA=e.__emval_new_array,tA=e.__emval_new_cstring,oA=e.__emval_new_object,aA=(e.__emval_register,e.__emval_set_property),cA=e.__emval_take_value,lA=(e.__isLeapYear,e._abort),uA=(e._embind_repr,e._emscripten_memcpy_big),bA=e._getenv,sA=e._pthread_cond_destroy,dA=e._pthread_cond_init,kA=e._pthread_cond_signal,hA=e._pthread_cond_wait,wA=e._pthread_getspecific,vA=e._pthread_join,mA=e._pthread_key_create,ZA=e._pthread_mutex_destroy,pA=e._pthread_mutex_init,yA=e._pthread_once,BA=e._pthread_setspecific,EA=(e._strftime,e._strftime_l);e.constNoSmartPtrRawPointerToWireType,e.count_emval_handles,e.craftInvokerFunction,e.createNamedFunction,e.downcastPointer,e.embind_init_charCodes,e.ensureOverloadTable,e.enumReadValueFromPointer,e.exposePublicSymbol,e.extendError,e.floatReadValueFromPointer,e.flushPendingDeletes,e.genericPointerToWireType,e.getBasestPointer,e.getInheritedInstance,e.getInheritedInstanceCount,e.getLiveInheritedInstances,e.getShiftFromSize,e.getStringOrSymbol,e.getTypeName,e.get_first_emval,e.heap32VectorToArray,e.init_ClassHandle,e.init_RegisteredPointer,e.init_embind,e.init_emval,e.integerReadValueFromPointer,e.makeClassHandle,e.makeLegalFunctionName,e.new_,e.nonConstNoSmartPtrRawPointerToWireType,e.readLatin1String,e.registerType,e.replacePublicSymbol,e.requireFunction,e.requireHandle,e.requireRegisteredType,e.runDestructor,e.runDestructors,e.setDelayFunction,e.shallowCopyInternalPointer,e.simpleReadValueFromPointer,e.throwBindingError,e.throwInstanceAlreadyDeleted,e.throwInternalError,e.throwUnboundTypeError,e.upcastPointer,e.whenDependentTypesAreResolved;function XA(A){ar[(A|=0)>>2]=4232,(A=0|ar[A+24>>2])&&mu(A)}function WA(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t,o,a=0;n=(A|=0)+4|0,t=A+8|0,o=A+12|0,tr[A+24>>0]=0,ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ar[A+12>>2]=0,ar[(a=A+16|0)>>2]=r,ar[a+4>>2]=i,a=0|ar[e>>2],(i=r=0|ar[e+4>>2])?(bu(r),r=0|ar[n>>2],ar[A>>2]=a,ar[n>>2]=i,0|r&&du(r)):(ar[A>>2]=a,ar[n>>2]=i),(ar[t>>2]=f)&&(ar[o>>2]=1+(0|ar[f+12>>2]))}function IA(A){var e,r,i,f,n=0;return ur=(f=ur)+16|0,e=f,0|CA(A|=0,1,0)?(r=0|ar[A>>2],(n=0==(0|(i=0|ar[A+4>>2])))||bu(i),A=0|xb[63&ar[16+(0|ar[r>>2])>>2]](r,e,1)?0|tr[e>>0]:(GA(A),0),n||du(i),ur=f,0|(n=A)):(ur=f,(n=0)|n)}function CA(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0;if((0|(r|=0))<0&&sr(55739,47382,290,18687),a=0|ar[(i=c=A+16|0)>>2],!((0|(i=0|ar[i+4>>2]))<(0|r)|(0|i)==(0|r)&a>>>0>>0)){f=0|ar[A+8>>2];do{if(f){if(0|CA(f,e,r)){f=0|ar[(i=c)>>2],i=0|ar[i+4>>2];break}return(c=0)|c}f=a}while(0);return a=0|ob(0|f,0|i,0|e,0|r),ar[c>>2]=a,ar[c+4>>2]=D,0|(c=1)}if(0<(0|i)|0==(0|i)&0>>0){f=0|ar[A+8>>2];do{if(f){for(;;){if(r=0|ar[(n=e=f+16|0)>>2],(0|(n=0|ar[n+4>>2]))<(0|i)|(0|n)==(0|i)&r>>>0>>0){i=7;break}if(r=0|ob(0|r,0|n,0|a,0|i),ar[(n=e)>>2]=r,ar[n+4>>2]=D,!(f=0|ar[f+8>>2])){i=9;break}}if(7==(0|i))sr(18700,47382,327,18717);else if(9==(0|i)){t=0|ar[(o=c)>>2],o=0|ar[o+4>>2];break}}else t=a,o=i}while(0);n=0|ar[A>>2],a=0|ar[n>>2],r=0|ar[a+20>>2],a=0|tb(0|(a=0|jb[127&ar[a+8>>2]](n)),0|D,0|t,0|o),xb[63&r](n,a,D),ar[c>>2]=0,ar[c+4>>2]=0}return tr[A+24>>0]=1,(c=0)|c}function GA(A){var e=0;ar[(e=(A|=0)+16|0)>>2]=0,(e=(ar[e+4>>2]=0)|ar[A+8>>2])&&GA(e),tr[(e=A+24|0)>>0]=1}function VA(A){var e,r,i,f,n=0;return ur=(f=ur)+16|0,e=f,0|CA(A|=0,2,0)?(r=0|ar[A>>2],(n=0==(0|(i=0|ar[A+4>>2])))||bu(i),A=0|xb[63&ar[16+(0|ar[r>>2])>>2]](r,e,2)?65535&((0|cr[e>>0])<<8|0|cr[e+1>>0]):(GA(A),0),n||du(i),ur=f,0|(n=A)):(ur=f,(n=0)|n)}function FA(A){var e,r,i,f,n=0;return ur=(f=ur)+16|0,e=f,0|CA(A|=0,4,0)?(r=0|ar[A>>2],(n=0==(0|(i=0|ar[A+4>>2])))||bu(i),A=0|xb[63&ar[16+(0|ar[r>>2])>>2]](r,e,4)?(0|cr[e+1>>0])<<16|(0|cr[e>>0])<<24|(0|cr[e+2>>0])<<8|0|cr[e+3>>0]:(GA(A),0),n||du(i),ur=f,0|(n=A)):(ur=f,(n=0)|n)}function RA(A,e){A|=0,e|=0;var r,i,f,n=0,t=0,o=0,a=0;ur=(f=ur)+16|0,r=(i=f)+12|0,ar[i>>2]=0,ar[i+4>>2]=0,a=e+16|(ar[i+8>>2]=0);A:do{if(0==(0|ar[a>>2])&0==(0|ar[a+4>>2]))ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;else{t=e+4|0;e:for(;;){if(!(0|CA(e,1,0))){n=5;break}switch(n=0|ar[e>>2],(a=0==(0|(o=0|ar[t>>2])))||bu(o),n=0|xb[63&ar[16+(0|ar[n>>2])>>2]](n,r,1)?(n=0|tr[r>>0])<<24>>24?(_u(i,n),0):2:(GA(e),ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,1),a||du(o),3&n){case 0:break;case 2:n=15;break e;default:break A}}if(5==(0|n)){ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;break}if(15==(0|n)){ar[A>>2]=ar[i>>2],ar[A+4>>2]=ar[i+4>>2],ar[A+8>>2]=ar[i+8>>2],ar[i>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0;break}}}while(0);ur=(0<=(0|tr[i+11>>0])||vu(0|ar[i>>2]),f)}function NA(A,e,r){e|=0,r|=0;var i=0;return i=0|ar[(A|=0)>>2],r=0|tb(0|(i=0|jb[127&ar[8+(0|ar[i>>2])>>2]](i)),0|D,0|e,0|r),e=0|ar[A>>2],0|xb[63&ar[12+(0|ar[e>>2])>>2]](e,r,D)}function _A(A,e,r){A|=0,e|=0,r|=0;for(var i=0,f=0,n=0;;){if(f=0|ar[(n=i=A+16|0)>>2],(0|(n=0|ar[n+4>>2]))<(0|r)|(0|n)==(0|r)&f>>>0>>0){A=3;break}if(f=0|ob(0|f,0|n,0|e,0|r),ar[(n=i)>>2]=f,ar[n+4>>2]=D,!(A=0|ar[A+8>>2])){A=5;break}}if(3==(0|A))sr(18700,47382,327,18717);else if(5==(0|A))return}function YA(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;return ar[(A|=0)>>2]=e,ar[A+4>>2]=r,ar[(i=A+8|0)>>2]=r,ar[(a=c=A+16|0)>>2]=0,ar[a+4>>2]=0,ar[(a=A+24|0)>>2]=0,r?(f=e+1|0,ar[A>>2]=f,n=0|cr[e>>0],o=r+-1|0,ar[i>>2]=o,n=0|db(0|n,0,56),t=D,ar[(l=c)>>2]=n,ar[l+4>>2]=t,o?(o=e+2|0,ar[A>>2]=o,f=0|cr[f>>0],l=r+-2|0,ar[i>>2]=l,f=0|db(0|f,0,48),f|=n,n=t|D,ar[(t=c)>>2]=f,ar[t+4>>2]=n,l?(t=e+3|0,ar[A>>2]=t,o=0|cr[o>>0],l=r+-3|0,ar[i>>2]=l,o=0|db(0|o,0,40),o|=f,f=n|D,ar[(n=c)>>2]=o,ar[n+4>>2]=f,l?(n=e+4|0,ar[A>>2]=n,t=0|cr[t>>0],l=r+-4|0,ar[i>>2]=l,f|=t,ar[(t=c)>>2]=o,ar[t+4>>2]=f,l?(t=e+5|0,ar[A>>2]=t,n=0|cr[n>>0],l=r+-5|0,ar[i>>2]=l,n=0|db(0|n,0,24),n|=o,f|=D,ar[(o=c)>>2]=n,ar[o+4>>2]=f,l?(o=e+6|0,ar[A>>2]=o,t=0|cr[t>>0],l=r+-6|0,ar[i>>2]=l,n|=t=0|db(0|t,0,16),f|=D,ar[(t=c)>>2]=n,ar[t+4>>2]=f,l?(t=e+7|0,ar[A>>2]=t,o=0|cr[o>>0],l=r+-7|0,ar[i>>2]=l,n|=o=0|db(0|o,0,8),f|=D,ar[(o=c)>>2]=n,ar[o+4>>2]=f,l=l?(ar[A>>2]=e+8,e=0|cr[t>>0],ar[i>>2]=r+-8,ar[(l=c)>>2]=n|e,ar[l+4>>2]=f,64-(l=0)|0):64-(l=8)|0,void(ar[a>>2]=l)):(l=64-(l=16)|0,void(ar[a>>2]=l))):(l=64-(l=24)|0,void(ar[a>>2]=l))):(l=64-(l=32)|0,void(ar[a>>2]=l))):(l=64-(l=40)|0,void(ar[a>>2]=l))):(l=64-(l=48)|0,void(ar[a>>2]=l))):(l=64-(l=56)|0,void(ar[a>>2]=l))):(c=(c=64)-c|0,void(ar[a>>2]=c))}function QA(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((0|(i=0|ar[(r=(A|=0)+24|0)>>2]))<(0|e)){i=64-i|0,n=A+8|0;A:do{if(7<(0|i)){t=A+16|0,f=0|ar[n>>2];do{if(!f)break A;c=0|ar[A>>2],ar[A>>2]=c+1,c=0|cr[c>>0],f=f+-1|0,ar[n>>2]=f,c=0|db(0|c,0,0|(i=i+-8|0)),a=ar[(l=t)+4>>2]|D,ar[(o=t)>>2]=ar[l>>2]|c,ar[o+4>>2]=a}while(7<(0|i))}}while(0);i=64-i|0,ar[r>>2]=i}return l=0|sb(0|(o=0|ar[(a=c=A+16|0)>>2]),0|(a=0|ar[a+4>>2]),64-e|0),a=0|db(0|o,0|a,0|e),ar[c>>2]=a,ar[c+4>>2]=D,ar[r>>2]=i-e,0|l}function DA(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;for(c=(A|=0)+8|0,i=A+16|0,f=(l=0)|ar[(r=A+24|0)>>2];;){if((0|f)<1){f=64-f|0;A:do{if(7<(0|f)){n=0|ar[c>>2];do{if(!n)break A;u=0|ar[A>>2],ar[A>>2]=u+1,u=0|cr[u>>0],n=n+-1|0,ar[c>>2]=n,u=0|db(0|u,0,0|(f=f+-8|0)),t=ar[(b=i)+4>>2]|D,ar[(o=i)>>2]=ar[b>>2]|u,ar[o+4>>2]=t}while(7<(0|f))}}while(0);o=64-f|0,ar[r>>2]=o}else o=f;if(t=0|db(0|(b=0|ar[(u=i)>>2]),0|(u=0|ar[u+4>>2]),1),n=D,ar[(f=i)>>2]=t,ar[f+4>>2]=n,f=o+-1|0,ar[r>>2]=f,!(-1<(0|u)|-1==(0|u)&4294967295>>0))break;if(19<(0|l)){f=0,a=20;break}l=l+1|0}if(20==(0|a))return 0|f;if(!l)return(ar[e>>2]=0)|(b=1);if((0|o)<=(0|l)){f=65-o|0;A:do{if(7<(0|f)){o=0|ar[c>>2];do{if(!o)break A;b=0|ar[A>>2],ar[A>>2]=b+1,b=0|cr[b>>0],o=o+-1|0,ar[c>>2]=o,t|=b=0|db(0|b,0,0|(f=f+-8|0)),n|=D,ar[(b=i)>>2]=t,ar[b+4>>2]=n}while(7<(0|f))}}while(0);f=64-f|0,ar[r>>2]=f}return b=0|sb(0|t,0|n,64-l|0),c=0|db(0|t,0|n,0|l),ar[(u=i)>>2]=c,ar[u+4>>2]=D,ar[r>>2]=f-l,b=b+(1<>2]=b+-1,1<(0|b)?0|(b=1):(sr(18749,47382,427,47403),0)}function JA(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0;if((0|(t=0|ar[(r=(A|=0)+12|0)>>2]))!=((o=u=0|ar[(i=A+4|0)>>2])-(n=f=0|ar[A>>2])|0))return ar[r>>2]=t+1,void(tr[n+t>>0]=e);(0|o)==(0|(t=0|ar[(u=A+8|0)>>2]))?((0|(t=(l=t-f|0)+1|0))<0&&zl(),o=l<<1,c=(o=l>>>0<1073741823?o>>>0>>0?t:o:2147483647)?0|hu(o):0,tr[(a=c+l|0)>>0]=e,t=a+(0-l)|0,0<(0|l)&&hb(0|t,0|n,0|l),ar[A>>2]=t,ar[i>>2]=a+1,ar[u>>2]=c+o,0|f&&vu(n)):(tr[o>>0]=e,ar[i>>2]=1+(0|ar[i>>2])),ar[r>>2]=1+(0|ar[r>>2])}function MA(A,e){e|=0;var r,i,f=0,n=0,t=0;t=(n=0|ar[(i=(A|=0)+12|0)>>2])+2|0,f=0|ar[A>>2],(r=(0|ar[A+4>>2])-f|0)>>>0>>0?(TA(A,t-r|0),t=A,n=0|ar[i>>2],f=0|ar[A>>2]):t=A,ar[i>>2]=n+1,tr[f+n>>0]=(65535&e)>>>8,A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=e}function TA(A,e){var r,i,f=0,n=0,t=0,o=0,a=0;if((e|=0)>>>0<=((t=0|ar[(r=(A|=0)+8|0)>>2])-(f=0|ar[(i=A+4|0)>>2])|0)>>>0)for(;f=1+((tr[f>>0]=0)|ar[i>>2])|0,ar[i>>2]=f,0!=(0|(e=e+-1|0)););else{for((0|(f=(o=f-(n=0|ar[A>>2])|0)+e|0))<0&&zl(),a=(t=t-n|0)<<1,a=(n=(f=t>>>0<1073741823?a>>>0>>0?f:a:2147483647)?0|hu(f):0)+o|0,o=n+f|0,f=t=a;t=f=t+1|(tr[f>>0]=0),0!=(0|(e=e+-1|0)););e=0|ar[A>>2],f=a+(0-(n=(0|ar[i>>2])-e|0))|0,0<(0|n)&&hb(0|f,0|e,0|n),ar[A>>2]=f,ar[i>>2]=t,ar[r>>2]=o,e&&vu(e)}}function UA(A,e){e|=0;var r,i,f=0,n=0,t=0;t=(n=0|ar[(i=(A|=0)+12|0)>>2])+4|0,f=0|ar[A>>2],(r=(0|ar[A+4>>2])-f|0)>>>0>>0?(TA(A,t-r|0),t=A,n=0|ar[i>>2],f=0|ar[A>>2]):t=A,ar[i>>2]=n+1,tr[f+n>>0]=e>>>24,A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=e>>>16,A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=e>>>8,A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=e}function SA(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0;switch(0|(e|=0)){case 1:return i>>>0<0|0==(0|i)&r>>>0<256||sr(18760,47382,543,19563),void JA(A,255&r);case 2:return i>>>0<0|0==(0|i)&r>>>0<65536||sr(18774,47382,547,19563),i=(n=0|ar[(t=A+12|0)>>2])+2|0,e=0|ar[A>>2],(f=(0|ar[A+4>>2])-e|0)>>>0>>0?(TA(A,i-f|0),f=A,i=0|ar[t>>2],e=0|ar[A>>2]):(f=A,i=n),ar[t>>2]=i+1,tr[e+i>>0]=(65535&r)>>>8,A=0|ar[t>>2],ar[t>>2]=A+1,void(tr[(0|ar[f>>2])+A>>0]=r);case 4:return i>>>0<1|1==(0|i)&r>>>0<0||sr(18790,47382,551,19563),i=(n=0|ar[(t=A+12|0)>>2])+4|0,e=0|ar[A>>2],(f=(0|ar[A+4>>2])-e|0)>>>0>>0?(TA(A,i-f|0),f=A,i=0|ar[t>>2],e=0|ar[A>>2]):(f=A,i=n),ar[t>>2]=i+1,tr[e+i>>0]=r>>>24,A=0|ar[t>>2],ar[t>>2]=A+1,tr[(0|ar[f>>2])+A>>0]=r>>>16,A=0|ar[t>>2],ar[t>>2]=A+1,tr[(0|ar[f>>2])+A>>0]=r>>>8,A=0|ar[t>>2],ar[t>>2]=A+1,void(tr[(0|ar[f>>2])+A>>0]=r);case 8:return void function(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0;t=(n=0|ar[(i=(A|=0)+12|0)>>2])+8|0,f=0|ar[A>>2],(o=(0|ar[A+4>>2])-f|0)>>>0>>0?(TA(A,t-o|0),t=A,n=0|ar[i>>2],f=0|ar[A>>2]):t=A,A=0|sb(0|e,0|r,56),ar[i>>2]=n+1,tr[f+n>>0]=A,A=0|sb(0|e,0|r,48),o=0|ar[i>>2],ar[i>>2]=o+1,tr[(0|ar[t>>2])+o>>0]=A,o=0|sb(0|e,0|r,40),A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=o,A=0|ar[i>>2],ar[i>>2]=A+1,A=0|sb(0|e,0|(tr[(0|ar[t>>2])+A>>0]=r),24),o=0|ar[i>>2],ar[i>>2]=o+1,tr[(0|ar[t>>2])+o>>0]=A,o=0|sb(0|e,0|r,16),A=0|ar[i>>2],ar[i>>2]=A+1,tr[(0|ar[t>>2])+A>>0]=o,A=0|sb(0|e,0|r,8),r=0|ar[i>>2],ar[i>>2]=r+1,tr[(0|ar[t>>2])+r>>0]=A,r=0|ar[i>>2],ar[i>>2]=r+1,tr[(0|ar[t>>2])+r>>0]=e}(A,r,i);default:sr(55739,47382,558,19563)}}function OA(A,e){var r=0,i=0,f=0,n=0,t=0,o=0,a=0;if(a=(A|=0)+12|0,n=0|tr[(t=(e|=0)+11|0)>>0],r=0|ar[(o=e+4|0)>>2],i=1+(0|ar[a>>2])+(n<<24>>24<0?r:255&n)|0,(f=(0|ar[A+4>>2])-(0|ar[A>>2])|0)>>>0>>0?(TA(A,i-f|0),f=0|tr[t>>0],r=0|ar[o>>2]):f=n,!(0|(f<<24>>24<0?r:255&f)))return t=A,e=(o=0|ar[a>>2])+1|0,ar[a>>2]=e,a=0|ar[t>>2],void(tr[(a=a+o|0)>>0]=0);for(i=0,r=f;f=0|tr[(r<<24>>24<0?0|ar[e>>2]:e)+i>>0],n=0|ar[a>>2],ar[a>>2]=n+1,tr[(0|ar[A>>2])+n>>0]=f,(i=i+1|0)>>>0<((r=0|tr[t>>0])<<24>>24<0?0|ar[o>>2]:255&r)>>>0;);t=(o=0|ar[a>>2])+1|0,ar[a>>2]=t,a=0|ar[A>>2],tr[(a=a+o|0)>>0]=0}function zA(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0;a=0|ar[(f=(A|=0)+12|0)>>2],i=(t=0|ar[(n=e+4|0)>>2])-(o=0|ar[e>>2])+a|0,c=0|ar[A>>2],(r=(0|ar[A+4>>2])-c|0)>>>0>>0&&(TA(A,i-r|0),c=0|ar[A>>2],a=0|ar[f>>2],o=0|ar[e>>2],t=0|ar[n>>2]),hb(c+a|0,0|o,t-o|0),ar[f>>2]=(0|ar[n>>2])-(0|ar[e>>2])+(0|ar[f>>2])}function jA(A,e){e|=0;var r,i,f,n,t,o=0,a=0;(0|(o=0|ar[(t=(A|=0)+12|0)>>2]))!=((r=0|ar[(f=A+4|0)>>2])-(i=0|ar[A>>2])|0)&&sr(18810,47382,610,18838),(n=o+e|0)>>>0<=o>>>0?n>>>0>>0&&(0|r)!=(0|(a=i+n|0))&&(ar[f>>2]=a):(TA(A,e),o=0|ar[t>>2]),ar[t>>2]=o+e}function HA(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(b=0|We(f,18865,5),xA(l,e),We(0|We(b,(u=(a=0|tr[(c=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[l+4>>2]:255&a),18871,7),(0|tr[c>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(u=0|We(f,18879,6),b=0|We(0|Kf(u,0|ar[(b=e+8|0)>>2],0|ar[b+4>>2]),18886,17),We(0|Lf(b,0|ar[e+16>>2]),18904,2),0|tr[e+36>>0]){if(0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(f,18907,9),l=0|We(0|Pf(l,0|cr[e+37>>0]),30086,1),0<(0|ar[r>>2]))for(c=0;We(l,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););u=(b=0|We(l,18917,7))+(0|ar[(0|ar[b>>2])-12>>2])+4|0,ar[u>>2]=-75&ar[u>>2]|8,We(0|Lf(b,0|ar[e+40>>2]),30086,1)}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o}function Xe(A,e){var r,i,f=0,n=0,t=0,o=0;Eu(r=(A|=0)+32|0,e|=0),8&(t=(ar[(o=A+44|0)>>2]=0)|ar[(i=A+48|0)>>2])|0&&(e=(e=0|tr[11+r>>0])<<24>>24<0?(n=f=e=0|ar[r>>2])+(0|ar[A+36>>2])|0:(n=f=r)+(255&e)|0,ar[o>>2]=e,ar[A+8>>2]=f,ar[A+12>>2]=n,ar[A+16>>2]=e),16&t&&(o=(e=(e=0|tr[(f=11+r|0)>>0])<<24>>24<0?(t=0|ar[A+36>>2],ar[o>>2]=(0|ar[r>>2])+t,(2147483647&ar[A+40>>2])-1|0):(t=255&e,ar[o>>2]=r+t,10),t),Vu(r,e,0),(e=0|tr[f>>0])<<24>>24<0?(t=f=0|ar[r>>2],n=0|ar[A+36>>2]):(n=255&e,f=t=r),ar[(e=A+24|0)>>2]=f,ar[A+20>>2]=f,ar[A+28>>2]=t+n,3&ar[i>>2]&&(ar[e>>2]=f+o))}function We(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0;return ur=(a=ur)+16|0,n=a+12|0,l=(o=a)+8|0,zf(o,A|=0),0|tr[o>>0]?(c=(0|ar[A>>2])-12|0,ar[l>>2]=ar[A+(0|ar[c>>2])+24>>2],c=A+(0|ar[c>>2])|0,t=0|ar[c+4>>2],f=e+r|0,-1==(0|(r=0|ar[(i=c+76|0)>>2]))&&(Tf(n,c),r=0|un(n,59232),r=0|Hb[31&ar[28+(0|ar[r>>2])>>2]](r,32),bn(n),r=r<<24>>24,ar[i>>2]=r),ar[n>>2]=ar[l>>2],ur=(0|PA(n,e,32==(176&t|0)?f:e,f,c,255&r)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2]),jf(o),a),0|A):(jf(o),ur=a,0|A)}function xA(A,e){A|=0;var r,i,f,n,t,o,a=0;if(ur=(o=ur)+160|0,n=o+136|0,t=o,1970628964!=(0|(a=0|ar[(e|=0)+20>>2])))return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,tr[A+11>>0]=4,tr[A+4>>0]=0,tr[A>>0]=a>>>24,tr[A+1>>0]=a>>>16,tr[A+2>>0]=a>>>8,tr[A+3>>0]=a,void(ur=o);i=t+56|0,f=t+4|0,ar[t>>2]=292,ar[i>>2]=312,Jf(t+56|0,f),ar[t+128>>2]=0,ar[t+132>>2]=-1,ar[t>>2]=4304,ar[i>>2]=4324,Sf(f),ar[f>>2]=4340,ar[(r=t+36|0)>>2]=0,ar[4+r>>2]=0,ar[8+r>>2]=0,ar[12+r>>2]=0,ar[t+52>>2]=16,ar[n>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,Xe(f,n),(0|tr[11+n>>0])<0&&vu(0|ar[n>>2]),a=t+(0|ar[(0|ar[t>>2])-12>>2])+4|0,ar[a>>2]=-75&ar[a>>2]|8,ar[t+(0|ar[(0|ar[t>>2])-12>>2])+76>>2]=48,ar[t+(0|ar[(0|ar[t>>2])-12>>2])+12>>2]=2,e=e+24|0,a=0;do{switch(0|a){case 4:case 6:case 8:case 10:tr[n>>0]=45,We(t,n,1)}Pf(t,0|cr[(0|ar[e>>2])+a>>0]),a=a+1|0}while((0|a)<16);Ie(A,f),ar[t>>2]=4304,ar[i>>2]=4324,ar[f>>2]=4340,(0|tr[11+r>>0])<0&&vu(0|ar[r>>2]),kf(f),Gf(),bf(i),ur=o}function Ie(A,e){A|=0;var r=0,i=0,f=0,n=0;if(16&(r=0|ar[(e|=0)+48>>2])|0){if((i=0|ar[(r=e+44|0)>>2])>>>0<(f=0|ar[e+24>>2])>>>0&&(i=ar[r>>2]=f),r=0|ar[e+20>>2],ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=i-r|(ar[A+8>>2]=0))>>>0&&pu(),e>>>0<11?tr[A+11>>0]=e:(f=0|hu(n=e+16&-16),ar[A>>2]=f,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=e,A=f),(0|r)!=(0|i)){for(f=A;tr[f>>0]=0|tr[r>>0],(0|(r=r+1|0))!=(0|i);)f=f+1|0;A=A+e|0}tr[A>>0]=0}else{if(!(8&r))return ar[A>>2]=0,ar[A+4>>2]=0,void(ar[A+8>>2]=0);if(r=0|ar[e+8>>2],f=0|ar[e+16>>2],ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=f-r|(ar[A+8>>2]=0))>>>0&&pu(),e>>>0<11?tr[A+11>>0]=e:(n=0|hu(i=e+16&-16),ar[A>>2]=n,ar[A+8>>2]=-2147483648|i,ar[A+4>>2]=e,A=n),(0|r)!=(0|f)){for(i=A;tr[i>>0]=0|tr[r>>0],(0|(r=r+1|0))!=(0|f);)i=i+1|0;A=A+e|0}tr[A>>0]=0}}function PA(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c=0,l=0,u=0,b=0;if(ur=(a=ur)+16|0,o=a,!(b=0|ar[(A|=0)>>2]))return ur=a,(b=0)|b;if(l=(0|(l=i-(c=e)|0))<(0|(u=0|ar[(t=f+12|0)>>2]))?u-l|0:0,0<(0|(f=(u=r)-c|0))&&(0|xb[63&ar[48+(0|ar[b>>2])>>2]](b,e,f))!=(0|f))return ar[A>>2]=0,ur=a,(b=0)|b;do{if(0<(0|l)){if(ar[o>>2]=0,ar[o+4>>2]=0,c=l>>>(ar[o+8>>2]=0)<11?(tr[(e=o+11|0)>>0]=l,f=o):(f=0|hu(e=l+16&-16),ar[o>>2]=f,ar[o+8>>2]=-2147483648|e,ar[o+4>>2]=l,e=o+11|0,o),vb(0|f,0|n,0|l),((tr[f+l>>0]=0)|xb[63&ar[48+(0|ar[b>>2])>>2]](b,(0|tr[e>>0])<0?0|ar[c>>2]:o,l))!=(0|l))return((ar[A>>2]=0)|tr[e>>0])<0&&vu(0|ar[c>>2]),ur=a,(b=0)|b;(0|tr[e>>0])<0&&vu(0|ar[c>>2]);break}}while(0);return 0<(0|(i=i-u|0))&&(0|xb[63&ar[48+(0|ar[b>>2])>>2]](b,r,i))!=(0|i)?(ar[A>>2]=0,ur=a,(b=0)|b):(ar[t>>2]=0,ur=a,0|b)}function LA(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),HA(f,e,r),We(n,(c=(e=0|tr[(r=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&e),(0|tr[r>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a}function KA(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o,a=0,c=0,l=0;c=0|tr[(f=(e|=0)+36|0)>>0]?12:8,l=1970628964==(0|ar[(o=e+20|0)>>2])?16|c:c,a=(0|ar[(n=r+4|0)>>2])-i-c-(0|ar[r>>2])+l|0,ar[(t=r+12|0)>>2]=i,function(A,e){A|=0;var r,i,f,n,t=0,o=0,a=0,c=0;(0|(e|=0))<=-1&&sr(18843,47382,618,18855),e&&(n=0|ar[(f=A+4|0)>>2],a=c=0|ar[A>>2],(i=(r=(o=n)-c|0)+e|0)>>>0<=r>>>0?i>>>0>>0&&(0|o)!=(0|(t=a+i|0))?ar[f>>2]=t:t=n:(TA(A,e),c=a=0|ar[A>>2],t=0|ar[f>>2]),(t=t-c-e|0)>>>0<=(o=0|ar[A+12>>2])>>>0||wb((A=a+o|0)+e|0,0|A,t-o|0))}(r,l-c|0),UA(r,a),UA(r,0|ar[o>>2]);do{if(1970628964==(0|ar[o>>2])){if(i=e+24|0,16==((0|ar[e+28>>2])-(0|ar[i>>2])|0)){zA(r,i);break}sr(19079,19104,309,19111)}}while(0);do{if(0|tr[f>>0]){if((i=0|ar[e+40>>2])>>>0<16777216){UA(r,cr[e+37>>0]<<24|i);break}sr(19126,19104,314,19111)}}while(0);ar[t>>2]=(0|ar[n>>2])-(0|ar[r>>2]),c=0|ar[(a=56592)+4>>2],ar[(l=A)>>2]=ar[a>>2],ar[l+4>>2]=c,yu(A+8|0,56600)}function Ce(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function qA(A,e,r){A|=0,e|=0;var i,f=0,n=0;if(ur=(i=ur)+16|0,f=i,n=0|FA(r|=0),tr[e+37>>0]=n>>>24,ar[e+40>>2]=16777215&n,tr[e+36>>0]=1,ar[(e=e+16|0)>>2]=4+(0|ar[e>>2]),!(0|tr[r+24>>0]))return f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)}function $A(A,e,r,i){var f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F=0,R=0,N=0,_=0,Y=0;ur=(V=ur)+208|0,N=(r|=0)+16|0,c=r+24|0,l=4+(W=V+184|0)|0,u=(e|=0)+44|0,b=e+48|0,k=12+(C=(I=V)+24|0)|0,h=4+C|0,w=s=64+C|0,v=136+C|0,m=140+C|0,Z=60+C|0,p=11+(X=V+192|0)|0,y=d=8+C|0,B=11+(G=V+168|0)|0,E=11+(g=44+C|0)|0,f=e+52|0,n=-1!=(0|(i|=0)),o=11+(t=I+8|0)|0,a=(A|=0)+8|0,e=0;A:for(;!(0==(0|ar[(R=N)>>2])&0==(0|ar[R+4>>2])||0|tr[c>>0]);){ar[W>>2]=0,ar[l>>2]=0,Ae(I,r,W);do{if((0|ar[I>>2])==(0|ar[14148])){if((R=F=0|ar[b>>2])-(0|ar[u>>2])>>3>>>0<=2e4){R>>>0<(0|ar[f>>2])>>>0?(ar[F>>2]=ar[W>>2],ar[R+4>>2]=ar[l>>2],ar[W>>2]=0,ar[l>>2]=0,ar[b>>2]=R+8):ee(u,W),R=(n&(0|(e=e+1|0))==(0|i))<<31>>31;break}ar[d>>2]=4524,ar[C>>2]=188,ar[s>>2]=208,ar[h>>2]=0,Jf(w,k),ar[v>>2]=0,ar[m>>2]=-1,ar[C>>2]=4504,ar[s>>2]=4544,ar[d>>2]=4524,Sf(k),ar[k>>2]=4340,ar[g>>2]=0,ar[4+g>>2]=0,ar[8+g>>2]=0,ar[12+g>>2]=0,ar[Z>>2]=24,ar[X>>2]=0,ar[4+X>>2]=0,ar[8+X>>2]=0,Xe(k,X),(0|tr[p>>0])<0&&vu(0|ar[X>>2]),We(0|Lf(0|We(y,19273,30),2e4),19304,10),Ie(G,k),oo(A,6,1e3,G),(0|tr[B>>0])<0&&vu(0|ar[G>>2]),ar[C>>2]=4504,ar[s>>2]=4544,ar[y>>2]=4524,ar[k>>2]=4340,(0|tr[E>>0])<0&&vu(0|ar[g>>2]),kf(k),_f(),bf(s),R=1}else F=0|ar[(Y=I)+4>>2],ar[(R=A)>>2]=ar[Y>>2],ar[R+4>>2]=F,ar[a>>2]=ar[t>>2],ar[4+a>>2]=ar[4+t>>2],ar[8+a>>2]=ar[8+t>>2],ar[t>>2]=0,ar[4+t>>2]=0,ar[8+t>>2]=0,R=1}while(0);switch((0|tr[o>>0])<0&&vu(0|ar[t>>2]),0|(F=0|ar[l>>2])&&du(F),3&R){case 0:break;case 3:break A;default:_=28;break A}}ur=(28!=(0|_)&&(0|tr[c>>0]?(ar[X>>2]=0,ar[4+X>>2]=0,ar[8+X>>2]=0,oo(A,2,100,X),(0|tr[11+X>>0])<0&&vu(0|ar[X>>2])):(_=0|ar[(N=56592)+4>>2],ar[(Y=A)>>2]=ar[N>>2],ar[Y+4>>2]=_,yu(a,56600))),V)}function Ae(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;ur=(b=ur)+320|0,p=b+216|0,l=b+144|0,a=(Z=b)+304|0,n=b+292|0,i=b+280|0,f=b+268|0,t=b+256|0,c=b+248|0,ar[(u=b+168|0)>>2]=4264,o=8+u|0,ar[40+u>>2]=0,ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,ar[12+o>>2]=0,ar[16+o>>2]=0,ar[20+o>>2]=0,ar[24+o>>2]=0,or[28+o>>1]=0,re(l,u,e);A:do{if(0|ar[l>>2])B=0|ar[(p=l)+4>>2],ar[(y=A)>>2]=ar[p>>2],ar[y+4>>2]=B,B=8+l|0,ar[(y=A+8|0)>>2]=ar[B>>2],ar[y+4>>2]=ar[B+4>>2],ar[y+8>>2]=ar[B+8>>2],ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0;else{if(0|tr[e+24>>0]){ar[p>>2]=0,ar[p+4>>2]=0,ar[p+8>>2]=0,oo(A,2,100,p),(0|tr[p+11>>0])<0&&vu(0|ar[p>>2]);break}s=0|ar[20+u>>2];e:do{if((0|s)<1768714083){if((0|s)<1718909296){if((0|s)<1668246642){if((0|s)<1635135811){switch(0|s){case 1635088451:break;default:g=133;break e}s=0|hu(96),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5196,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,d=(ar[d>>2]=y)+w|0,ar[h>>2]=d,hb(0|y,0|v,0|w),ar[k>>2]=d;break}zl()}}while(0);v=0|ar[(w=36+u|0)+4>>2],ar[(y=s+52|0)>>2]=ar[w>>2],ar[y+4>>2]=v,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5224,ar[(y=s+72|0)>>2]=0,ar[y+4>>2]=0,ar[y+8>>2]=0,ar[y+12>>2]=0,ar[y+16>>2]=0,ar[y+20>>2]=0;break}if((0|s)<1668047216){switch(0|s){case 1635135811:break;default:g=133;break e}s=0|hu(96),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5556,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){B=0|hu(w),ar[k>>2]=B,y=(ar[d>>2]=B)+w|0,ar[h>>2]=y,hb(0|B,0|v,0|w),ar[k>>2]=y;break}zl()}}while(0);for(w=0|ar[(B=36+u|0)+4>>2],ar[(h=s+52|0)>>2]=ar[B>>2],ar[h+4>>2]=w,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5584,tr[s+72>>0]=1,w=(h=s+73|0)+23|0;(0|(h=h+1|(tr[h>>0]=0)))<(0|w););break}switch(0|s){case 1668047216:break;default:g=133;break e}s=0|hu(104),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5376,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5404,ar[s+72>>2]=0,ar[s+76>>2]=1,ar[s+80>>2]=0,ar[s+84>>2]=1,ar[s+88>>2]=0,ar[s+92>>2]=1,ar[s+96>>2]=0,ar[s+100>>2]=1;break}if((0|s)<1684631142){switch(0|s){case 1668246642:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5916,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5944,ar[s+72>>2]=0,ar[s+76>>2]=0;break}if((0|s)<1685218662){switch(0|s){case 1684631142:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5736,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5764;break}switch(0|s){case 1685218662:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5796,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5824;break}if((0|s)<1752589123){if((0|s)<1735553132){switch(0|s){case 1718909296:break;default:g=133;break e}s=0|hu(96),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4600,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4436,ar[(B=s+72|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0;break}if((0|s)<1751411826){switch(0|s){case 1735553132:break;default:g=133;break e}s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5676,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5704,ar[s+72>>2]=0,ar[s+76>>2]=0,ar[s+80>>2]=0;break}switch(0|s){case 1751411826:break;default:g=133;break e}s=0|hu(104),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4656,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4684,ar[s+72>>2]=0,ar[s+76>>2]=1885954932,ar[(B=s+80|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[B+20>>2]=0;break}if((0|s)<1768186228){switch(0|s){case 1752589123:break;default:g=133;break e}s=0|hu(120),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5496,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5524,ar[s+80>>2]=0,ar[s+84>>2]=0,tr[s+104>>0]=4,ar[s+108>>2]=0,ar[s+112>>2]=0,ar[s+116>>2]=0;break}if((0|s)<1768517222){switch(0|s){case 1768186228:break;default:g=133;break e}s=0|hu(104),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5616,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5644,ar[(B=s+72|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[B+20>>2]=0,ar[B+24>>2]=0;break}switch(0|s){case 1768517222:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4836,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4864;break}if((0|s)<1769104742){if(1768973167<=(0|s)){if((0|s)<1768975713){switch(0|s){case 1768973167:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5016,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5044;break}switch(0|s){case 1768977008:s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4956,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4984;break e;case 1768975713:s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5076,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5104,ar[s+72>>2]=0,ar[s+76>>2]=0,ar[s+80>>2]=0;break e;default:g=133;break e}}if((0|s)<1768778098){switch(0|s){case 1768714083:break;default:g=133;break e}s=0|hu(104),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4776,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4804,B=s+72|0,ar[s+96>>2]=0,ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,tr[B+20>>0]=0;break}if((0|s)<1768842853){switch(0|s){case 1768778098:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5316,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5344,tr[s+72>>0]=0;break}switch(0|s){case 1768842853:break;default:g=133;break e}s=0|hu(144),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4896,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);for(h=0|ar[(w=36+u|0)+4>>2],ar[(d=s+52|0)>>2]=ar[w>>2],ar[d+4>>2]=h,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4924,ar[s+72>>2]=0,w=(h=d=s+80|(or[s+76>>1]=0))+60|0;(0|(h=h+4|(ar[h>>2]=0)))<(0|w););tr[d+60>>0]=0;break}if((0|s)<1835365473){if((0|s)<1769107316){switch(0|s){case 1769104742:break;default:g=133;break e}s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5436,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5464,ar[s+72>>2]=0,ar[s+76>>2]=0,ar[s+80>>2]=0;break}if((0|s)<1769173093){switch(0|s){case 1769107316:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5256,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5284,ar[s+72>>2]=0;break}switch(0|s){case 1769173093:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5136,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5164,ar[s+72>>2]=0,ar[s+76>>2]=0;break}if((0|s)<1885960297){if((0|s)<1885959277){switch(0|s){case 1835365473:break;default:g=133;break e}s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4628,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4468;break}switch(0|s){case 1885959277:break;default:g=133;break e}s=0|hu(80),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=4716,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=4744,ar[s+72>>2]=0;break}if((0|s)<1970433056){switch(0|s){case 1885960297:break;default:g=133;break e}s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5976,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=6004,ar[s+72>>2]=0,ar[s+76>>2]=0,ar[s+80>>2]=0;break}switch(0|s){case 1970433056:break;default:g=133;break e}s=0|hu(88),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=5856,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(v=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[v>>2],ar[B+4>>2]=y,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0,ar[m>>2]=5884,ar[(B=s+72|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0;break}while(0);if(133==(0|g)){s=0|hu(72),ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s>>2]=6036,ar[(m=s+16|0)>>2]=4264,ar[(d=s+24|0)>>2]=ar[o>>2],ar[d+4>>2]=ar[4+o>>2],ar[d+8>>2]=ar[8+o>>2],ar[d+12>>2]=ar[12+o>>2],ar[(d=s+40|0)>>2]=0,ar[(k=s+44|0)>>2]=0,v=(ar[(h=s+48|0)>>2]=0)|ar[24+u>>2],w=(0|ar[28+u>>2])-v|0;do{if(0|w){if(!((0|w)<0)){y=0|hu(w),ar[k>>2]=y,B=(ar[d>>2]=y)+w|0,ar[h>>2]=B,hb(0|y,0|v,0|w),ar[k>>2]=B;break}zl()}}while(0);y=0|ar[(g=36+u|0)+4>>2],ar[(B=s+52|0)>>2]=ar[g>>2],ar[B+4>>2]=y,ar[m>>2]=4404,ar[s+60>>2]=0,ar[s+64>>2]=0,ar[s+68>>2]=0}g=m,d=0|ar[(k=o)>>2],k=0|ar[k+4>>2],h=0|ar[(v=16+u|0)>>2];do{if(k>>>0<0|0==(0|k)&d>>>0>>0)k=Z+64|0,ar[(w=Z+8|0)>>2]=4524,h=Z+12|0,ar[Z>>2]=188,ar[k>>2]=208,Jf(Z+64|(ar[Z+4>>2]=0),h),ar[Z+136>>2]=0,ar[Z+140>>2]=-1,ar[Z>>2]=4504,ar[k>>2]=4544,ar[w>>2]=4524,Sf(h),ar[h>>2]=4340,ar[(w=Z+44|0)>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,ar[w+12>>2]=0,ar[Z+60>>2]=24,ar[p>>2]=0,ar[p+4>>2]=0,ar[p+8>>2]=0,Xe(h,p),(0|tr[p+11>>0])<0&&vu(0|ar[p>>2]),y=0|We(d=Z+8|0,19384,10),B=0|We(0|Kf(y,0|ar[(B=o)>>2],0|ar[B+4>>2]),19395,34),We(0|Lf(B,0|ar[v>>2]),19430,7),Ie(a,h),oo(A,2,101,a),(0|tr[11+a>>0])<0&&vu(0|ar[a>>2]),ar[Z>>2]=4504,ar[k>>2]=4544,ar[d>>2]=4524,ar[h>>2]=4340,(0|tr[w+11>>0])<0&&vu(0|ar[w>>2]),kf(h),_f(),bf(k);else{if(20<(0|ar[e+12>>2])){for(ar[n>>2]=0,ar[4+n>>2]=0,d=(ar[8+n>>2]=0)|hu(64),ar[n>>2]=d,ar[8+n>>2]=-2147483584,k=19438,w=(h=d)+(ar[4+n>>2]=61)|0;tr[h>>0]=0|tr[k>>0],k=k+1|0,(0|(h=h+1|0))<(0|w););if(tr[d+61>>0]=0,oo(A,6,1e3,n),0<=(0|tr[11+n>>0]))break;vu(0|ar[n>>2]);break}if(0|NA(e,B=0|ob(0|d,0|k,0|h,0),D)){if(ar[i>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,oo(A,2,100,i),0<=(0|tr[11+i>>0]))break;vu(0|ar[i>>2]);break}if(d=0|ar[(k=o)>>2],(0|(k=0|ar[k+4>>2]))<0){if(ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,oo(A,2,101,f),0<=(0|tr[11+f>>0]))break;vu(0|ar[f>>2]);break}if(h=0|ob(0|d,0|k,0|ar[v>>2],0),w=D,(0|(y=0|ar[(B=e+16|0)+4>>2]))<(0|w)|((0|y)==(0|w)?(0|ar[B>>2])>>>0>>0:0)){if(ar[t>>2]=0,ar[4+t>>2]=0,ar[8+t>>2]=0,oo(A,2,101,t),0<=(0|tr[11+t>>0]))break;vu(0|ar[t>>2]);break}if(ar[c>>2]=ar[e>>2],d=4+c|0,k=0|ar[e+4>>2],0|(ar[d>>2]=k)&&bu(k),WA(p,c,h,w,e),0|(d=0|ar[d>>2])&&du(d),ns[127&ar[20+(0|ar[m>>2])>>2]](Z,m,p),d=0|ar[(k=Z)+4>>2],ar[(v=l)>>2]=ar[k>>2],ar[v+4>>2]=d,d=Z+8|0,(0|tr[(k=(v=8+l|0)+11|0)>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+l>>2]=0):(tr[v>>0]=0,tr[k>>0]=0),Cu(v,0),ar[v>>2]=ar[d>>2],ar[v+4>>2]=ar[d+4>>2],ar[v+8>>2]=ar[d+8>>2],(0|ar[l>>2])==(0|ar[14148])&&(ar[r>>2]=g,d=0|ar[(B=r+4|0)>>2],ar[B>>2]=s,s=(d&&du(d),0)),k=0|ar[(d=w=p+16|0)>>2],0<(0|(d=0|ar[d+4>>2]))|0==(0|d)&0>>0&&((h=0|ar[p+8>>2])&&(_A(h,k,d),k=0|ar[(d=w)>>2],d=0|ar[d+4>>2]),y=0|ar[p>>2],B=0|ar[y>>2],Z=0|ar[B+20>>2],B=0|tb(0|(B=0|jb[127&ar[B+8>>2]](y)),0|D,0|k,0|d),xb[63&Z](y,B,D),ar[(B=w)>>2]=0,ar[B+4>>2]=0),B=0|ar[(y=l)+4>>2],ar[(d=A)>>2]=ar[y>>2],ar[d+4>>2]=B,ar[(d=A+8|0)>>2]=ar[v>>2],ar[d+4>>2]=ar[v+4>>2],ar[d+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(d=0|ar[p+4>>2])&&du(d),!s)break A}}while(0);du(s)}}while(0);(0|tr[(s=8+l|0)+11>>0])<0&&vu(0|ar[s>>2]),ar[u>>2]=4264,ur=((d=0|ar[24+u>>2])&&((0|ar[(s=28+u|0)>>2])!=(0|d)&&(ar[s>>2]=d),vu(d)),b)}function ee(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;t=0|ar[(b=(A|=0)+4|0)>>2],r=o=0|ar[A>>2],536870911<(f=(l=t-o>>3)+1|0)>>>0&&zl(),a=(u=(0|ar[(i=A+8|0)>>2])-o|0)>>2,a=u>>3>>>0<268435455?a>>>0>>0?f:a:536870911;do{if(a){if(!(536870911>>0)){c=0|hu(a<<3);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(a<<3)|0,ar[(f=n=c+(l<<3)|0)>>2]=ar[e>>2],a=e+4|0,ar[c+(l<<3)+4>>2]=ar[a>>2],ar[e>>2]=0,a=n+8|(ar[a>>2]=0),(0|t)!=(0|r)){for(;t=(l=t)+-8|0,ar[n+-8>>2]=ar[t>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[t>>2]=0,f=n=f+-8|(ar[l>>2]=0),(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function re(A,e,r){A|=0,e|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(o=ur)+208|0,k=o+196|0,a=o+184|0,c=o+24|0,i=o+40|0,f=o+12|0,n=o,0|NA(r|=0,8,0))return ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,oo(A,2,100,a),0<=(0|tr[a+11>>0])||vu(0|ar[a>>2]),void(ur=o);s=0|FA(r),ar[(a=b=e+8|0)>>2]=s,a=(ar[a+4>>2]=0)|FA(r),ar[(s=e+20|0)>>2]=a,ar[(t=e+16|0)>>2]=8,u=b;do{if(1==(0|ar[u>>2])&0==(0|ar[u+4>>2])){if(0|NA(r,8,0))return ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,oo(A,2,100,c),0<=(0|tr[c+11>>0])||vu(0|ar[c>>2]),void(ur=o);if(l=0|FA(r),c=0|FA(r),ar[(a=b)>>2]=c,ar[a+4>>2]=l,ar[t>>2]=8+(0|ar[t>>2]),a=64+i|0,ar[(l=8+i|0)>>2]=4524,c=12+i|0,ar[i>>2]=188,ar[a>>2]=208,Jf(64+i|(ar[4+i>>2]=0),c),ar[136+i>>2]=0,ar[140+i>>2]=-1,ar[i>>2]=4504,ar[a>>2]=4544,ar[l>>2]=4524,Sf(c),ar[c>>2]=4340,ar[(l=44+i|0)>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,ar[l+12>>2]=0,ar[60+i>>2]=24,ar[k>>2]=0,ar[k+4>>2]=0,ar[k+8>>2]=0,Xe(c,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2]),w=0|We(u=8+i|0,23427,9),We(0|Kf(w,0|ar[(h=b)>>2],0|ar[h+4>>2]),23437,24),268435455<(h=0|ar[b+4>>2])>>>0|268435455==(0|h)&4294967295<(0|ar[b>>2])>>>0)return Ie(f,c),oo(A,6,1e3,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),ar[i>>2]=4504,ar[a>>2]=4544,ar[u>>2]=4524,ar[c>>2]=4340,(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),kf(c),_f(),bf(a),void(ur=o);ar[i>>2]=4504,ar[a>>2]=4544,ar[u>>2]=4524,ar[c>>2]=4340,(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),kf(c),_f(),bf(a),a=0|ar[s>>2];break}}while(0);if(1970628964==(0|a)){if(0|NA(r,16,0))return ar[n>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,oo(A,2,100,n),0<=(0|tr[n+11>>0])||vu(0|ar[n>>2]),void(ur=o);do{if(0|CA(r,16,0)){if(b=e+24|0,16<=(c=(u=0|ar[(a=e+28|0)>>2])-(l=0|ar[b>>2])|0)>>>0?16!=(0|c)&&(0|u)!=(0|(d=l+16|0))&&(ar[a>>2]=d):TA(b,16-c|0),a=0|ar[r>>2],c=0|ar[r+4>>2]){bu(c),xb[63&ar[16+(0|ar[a>>2])>>2]](a,0|ar[b>>2],16),du(c);break}xb[63&ar[16+(0|ar[a>>2])>>2]](a,0|ar[b>>2],16);break}}while(0);ar[t>>2]=16+(0|ar[t>>2])}0|tr[r+24>>0]?(ar[k>>2]=0,ar[k+4>>2]=0,ar[k+8>>2]=0,oo(A,2,100,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2])):(h=0|ar[(k=56592)+4>>2],ar[(w=A)>>2]=ar[k>>2],ar[w+4>>2]=h,yu(A+8|0,56600)),ur=o}function ie(A,e,r){A|=0,e|=0;var i,f=0;if(ur=(i=ur)+16|0,f=i,!(0|NA(r|=0,7,0)))return f=0|VA(r),or[e+4>>1]=f,f=0|VA(r),or[e+6>>1]=f,f=0|VA(r),or[e+8>>1]=f,r=(255&(0|IA(r)))>>>7,tr[e+10>>0]=r,r=0|ar[(e=56592)+4>>2],ar[(f=A)>>2]=ar[e>>2],ar[f+4>>2]=r,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)}function fe(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;ur=(t=ur)+16|0,o=t,n=0|hu(32),ar[4+n>>2]=0,ar[8+n>>2]=0,ar[n>>2]=6120,a=0|ar[e>>2],ar[o>>2]=0,ar[(f=o+4|0)>>2]=0,c=(ar[o+8>>2]=0)|ar[r>>2],e=(0|ar[r+4>>2])-c|0,r=c;do{if(e){if(!((0|e)<0)){b=0|hu(e),s=(ar[o>>2]=b)+e|0,ar[o+8>>2]=s,hb(0|b,0|r,0|e),l=b,u=ar[f>>2]=s;break}zl()}else s=b=u=l=0}while(0);if(ar[(c=12+n|0)>>2]=6148,ar[16+n>>2]=a,ar[(r=20+n|0)>>2]=0,ar[(i=24+n|0)>>2]=0,(ar[(o=28+n|0)>>2]=0)|(e=u-l|0)&&((0|e)<0&&zl(),a=0|hu(e),ar[i>>2]=a,ar[r>>2]=a,ar[o>>2]=a+e,0<(0|(e=u-b|0))&&(hb(0|a,0|b,0|e),ar[i>>2]=a+e)),!b)return s=A+4|0,ar[A>>2]=c,ar[s>>2]=n,void(ur=t);(0|s)!=(0|b)&&(ar[f>>2]=b),vu(b),s=A+4|0,ar[A>>2]=c,ar[s>>2]=n,ur=t}function ne(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0;if(ur=(c=ur)+160|0,f=c+136|0,o=(t=c)+56|0,a=t+4|0,ar[t>>2]=292,ar[o>>2]=312,Jf(t+56|0,a),ar[t+128>>2]=0,ar[t+132>>2]=-1,ar[t>>2]=4304,ar[o>>2]=4324,Sf(a),ar[a>>2]=4340,ar[(n=t+36|0)>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,ar[12+n>>2]=0,ar[t+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(a,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),l=1+(0|ar[r>>2])|0,ar[r>>2]=l,(0|(u=0|ar[e+44>>2]))!=(0|(i=0|ar[e+48>>2]))){for(b=11+f|0,s=4+f|0,l=1,e=u;;){if(!l){if(0<(0|ar[r>>2]))for(l=0;We(t,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););We(t,30086,1)}if(u=0|ar[e>>2],ns[127&ar[8+(0|ar[u>>2])>>2]](f,u,r),We(t,(l=(u=0|tr[b>>0])<<24>>24<0)?0|ar[f>>2]:f,l?0|ar[s>>2]:255&u),(0|tr[b>>0])<0&&vu(0|ar[f>>2]),(0|(e=e+8|0))==(0|i))break;l=0}l=0|ar[r>>2]}if(ar[r>>2]=(0|l)<1?0:l+-1|0,Ie(A,a),ar[t>>2]=4304,ar[o>>2]=4324,ar[a>>2]=4340,0<=(0|tr[11+n>>0]))return kf(a),Gf(),bf(o),void(ur=c);vu(0|ar[n>>2]),kf(a),Gf(),bf(o),ur=c}function te(A){var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0;if(ar[(A|=0)>>2]=5704,0|(r=0|ar[(e=A+56|0)>>2])){if((0|(i=0|ar[(a=A+60|0)>>2]))!=(0|r)){for(;o=i+-64|0,ar[a>>2]=o,0|(f=0|ar[i+-12>>2])&&((0|(t=0|ar[(n=i+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),ar[o>>2]=4264,0|(f=0|ar[i+-40>>2])&&((0|ar[(i=i+-36|0)>>2])!=(0|f)&&(ar[i>>2]=f),vu(f)),(0|(i=0|ar[a>>2]))!=(0|r););r=0|ar[e>>2]}vu(r)}if(ar[A>>2]=4404,0|(r=0|ar[(n=A+44|0)>>2])){if((0|(i=0|ar[(t=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[t>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[t>>2]):f))!=(0|r););r=0|ar[n>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function oe(A,e){e|=0;var r=0,i=0,f=0,n=0,t=0,o=0;ar[(A|=0)>>2]=4264,f=e+8|0,ar[(i=A+8|0)>>2]=ar[f>>2],ar[i+4>>2]=ar[f+4>>2],ar[i+8>>2]=ar[f+8>>2],ar[i+12>>2]=ar[f+12>>2],f=e+24|0,ar[(i=A+24|0)>>2]=0,ar[(o=A+28|0)>>2]=0,(ar[A+32>>2]=0)|(r=(0|ar[(n=e+28|0)>>2])-(0|ar[f>>2])|0)&&((0|r)<0&&zl(),t=0|hu(r),ar[o>>2]=t,ar[i>>2]=t,ar[A+32>>2]=t+r,i=0|ar[f>>2],0<(0|(r=(0|ar[n>>2])-i|0))&&(hb(0|t,0|i,0|r),ar[o>>2]=t+r)),t=0|ar[(n=e+36|0)+4>>2],ar[(o=A+36|0)>>2]=ar[n>>2],ar[o+4>>2]=t,ar[A+48>>2]=ar[e+48>>2],Ge(A+52|0,e+52|0)}function ae(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;i=(A|=0)+4|0,f=0|ar[A>>2],67108863<(n=(t=(0|ar[i>>2])-f>>6)+1|0)>>>0&&zl(),f=(c=(0|ar[(l=A+8|0)>>2])-f|0)>>5,f=c>>6>>>0<33554431?f>>>0>>0?n:f:67108863;do{if(f){if(!(67108863>>0)){n=0|hu(f<<6);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else n=0}while(0);if(r=n+(f<<6)|0,oe(t=o=n+(t<<6)|0,e),a=o+64|0,e=0|ar[A>>2],(0|(f=0|ar[i>>2]))==(0|e))f=t,n=c=e;else{for(n=o;oe(n+-64|0,f=f+-64|0),t=n=t+-64|0,(0|f)!=(0|e););f=t,c=0|ar[A>>2],n=0|ar[i>>2]}if(ar[A>>2]=f,ar[i>>2]=a,ar[l>>2]=r,(0|n)!=(0|(a=c)))for(o=n;o=(e=o)+-64|0,0|(f=0|ar[e+-12>>2])&&((0|(t=0|ar[(n=e+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),ar[o>>2]=4264,0|(n=0|ar[e+-40>>2])&&((0|ar[(f=e+-36|0)>>2])!=(0|n)&&(ar[f>>2]=n),vu(n)),(0|o)!=(0|a););c&&vu(c)}function Ge(A,e){e|=0;var r,i,f,n,t=0;ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,(r=(t=((ar[A+8>>2]=0)|ar[(f=e+4|0)>>2])-(0|ar[e>>2])|0)>>2)&&(1073741823>>0&&zl(),i=0|hu(t),ar[n>>2]=i,ar[A>>2]=i,ar[A+8>>2]=i+(r<<2),A=0|ar[e>>2],(0|(t=(0|ar[f>>2])-A|0))<=0||(hb(0|i,0|A,0|t),ar[n>>2]=i+(t>>>2<<2)))}function ce(A){var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0;if(ar[(A|=0)>>2]=5524,0|(r=0|ar[(e=A+92|0)>>2])){if((0|(i=0|ar[(c=A+96|0)>>2]))!=(0|r)){for(f=i;;){if(i=f+-16|0,ar[c>>2]=i,o=0|ar[(a=f+-12|0)>>2]){if((0|(i=0|ar[(t=f+-8|0)>>2]))==(0|o))i=o;else{for(;f=i+-12|0,ar[t>>2]=f,(0|(i=(n=0|ar[f>>2])?((0|ar[(i=i+-8|0)>>2])!=(0|n)&&(ar[i>>2]=n),vu(n),0|ar[t>>2]):f))!=(0|o););i=0|ar[a>>2]}vu(i),i=0|ar[c>>2]}if((0|i)==(0|r))break;f=i}r=0|ar[e>>2]}vu(r)}if(ar[A>>2]=4404,0|(r=0|ar[(n=A+44|0)>>2])){if((0|(i=0|ar[(t=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[t>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[t>>2]):f))!=(0|r););r=0|ar[n>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function le(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=(A|=0)+4|0,i=0|ar[A>>2],268435455<(f=(o=(0|ar[r>>2])-i>>4)+1|0)>>>0&&zl(),i=(c=(0|ar[(l=A+8|0)>>2])-i|0)>>3,i=c>>4>>>0<134217727?i>>>0>>0?f:i:268435455;do{if(i){if(!(268435455>>0)){t=0|hu(i<<4);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else t=0}while(0);if(a=t+(i<<4)|0,or[(n=f=t+(o<<4)|0)>>1]=0|or[e>>1],i=e+4|0,ar[t+(o<<4)+12>>2]=0,ar[t+(o<<4)+4>>2]=ar[i>>2],c=e+8|0,ar[t+(o<<4)+8>>2]=ar[c>>2],e=e+12|0,ar[t+(o<<4)+12>>2]=ar[e>>2],ar[e>>2]=0,ar[c>>2]=0,e=f+16|(ar[i>>2]=0),t=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|t))i=n,f=c=t;else{for(;i=(u=i)+-16|0,or[f+-16>>1]=0|or[i>>1],c=u+-12|0,ar[(o=f+-12|0)>>2]=0,ar[(b=f+-8|0)>>2]=0,ar[f+-4>>2]=0,ar[o>>2]=ar[c>>2],o=u+-8|0,ar[b>>2]=ar[o>>2],u=u+-4|0,ar[f+-4>>2]=ar[u>>2],ar[u>>2]=0,ar[o>>2]=0,n=f=n+-16|(ar[c>>2]=0),(0|i)!=(0|t););i=n,c=0|ar[A>>2],f=0|ar[r>>2]}if(ar[A>>2]=i,ar[r>>2]=e,ar[l>>2]=a,(0|f)!=(0|(A=c))){a=f;do{if(0|(i=0|ar[(e=a+-12|0)>>2])){if((0|(f=0|ar[(o=a+-8|0)>>2]))!=(0|i)){for(;n=f+-12|0,ar[o>>2]=n,(0|(f=(t=0|ar[n>>2])?((0|ar[(f=f+-8|0)>>2])!=(0|t)&&(ar[f>>2]=t),vu(t),0|ar[o>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}a=a+-16|0}while((0|a)!=(0|A))}c&&vu(A)}function ue(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;r=(A|=0)+4|0,i=0|ar[A>>2],357913941<(f=(o=((0|ar[r>>2])-i|0)/12|0)+1|0)>>>0&&zl(),i=(a=((0|ar[(c=A+8|0)>>2])-i|0)/12|0)<<1,i=a>>>0<178956970?i>>>0>>0?f:i:357913941;do{if(i){if(!(357913941>>0)){t=0|hu(12*i|0);break}Zu(c=0|X(8),44519),ar[c>>2]=17660,I(0|c,4016,428)}else t=0}while(0);if(n=f=t+(12*o|0)|0,a=t+(12*i|0)|0,ar[t+(12*o|0)+8>>2]=0,ar[f>>2]=ar[e>>2],i=e+4|0,ar[t+(12*o|0)+4>>2]=ar[i>>2],l=e+8|0,ar[t+(12*o|0)+8>>2]=ar[l>>2],ar[l>>2]=0,ar[i>>2]=0,o=f+12|(ar[e>>2]=0),t=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|t))i=n,f=e=t;else{for(;i=(e=i)+-12|0,ar[(l=f+-12|0)>>2]=0,ar[(u=f+-8|0)>>2]=0,ar[f+-4>>2]=0,ar[l>>2]=ar[i>>2],l=e+-8|0,ar[u>>2]=ar[l>>2],e=e+-4|0,ar[f+-4>>2]=ar[e>>2],ar[e>>2]=0,ar[l>>2]=0,n=f=n+-12|(ar[i>>2]=0),(0|i)!=(0|t););i=n,e=0|ar[A>>2],f=0|ar[r>>2]}if(ar[A>>2]=i,ar[r>>2]=o,ar[c>>2]=a,(0|f)!=(0|(t=e)))for(;0|(n=0|ar[(f=(i=f)+-12|0)>>2])&&((0|ar[(i=i+-8|0)>>2])!=(0|n)&&(ar[i>>2]=n),vu(n)),(0|f)!=(0|t););e&&vu(e)}function be(A){var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0;if(ar[(A|=0)>>2]=5464,0|(r=0|ar[(e=A+56|0)>>2])){if((0|(i=0|ar[(a=A+60|0)>>2]))!=(0|r)){for(;o=i+-64|0,ar[a>>2]=o,0|(f=0|ar[i+-12>>2])&&((0|(t=0|ar[(n=i+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),ar[o>>2]=4264,0|(f=0|ar[i+-40>>2])&&((0|ar[(i=i+-36|0)>>2])!=(0|f)&&(ar[i>>2]=f),vu(f)),(0|(i=0|ar[a>>2]))!=(0|r););r=0|ar[e>>2]}vu(r)}if(ar[A>>2]=4404,0|(r=0|ar[(n=A+44|0)>>2])){if((0|(i=0|ar[(t=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[t>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[t>>2]):f))!=(0|r););r=0|ar[n>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function se(A,e){e|=0;var r=0,i=0,f=0,n=0,t=0,o=0;ar[(A|=0)>>2]=4264,f=e+8|0,ar[(i=A+8|0)>>2]=ar[f>>2],ar[i+4>>2]=ar[f+4>>2],ar[i+8>>2]=ar[f+8>>2],ar[i+12>>2]=ar[f+12>>2],f=e+24|0,ar[(i=A+24|0)>>2]=0,ar[(o=A+28|0)>>2]=0,(ar[A+32>>2]=0)|(r=(0|ar[(n=e+28|0)>>2])-(0|ar[f>>2])|0)&&((0|r)<0&&zl(),t=0|hu(r),ar[o>>2]=t,ar[i>>2]=t,ar[A+32>>2]=t+r,i=0|ar[f>>2],0<(0|(r=(0|ar[n>>2])-i|0))&&(hb(0|t,0|i,0|r),ar[o>>2]=t+r)),t=0|ar[(n=e+36|0)+4>>2],ar[(o=A+36|0)>>2]=ar[n>>2],ar[o+4>>2]=t,ar[A+48>>2]=ar[e+48>>2],Ge(A+52|0,e+52|0)}function de(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;i=(A|=0)+4|0,f=0|ar[A>>2],67108863<(n=(t=(0|ar[i>>2])-f>>6)+1|0)>>>0&&zl(),f=(c=(0|ar[(l=A+8|0)>>2])-f|0)>>5,f=c>>6>>>0<33554431?f>>>0>>0?n:f:67108863;do{if(f){if(!(67108863>>0)){n=0|hu(f<<6);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else n=0}while(0);if(r=n+(f<<6)|0,se(t=o=n+(t<<6)|0,e),a=o+64|0,e=0|ar[A>>2],(0|(f=0|ar[i>>2]))==(0|e))f=t,n=c=e;else{for(n=o;se(n+-64|0,f=f+-64|0),t=n=t+-64|0,(0|f)!=(0|e););f=t,c=0|ar[A>>2],n=0|ar[i>>2]}if(ar[A>>2]=f,ar[i>>2]=a,ar[l>>2]=r,(0|n)!=(0|(a=c)))for(o=n;o=(e=o)+-64|0,0|(f=0|ar[e+-12>>2])&&((0|(t=0|ar[(n=e+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),ar[o>>2]=4264,0|(n=0|ar[e+-40>>2])&&((0|ar[(f=e+-36|0)>>2])!=(0|n)&&(ar[f>>2]=n),vu(n)),(0|o)!=(0|a););c&&vu(c)}function ke(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;t=0|ar[(b=(A|=0)+4|0)>>2],r=o=0|ar[A>>2],536870911<(f=(l=t-o>>3)+1|0)>>>0&&zl(),a=(u=(0|ar[(i=A+8|0)>>2])-o|0)>>2,a=u>>3>>>0<268435455?a>>>0>>0?f:a:536870911;do{if(a){if(!(536870911>>0)){c=0|hu(a<<3);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(a<<3)|0,ar[(f=n=c+(l<<3)|0)>>2]=ar[e>>2],a=e+4|0,ar[c+(l<<3)+4>>2]=ar[a>>2],ar[e>>2]=0,a=n+8|(ar[a>>2]=0),(0|t)!=(0|r)){for(;t=(l=t)+-8|0,ar[n+-8>>2]=ar[t>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[t>>2]=0,f=n=f+-8|(ar[l>>2]=0),(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function he(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;l=0|ar[(b=(A|=0)+4|0)>>2],r=f=0|ar[A>>2],89478485<(n=(c=((t=l)-f|0)/48|0)+1|0)>>>0&&zl(),o=(u=((0|ar[(i=A+8|0)>>2])-f|0)/48|0)<<1,o=u>>>0<44739242?o>>>0>>0?n:o:89478485;do{if(o){if(!(89478485>>0)){a=0|hu(48*o|0);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else a=0}while(0);if(u=a+(48*o|0)|0,ar[(f=n=a+(48*c|0)|0)>>2]=ar[e>>2],o=e+4|0,ar[a+(48*c|0)+4>>2]=ar[o>>2],s=e+8|0,ar[a+(48*c|0)+8>>2]=ar[s>>2],ar[o>>2]=0,o=e+12|(ar[s>>2]=0),ar[(s=a+(48*c|0)+12|0)>>2]=ar[o>>2],ar[s+4>>2]=ar[o+4>>2],ar[s+8>>2]=ar[o+8>>2],ar[s+12>>2]=ar[o+12>>2],s=e+28|0,ar[a+(48*c|0)+28>>2]=ar[s>>2],o=e+32|0,ar[a+(48*c|0)+32>>2]=ar[o>>2],ar[s>>2]=0,a=a+(48*c|(ar[o>>2]=0))+36|0,c=e+36|0,ar[a>>2]=ar[c>>2],ar[a+4>>2]=ar[c+4>>2],ar[a+8>>2]=ar[c+8>>2],a=n+48|0,(0|t)==(0|r))o=l;else{for(;t=(l=t)+-48|0,ar[n+-48>>2]=ar[t>>2],s=l+-44|0,ar[n+-44>>2]=ar[s>>2],c=l+-40|0,ar[n+-40>>2]=ar[c>>2],ar[s>>2]=0,s=l+-36|(ar[c>>2]=0),ar[(c=n+-36|0)>>2]=ar[s>>2],ar[c+4>>2]=ar[s+4>>2],ar[c+8>>2]=ar[s+8>>2],ar[c+12>>2]=ar[s+12>>2],c=l+-20|0,ar[n+-20>>2]=ar[c>>2],s=l+-16|0,ar[n+-16>>2]=ar[s>>2],ar[c>>2]=0,l=l+-12|(ar[s>>2]=0),ar[(s=n+-12|0)>>2]=ar[l>>2],ar[s+4>>2]=ar[l+4>>2],ar[s+8>>2]=ar[l+8>>2],f=n=f+-48|0,(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,n=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|n)!=(0|(t=o)))for(;0|(f=0|ar[n+-16>>2])&&du(f),f=0|ar[n+-40>>2],n=n+-48|0,0|f&&du(f),(0|n)!=(0|t););o&&vu(o)}function we(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;r=(A|=0)+4|0,i=0|ar[A>>2],89478485<(f=(o=((0|ar[r>>2])-i|0)/48|0)+1|0)>>>0&&zl(),i=(a=((0|ar[(c=A+8|0)>>2])-i|0)/48|0)<<1,i=a>>>0<44739242?i>>>0>>0?f:i:89478485;do{if(i){if(!(89478485>>0)){t=0|hu(48*i|0);break}Zu(c=0|X(8),44519),ar[c>>2]=17660,I(0|c,4016,428)}else t=0}while(0);if(a=t+(48*i|0)|0,ar[(n=f=t+(48*o|0)|0)>>2]=ar[e>>2],ar[t+(48*o|0)+4>>2]=ar[e+4>>2],i=0|ar[e+8>>2],0|(ar[t+(48*o|0)+8>>2]=i)&&bu(i),l=e+12|0,ar[(i=t+(48*o|0)+12|0)>>2]=ar[l>>2],ar[i+4>>2]=ar[l+4>>2],ar[i+8>>2]=ar[l+8>>2],ar[i+12>>2]=ar[l+12>>2],ar[t+(48*o|0)+28>>2]=ar[e+28>>2],i=0|ar[e+32>>2],0|(ar[t+(48*o|0)+32>>2]=i)&&bu(i),e=e+36|0,ar[(o=t+(48*o|0)+36|0)>>2]=ar[e>>2],ar[o+4>>2]=ar[e+4>>2],ar[o+8>>2]=ar[e+8>>2],o=f+48|0,e=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|e))i=n,f=t=e;else{for(;i=(t=i)+-48|0,ar[f+-48>>2]=ar[i>>2],l=t+-44|0,ar[f+-44>>2]=ar[l>>2],u=t+-40|0,ar[f+-40>>2]=ar[u>>2],ar[l>>2]=0,l=t+-36|(ar[u>>2]=0),ar[(u=f+-36|0)>>2]=ar[l>>2],ar[u+4>>2]=ar[l+4>>2],ar[u+8>>2]=ar[l+8>>2],ar[u+12>>2]=ar[l+12>>2],u=t+-20|0,ar[f+-20>>2]=ar[u>>2],l=t+-16|0,ar[f+-16>>2]=ar[l>>2],ar[u>>2]=0,t=t+-12|(ar[l>>2]=0),ar[(l=f+-12|0)>>2]=ar[t>>2],ar[l+4>>2]=ar[t+4>>2],ar[l+8>>2]=ar[t+8>>2],n=f=n+-48|0,(0|i)!=(0|e););i=n,t=0|ar[A>>2],f=0|ar[r>>2]}if(ar[A>>2]=i,ar[r>>2]=o,ar[c>>2]=a,(0|f)!=(0|(n=t)))for(;0|(i=0|ar[f+-16>>2])&&du(i),i=0|ar[f+-40>>2],f=f+-48|0,0|i&&du(i),(0|f)!=(0|n););t&&vu(t)}function ve(A,e){var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if((e|=0)>>>0<=(t=0|ar[(i=(A|=0)+8|0)>>2])-(f=n=0|ar[(u=A+4|0)>>2])>>3>>>0)return vb(0|n,0,e<<3|0),void(ar[u>>2]=f+(e<<3));r=l=0|ar[A>>2],536870911<(n=(a=n-l>>3)+e|0)>>>0&&zl(),o=(c=t-l|0)>>2,o=c>>3>>>0<268435455?o>>>0>>0?n:o:536870911;do{if(o){if(!(536870911>>0)){c=0|hu(o<<3);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else c=0}while(0);if(n=c+(a<<3)|0,c=c+(o<<3)|0,vb(0|(t=n),0,e<<3|0),a=n+(e<<3)|0,(0|f)==(0|r))o=l;else{for(;f=(l=f)+-8|0,ar[n+-8>>2]=ar[f>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[f>>2]=0,t=n=t+-8|(ar[l>>2]=0),(0|f)!=(0|r););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=c,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function me(A,e,r,i,f,n){A|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0;ur=(p=ur)+128|0,u=p+108|0,b=p+115|0,Z=p+96|0,s=p+112|0,g=p+56|0,k=p+32|0,h=p+8|0,d=p,X=0|ar[(e|=0)>>2],y=0|ar[X+24>>2],B=0|ar[X+28>>2];do{if(0|Eo(X,6)){if((0|Xo(0|ar[e>>2],6))==(0|y)&&(0|Wo(0|ar[e>>2],6))==(0|B))break;return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p)}}while(0);if(0==(0|r)&3>>0)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if(X=0|ar[e>>2],a=0|ar[X+32>>2],c=0|ar[X+36>>2],E=0|Eo(X,6)?1:0|tl(0|ar[36+(0|ar[e>>2])>>2]),y=0|ar[e>>2],l=0|ar[y+40>>2],(X=0==(0|(m=0|ar[y+44>>2])))||(bu(m),y=0|ar[e>>2]),Io(Z,y),0|ar[8+Z>>2]||sr(34377,32248,3067,32272),t=255&(0|Vo(0|ar[e>>2],0|ar[16+(0|ar[Z>>2])>>2])),tr[s>>0]=0|tr[b>>0],tr[1+s>>0]=0|tr[1+b>>0],tr[2+s>>0]=0|tr[2+b>>0],X||bu(m),o=0|ar[f>>2],(v=0==(0|(w=0|ar[f+4>>2])))||bu(w),X||du(m),B=1<(0|function(A){var e=0;switch(0|(A|=0)){case 3:case 2:case 1:case 0:case 99:e=1;break;case 14:case 12:case 10:e=3;break;case 15:case 13:case 11:e=4;break;default:sr(55739,25597,118,25653)}return 0|e}(i))?0|tl(i):E,y=11==(1|i)?8:0==(0|n)?t:n,ar[g>>2]=0,ar[(n=4+g|0)>>2]=0,ar[8+g>>2]=0,ar[12+g>>2]=99,ar[16+g>>2]=99,tr[20+g>>0]=0,ar[24+g>>2]=8,ar[28+g>>2]=0,ar[(f=32+g|0)>>2]=0,ar[36+g>>2]=3,ar[k>>2]=a,ar[4+k>>2]=c,tr[8+k>>0]=1&E,tr[(E=9+k|0)>>0]=0|tr[b>>0],tr[E+1>>0]=0|tr[1+b>>0],tr[E+2>>0]=0|tr[2+b>>0],ar[12+k>>2]=t,ar[16+k>>2]=l,ar[20+k>>2]=m,X||bu(m),ar[h>>2]=r,ar[4+h>>2]=i,tr[8+h>>0]=1&B,tr[(r=9+h|0)>>0]=0|tr[s>>0],tr[r+1>>0]=0|tr[1+s>>0],tr[r+2>>0]=0|tr[2+s>>0],ar[12+h>>2]=12==(-4&i|0)&(0|y)<9?10:y,ar[16+h>>2]=o,ar[20+h>>2]=w,v||bu(w),ar[d>>2]=3,ar[u>>2]=ar[d>>2],y=0|function(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0,uA=0,bA=0,sA=0,dA=0,kA=0,hA=0,wA=0,vA=0,mA=0;if(ur=(v=ur)+256|0,o=v+96|0,mA=v+232|0,w=v+168|0,h=v+156|0,R=v+80|0,s=v+144|0,d=v+208|0,k=v+184|0,b=v+180|0,c=(l=v)+244|0,u=v+64|0,a=v+48|0,Z=0|ar[(A|=0)>>2],(0|(m=0|ar[(wA=A+4|0)>>2]))!=(0|Z))for(;g=m+-8|0,ar[wA>>2]=g,(0|(m=(m=0|ar[m+-4>>2])?(du(m),0|ar[wA>>2]):g))!=(0|Z););if(ar[(kA=A+12|0)>>2]=ar[r>>2],ar[kA+4>>2]=ar[r+4>>2],ar[kA+8>>2]=ar[r+8>>2],ar[kA+12>>2]=ar[r+12>>2],m=0|ar[(kA=r+16|0)>>2],0|(g=0|ar[(t=r+20|0)>>2])&&bu(g),ar[A+28>>2]=m,m=0|ar[(vA=A+32|0)>>2],ar[vA>>2]=g,0|m&&du(m),ar[A+36>>2]=ar[i>>2],(0|ar[e>>2])==(0|ar[r>>2])&&(0|ar[e+4>>2])==(0|ar[r+4>>2])&&(0|tr[e+8>>0])==(0|tr[r+8>>0])&&(0|ar[e+12>>2])==(0|ar[r+12>>2]))return ur=v,0|(mA=1);ar[mA>>2]=0,ar[(vA=mA+4|0)>>2]=0,y=(ar[mA+8>>2]=0)|hu(16),ar[y+4>>2]=0,ar[y+8>>2]=0,ar[y>>2]=6932,ar[(m=y+12|0)>>2]=6492,ar[o>>2]=m,ar[(m=4+o|0)>>2]=y,y=mA+8|0,ke(mA,o),0|(m=0|ar[m>>2])&&du(m),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=6960,ar[(m=g+12|0)>>2]=6988,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7012,ar[(m=g+12|0)>>2]=7040,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7064,ar[(m=g+12|0)>>2]=6516,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7092,ar[(m=g+12|0)>>2]=6540,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7120,ar[(m=g+12|0)>>2]=6908,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7148,ar[(m=g+12|0)>>2]=6564,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7176,ar[(m=g+12|0)>>2]=6588,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7204,ar[(m=g+12|0)>>2]=6660,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7232,ar[(m=g+12|0)>>2]=6684,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7260,ar[(m=g+12|0)>>2]=6636,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7288,ar[(m=g+12|0)>>2]=6612,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7316,ar[(m=g+12|0)>>2]=6708,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7344,ar[(m=g+12|0)>>2]=6732,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,(p=0|ar[vA>>2])>>>0>=(0|ar[y>>2])>>>0?(ke(mA,o),0|(m=0|ar[Z>>2])&&du(m)):(ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8),g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7372,ar[(m=g+12|0)>>2]=7400,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7424,ar[(m=g+12|0)>>2]=7452,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7476,ar[(m=g+12|0)>>2]=6756,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7504,ar[(m=g+12|0)>>2]=6780,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7532,ar[(m=g+12|0)>>2]=6832,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);g=0|hu(16),ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g>>2]=7560,ar[(m=g+12|0)>>2]=6884,ar[o>>2]=m,ar[(Z=4+o|0)>>2]=g,p=0|ar[vA>>2];do{if(p>>>0<(0|ar[y>>2])>>>0)ar[p>>2]=m,ar[p+4>>2]=g,ar[o>>2]=0,ar[Z>>2]=0,ar[vA>>2]=p+8;else{if(ke(mA,o),!(m=0|ar[Z>>2]))break;du(m)}}while(0);ar[w>>2]=0,ar[(n=4+w|0)>>2]=0,ar[8+w>>2]=0,ar[h>>2]=0,ar[(f=4+h|0)>>2]=0,ar[8+h>>2]=0,ar[R>>2]=ar[e>>2],ar[R+4>>2]=ar[e+4>>2],ar[R+8>>2]=ar[e+8>>2],ar[R+12>>2]=ar[e+12>>2],p=0|ar[e+16>>2],(I=0==(0|(W=0|ar[e+20>>2])))||bu(W),B=4+o|0,X=8+o|0,E=12+o|0,ar[(e=28+o|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[o>>2]=-1,ar[B>>2]=0,ar[X>>2]=0,ar[E>>2]=ar[R>>2],ar[E+4>>2]=ar[R+4>>2],ar[E+8>>2]=ar[R+8>>2],ar[E+12>>2]=ar[R+12>>2],e=28+o|0,g=W;do{if(I)dA=32+o|0,ar[e>>2]=p,ar[dA>>2]=g,y=e,g=p=dA;else{if(bu(W),m=0|ar[(Z=32+o|0)>>2],ar[e>>2]=p,ar[Z>>2]=g,!m){y=e,g=p=Z;break}du(m),y=e,g=p=Z}}while(0);gA[36+o>>2]=0,gA[40+o>>2]=0,m=(gA[44+o>>2]=0)|ar[f>>2],dA=8+h|0;do{if(m>>>0<(0|ar[dA>>2])>>>0)ar[m>>2]=ar[o>>2],ar[m+4>>2]=ar[B>>2],ar[m+8>>2]=ar[X>>2],ar[B>>2]=0,ar[X>>2]=0,ar[(sA=m+12|0)>>2]=ar[E>>2],ar[sA+4>>2]=ar[E+4>>2],ar[sA+8>>2]=ar[E+8>>2],ar[sA+12>>2]=ar[E+12>>2],ar[m+28>>2]=ar[y>>2],ar[m+32>>2]=ar[g>>2],ar[e>>2]=0,bA=36+o|(ar[p>>2]=0),ar[(sA=m+36|0)>>2]=ar[bA>>2],ar[sA+4>>2]=ar[bA+4>>2],ar[sA+8>>2]=ar[bA+8>>2],ar[f>>2]=m+48;else{if(he(h,o),!(m=0|ar[p>>2]))break;du(m)}}while(0);0|(m=0|ar[X>>2])&&du(m),I||du(W),m=0|ar[h>>2],g=0|ar[f>>2];A:do{if((0|m)==(0|g))p=0;else{P=8+w|0,L=r+4|0,K=r+8|0,q=r+12|0,$=16+d|0,AA=20+d|0,eA=16+k|0,rA=20+k|0,iA=4+s|0,fA=l+4|0,nA=l+8|0,tA=l+12|0,oA=l+16|0,aA=l+20|0,cA=l+24|0,uA=lA=l+28|0,bA=l+32|0,H=l+40|0,x=l+44|0,sA=j=l+36|0,C=0;e:for(;;){if((0|g)==(0|m))g=-1;else for(p=(g-m|0)/48|0,g=-1,Z=0;C=(z=0==(0|Z)|(F=.30000001192092896*gA[m+(48*Z|0)+36>>2]+.6000000238418579*gA[m+(48*Z|0)+40>>2]+.10000000149011612*gA[m+(48*Z|0)+44>>2])>>0

>>0;);for(Z=m+(48*g|0)|0,(0|(p=0|ar[n>>2]))==(0|ar[P>>2])?we(w,Z):(ar[p>>2]=ar[Z>>2],ar[p+4>>2]=ar[m+(48*g|0)+4>>2],Z=0|ar[m+(48*g|0)+8>>2],0|(ar[p+8>>2]=Z)&&bu(Z),z=m+(48*g|0)+12|0,ar[(Z=p+12|0)>>2]=ar[z>>2],ar[Z+4>>2]=ar[z+4>>2],ar[Z+8>>2]=ar[z+8>>2],ar[Z+12>>2]=ar[z+12>>2],ar[p+28>>2]=ar[m+(48*g|0)+28>>2],Z=0|ar[m+(48*g|0)+32>>2],0|(ar[p+32>>2]=Z)&&bu(Z),O=m+(48*g|0)+36|0,ar[(z=p+36|0)>>2]=ar[O>>2],ar[z+4>>2]=ar[O+4>>2],ar[z+8>>2]=ar[O+8>>2],ar[n>>2]=48+(0|ar[n>>2])),p=0|ar[f>>2],y=0|ar[h>>2],ar[y+(48*g|0)>>2]=ar[p+-48>>2],m=0|ar[p+-44>>2],0|(Z=0|ar[p+-40>>2])&&bu(Z),ar[y+(48*g|0)+4>>2]=m,m=0|ar[(z=y+(48*g|0)+8|0)>>2],ar[z>>2]=Z,0|m&&du(m),Z=p+-36|0,ar[(m=y+(48*g|0)+12|0)>>2]=ar[Z>>2],ar[m+4>>2]=ar[Z+4>>2],ar[m+8>>2]=ar[Z+8>>2],ar[m+12>>2]=ar[Z+12>>2],m=0|ar[p+-20>>2],0|(Z=0|ar[p+-16>>2])&&bu(Z),ar[y+(48*g|0)+28>>2]=m,m=0|ar[(z=y+(48*g|0)+32|0)>>2],ar[z>>2]=Z,0|m&&du(m),m=y+(48*g|0)+36|0,g=p+-12|0,ar[m>>2]=ar[g>>2],ar[m+4>>2]=ar[g+4>>2],ar[m+8>>2]=ar[g+8>>2],g=(m=0|ar[f>>2])+-48|0;ar[f>>2]=m+-48,0|(Z=0|ar[m+-16>>2])&&du(Z),0|(m=0|ar[m+-40>>2])&&du(m),(0|(m=0|ar[f>>2]))!=(0|g););Z=0|ar[n>>2];do{if((0|ar[Z+-36>>2])==(0|ar[r>>2])){if((0|ar[Z+-32>>2])!=(0|ar[L>>2]))break;if((0|tr[Z+-28>>0])!=(0|tr[K>>0]))break;if((0|ar[Z+-24>>2])==(0|ar[q>>2]))break e}}while(0);if((0|(m=0|ar[mA>>2]))!=(0|(z=0|ar[vA>>2]))){for(;;){if(p=0|ar[m>>2],y=0|ar[8+(0|ar[p>>2])>>2],g=Z+-36|0,ar[d>>2]=ar[g>>2],ar[4+d>>2]=ar[g+4>>2],ar[8+d>>2]=ar[g+8>>2],ar[12+d>>2]=ar[g+12>>2],ar[$>>2]=ar[Z+-20>>2],g=0|ar[Z+-16>>2],0|(ar[AA>>2]=g)&&bu(g),ar[k>>2]=ar[r>>2],ar[4+k>>2]=ar[r+4>>2],ar[8+k>>2]=ar[r+8>>2],ar[12+k>>2]=ar[r+12>>2],ar[eA>>2]=ar[kA>>2],g=0|ar[t>>2],0|(ar[rA>>2]=g)&&bu(g),ar[b>>2]=ar[i>>2],ar[o>>2]=ar[b>>2],os[63&y](s,p,d,k,o),0|(g=0|ar[rA>>2])&&du(g),0|(g=0|ar[AA>>2])&&du(g),(0|(g=0|ar[s>>2]))!=(0|(S=0|ar[iA>>2]))){O=m+4|0;do{if((0|(y=p=0|ar[w>>2]))!=(0|(U=W=0|ar[n>>2]))){e=0|ar[g>>2],B=g+4|0,E=g+8|0,X=g+12|0,Z=0;r:do{do{if((0|ar[p+12>>2])==(0|e)){if((0|ar[p+16>>2])!=(0|ar[B>>2]))break;if((0|tr[p+20>>0])!=(0|tr[E>>0]))break;if(Z|=T=(0|ar[p+24>>2])==(0|ar[X>>2]),T)break r}}while(0);p=p+48|0}while((0|p)!=(0|W));Z||(hA=182)}else hA=182;r:do{if(182==(0|hA)){Z=(hA=0)|ar[h>>2],p=0|ar[f>>2];i:do{if((0|Z)!=(0|p)){T=0|ar[g>>2],e=g+4|0,B=g+8|0,E=g+12|0;f:for(;;){N=Z+12|0;do{if((0|ar[N>>2])==(0|T)){if((0|(Y=0|ar[(_=Z+16|0)>>2]))!=(0|ar[e>>2]))break;if((D=0|tr[(Q=Z+20|0)>>0])<<24>>24!=(0|tr[B>>0]))break;if((0|(M=0|ar[(J=Z+24|0)>>2]))==(0|ar[E>>2]))break f}}while(0);if((0|(Z=Z+48|0))==(0|p))break i}if(V=+gA[(p=g+24|0)>>2]+ +gA[W+-12>>2],F=+gA[g+28>>2]+ +gA[W+-8>>2],G=+gA[g+32>>2]+ +gA[W+-4>>2],X=Z+40|0,W=Z+44|0,!(.30000001192092896*gA[(E=Z+36|0)>>2]+.6000000238418579*gA[X>>2]+.10000000149011612*gA[W>>2]>.30000001192092896*V+.6000000238418579*F+.10000000149011612*G))break r;B=g+9|0,tr[c>>0]=0|tr[B>>0],tr[1+c>>0]=0|tr[B+1>>0],tr[2+c>>0]=0|tr[B+2>>0],B=0|ar[g+16>>2],(R=0==(0|(I=0|ar[g+20>>2])))||bu(I),ar[u>>2]=ar[p>>2],ar[4+u>>2]=ar[p+4>>2],ar[8+u>>2]=ar[p+8>>2],ar[l>>2]=0,ar[l+4>>2]=0,p=(ar[l+8>>2]=0)|ar[m>>2],0|(e=0|ar[O>>2])&&bu(e),tr[o>>0]=0|tr[c>>0],tr[1+o>>0]=0|tr[1+c>>0],tr[2+o>>0]=0|tr[2+c>>0],R||bu(I),ar[l>>2]=ar[u>>2],ar[l+4>>2]=ar[4+u>>2],ar[l+8>>2]=ar[8+u>>2],ar[Z>>2]=((U-y|0)/48|0)-1,ar[Z+4>>2]=p,p=0|ar[(U=Z+8|0)>>2],ar[U>>2]=e,0|p&&du(p),ar[N>>2]=T,ar[_>>2]=Y,tr[Q>>0]=D,tr[(U=Z+21|0)>>0]=0|tr[o>>0],tr[U+1>>0]=0|tr[1+o>>0],tr[U+2>>0]=0|tr[2+o>>0],ar[J>>2]=M,ar[Z+28>>2]=B,p=0|ar[(U=Z+32|0)>>2],ar[U>>2]=I,0|p&&du(p),ar[E>>2]=ar[l>>2],ar[E+4>>2]=ar[l+4>>2],ar[E+8>>2]=ar[l+8>>2],R||du(I),gA[Z+36>>2]=V,gA[X>>2]=F,gA[W>>2]=G;break r}}while(0);ar[o>>2]=ar[g>>2],ar[4+o>>2]=ar[g+4>>2],ar[8+o>>2]=ar[g+8>>2],ar[12+o>>2]=ar[g+12>>2],e=0|ar[g+16>>2],(E=0==(0|(B=0|ar[g+20>>2])))?(p=W,Z=U):(bu(B),p=Z=0|ar[n>>2],y=0|ar[w>>2]),V=+gA[g+24>>2]+ +gA[p+-12>>2],F=+gA[g+28>>2]+ +gA[p+-8>>2],G=+gA[g+32>>2]+ +gA[p+-4>>2],ar[a>>2]=ar[o>>2],ar[4+a>>2]=ar[4+o>>2],ar[8+a>>2]=ar[8+o>>2],ar[12+a>>2]=ar[12+o>>2],E||bu(B),ar[fA>>2]=0,ar[nA>>2]=0,ar[tA>>2]=99,ar[oA>>2]=99,tr[aA>>0]=0,ar[cA>>2]=8,ar[lA>>2]=0,ar[lA+4>>2]=0,ar[lA+8>>2]=0,ar[lA+12>>2]=0,ar[lA+16>>2]=0,ar[l>>2]=((Z-y|0)/48|0)-1,p=0|ar[m>>2],y=Z=0|ar[O>>2];do{if(Z){if(bu(Z),Z=0|ar[nA>>2],ar[fA>>2]=p,ar[nA>>2]=y,!Z)break;du(Z)}else ar[fA>>2]=p,ar[nA>>2]=y}while(0);ar[tA>>2]=ar[a>>2],ar[tA+4>>2]=ar[4+a>>2],ar[tA+8>>2]=ar[8+a>>2],ar[tA+12>>2]=ar[12+a>>2],E||bu(B),ar[uA>>2]=e,Z=0|ar[bA>>2],ar[bA>>2]=B,0|Z&&du(Z),gA[j>>2]=V,gA[H>>2]=F,gA[x>>2]=G,Z=0|ar[f>>2];do{if(Z>>>0<(0|ar[dA>>2])>>>0)ar[Z>>2]=ar[l>>2],ar[Z+4>>2]=ar[fA>>2],ar[Z+8>>2]=ar[nA>>2],ar[fA>>2]=0,ar[nA>>2]=0,ar[(U=Z+12|0)>>2]=ar[tA>>2],ar[U+4>>2]=ar[tA+4>>2],ar[U+8>>2]=ar[tA+8>>2],ar[U+12>>2]=ar[tA+12>>2],ar[Z+28>>2]=ar[uA>>2],ar[Z+32>>2]=ar[bA>>2],ar[uA>>2]=0,ar[bA>>2]=0,ar[(U=Z+36|0)>>2]=ar[sA>>2],ar[U+4>>2]=ar[sA+4>>2],ar[U+8>>2]=ar[sA+8>>2],ar[f>>2]=Z+48;else{if(he(h,l),!(Z=0|ar[bA>>2]))break;du(Z)}}while(0);0|(Z=0|ar[nA>>2])&&du(Z),E||(du(B),du(B))}}while(0);g=g+36|0}while((0|g)!=(0|S));g=0|ar[s>>2]}if(0|g){if((0|(Z=0|ar[iA>>2]))!=(0|g)){for(;p=Z+-36|0,ar[iA>>2]=p,(0|(Z=(Z=0|ar[Z+-16>>2])?(du(Z),0|ar[iA>>2]):p))!=(0|g););g=0|ar[s>>2]}vu(g)}if((0|(m=m+8|0))==(0|z))break;Z=0|ar[n>>2]}g=0|ar[f>>2]}if((0|(m=0|ar[h>>2]))==(0|g)){p=0;break A}}if(m=((Z-(hA=0|ar[w>>2])|0)/48|0)-1|0,Z=hA,m)for(g=0;g=g+1|0,0!=(0|(m=0|ar[Z+(48*m|0)>>2])););else g=0;m=(p=0|ar[wA>>2])-(Z=0|ar[A>>2])>>3;do{if(m>>>0>>0)ve(A,g-m|0);else{if(m>>>0<=g>>>0)break;if((0|p)==(0|(y=Z+(g<<3)|0)))break;for(Z=p;m=Z+-8|0,ar[wA>>2]=m,(Z=0|ar[Z+-4>>2])&&(du(Z),m=0|ar[wA>>2]),(0|m)!=(0|y);)Z=m}}while(0);if(Z=0|ar[w>>2],0|(m=(((0|ar[n>>2])-Z|0)/48|0)-1|0))for(B=g+-1|0,e=0;g=B-e|0,p=0|ar[A>>2],y=0|ar[Z+(48*m|0)+4>>2],0|(Z=0|ar[Z+(48*m|0)+8>>2])&&bu(Z),ar[p+(g<<3)>>2]=y,g=0|ar[(wA=p+(g<<3)+4|0)>>2],ar[wA>>2]=Z,0|g&&du(g),Z=0|ar[w>>2],m=0|ar[Z+(48*m|0)>>2];)e=e+1|0;p=1,m=0|ar[h>>2]}}while(0);if(0|m){if((0|(g=0|ar[f>>2]))!=(0|m)){for(;ar[f>>2]=g+-48,0|(Z=0|ar[g+-16>>2])&&du(Z),0|(g=0|ar[g+-40>>2])&&du(g),(0|(g=0|ar[f>>2]))!=(0|m););m=0|ar[h>>2]}vu(m)}if(0|(m=0|ar[w>>2])){if((0|(g=0|ar[n>>2]))!=(0|m)){for(;ar[n>>2]=g+-48,0|(Z=0|ar[g+-16>>2])&&du(Z),0|(g=0|ar[g+-40>>2])&&du(g),(0|(g=0|ar[n>>2]))!=(0|m););m=0|ar[w>>2]}vu(m)}if(0|(m=0|ar[mA>>2])){if((0|(g=0|ar[vA>>2]))!=(0|m)){for(;Z=g+-8|0,ar[vA>>2]=Z,(0|(g=(g=0|ar[g+-4>>2])?(du(g),0|ar[vA>>2]):Z))!=(0|m););m=0|ar[mA>>2]}vu(m)}return ur=v,0|(mA=p)}(g,k,h,u),v||du(w),X||du(m),y?function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;ur=(c=ur)+64|0,f=c+48|0,n=c+40|0,t=c+32|0,o=c+8|0,a=c,l=0|ar[(r|=0)>>2],0|(r=u=0|ar[r+4>>2])&&(bu(u),bu(u)),u=0|ar[e>>2],i=0|ar[e+4>>2];A:do{if((0|u)!=(0|i)){for(g=4+t|0,Z=e+12|0,p=16+o|0,y=e+28|0,B=20+o|0,E=e+32|0,v=e+36|0,m=4+n|0,d=l;l=0|ar[u>>2],e=0|ar[12+(0|ar[l>>2])>>2],ar[t>>2]=d,h=r,ar[g>>2]=h,(w=0==(0|r))||bu(h),ar[o>>2]=ar[Z>>2],ar[4+o>>2]=ar[Z+4>>2],ar[8+o>>2]=ar[Z+8>>2],ar[12+o>>2]=ar[Z+12>>2],ar[p>>2]=ar[y>>2],b=0|ar[E>>2],0|(ar[B>>2]=b)&&bu(b),ar[a>>2]=ar[v>>2],ar[f>>2]=ar[a>>2],os[63&e](n,l,t,o,f),l=0|ar[n>>2],k=0|ar[m>>2],ar[n>>2]=0,ar[m>>2]=0,!w&&(du(h),0|(X=0|ar[m>>2]))&&du(X),0|(e=0|ar[B>>2])&&du(e),0|(e=0|ar[g>>2])&&du(e),s=l;){if(r=0|ar[y>>2],(b=0==(0|(e=0|ar[E>>2])))||(bu(e),bu(e)),ar[s+40>>2]=r,r=0|ar[(I=s+44|0)>>2],ar[I>>2]=e,0|r&&du(r),b||du(e),r=0|ar[(e=d)+48>>2],(b=0==(0|(e=0|ar[e+52>>2])))||(bu(e),bu(e)),ar[s+48>>2]=r,r=0|ar[(I=s+52|0)>>2],ar[I>>2]=e,0|r&&du(r),b||du(e),0|k&&bu(k),w||du(h),(0|(u=u+8|0))==(0|i)){r=k,W=34;break A}d=l,r=k}ar[A>>2]=0,ar[A+4>>2]=0,k&&du(k)}else W=34}while(0);34==(0|W)&&(ar[A>>2]=l,ar[A+4>>2]=r),ur=(r&&du(r),c)}(A,g,e):(ar[A>>2]=0,ar[A+4>>2]=0),0|(y=0|ar[f>>2])&&du(y),0|(y=0|ar[g>>2])){if((0|(B=0|ar[n>>2]))!=(0|y)){for(;f=B+-8|0,ar[n>>2]=f,(0|(B=(B=0|ar[B+-4>>2])?(du(B),0|ar[n>>2]):f))!=(0|y););y=0|ar[g>>2]}vu(y)}v||du(w),Co(Z,0|ar[4+Z>>2]),X||du(m),ur=p}function ge(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;switch(gA[(A|=0)>>2]=0,gA[(i=A+4|0)>>2]=0,e<<16>>16){case 13:case 12:switch(r<<16>>16){case 1:f=.30000001192092896,n=.6000000238418579,t=.15000000596046448,o=.05999999865889549,a=.6399999856948853,c=.33000001311302185,l=.3127000033855438,u=.32899999618530273;break;case 4:f=.20999999344348907,n=.7099999785423279,t=.14000000059604645,o=.07999999821186066,a=.6700000166893005,c=.33000001311302185,l=.3100000023841858,u=.3160000145435333;break;case 5:f=.28999999165534973,n=.6000000238418579,t=.15000000596046448,o=.05999999865889549,a=.6399999856948853,c=.33000001311302185,l=.3127000033855438,u=.32899999618530273;break;case 7:case 6:f=.3100000023841858,n=.5950000286102295,t=.1550000011920929,o=.07000000029802322,a=.6299999952316284,c=.3400000035762787,l=.3127000033855438,u=.32899999618530273;break;case 8:f=.24300000071525574,n=.6919999718666077,t=.14499999582767487,o=.04899999871850014,a=.6809999942779541,c=.3190000057220459,l=.3100000023841858,u=.3160000145435333;break;case 9:f=.17000000178813934,n=.796999990940094,t=.13099999725818634,o=.04600000008940697,a=.7080000042915344,c=.2919999957084656,l=.3127000033855438,u=.32899999618530273;break;case 10:a=n=1,c=o=t=f=0,l=.33333298563957214,u=.3333300054073334;break;case 11:f=.26499998569488525,n=.6899999976158142,t=.15000000596046448,o=.05999999865889549,a=.6800000071525574,c=.3199999928474426,l=.3140000104904175,u=.35100001096725464;break;case 12:f=.26499998569488525,n=.6899999976158142,t=.15000000596046448,o=.05999999865889549,a=.6800000071525574,c=.3199999928474426,l=.3127000033855438,u=.32899999618530273;break;case 22:f=.29499998688697815,n=.6050000190734863,t=.1550000011920929,o=.07699999958276749,a=.6299999952316284,c=.3400000035762787,l=.3127000033855438,u=.32899999618530273;break;default:u=l=c=a=o=t=n=f=0}h=1-(u+l),b=u*(t*(k=c*(s=1-(n+f))-(d=1-(c+a))*n)+(f*(o*d-c*(w=1-(o+t)))+a*(v=n*w-o*s))),gA[A>>2]=c*(h*(o*f-t*n)+(l*v+u*(t*s-f*w)))/b,f=o*(h*(a*n-c*f)+(l*k+u*(d*f-a*s)))/b;break;case 1:gA[A>>2]=.2125999927520752,f=.0722000002861023;break;case 4:gA[A>>2]=.30000001192092896,f=.10999999940395355;break;case 6:case 5:gA[A>>2]=.29899999499320984,f=.11400000005960464;break;case 7:gA[A>>2]=.21199999749660492,f=.08699999749660492;break;case 10:case 9:gA[A>>2]=.26269999146461487,f=.059300001710653305;break;default:return}gA[i>>2]=f}function Ze(A){tr[(A|=0)>>0]=1,gA[A+4>>2]=1.4019999504089355,gA[A+8>>2]=-.34413599967956543,gA[A+12>>2]=-.714136004447937,gA[A+16>>2]=1.7719999551773071}function pe(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0;ur=(n=ur)+16|0,t=n,tr[(A|=0)>>0]=0,ar[(i=A+4|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ge(t,e,r),f=+gA[t+4>>2],o=+gA[t>>2],tr[A>>0]=1,o=0!=f|0!=o?(a=1-o,gA[i>>2]=2*a,c=2*(u=1-f),a=2*o*a/(l=o+f+-1),2*f*u/l):(gA[i>>2]=1.4019999504089355,c=1.7719999551773071,a=-.714136004447937,-.34413599967956543),gA[A+8>>2]=o,gA[A+12>>2]=a,gA[A+16>>2]=c,ur=n}function ye(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;for(ur=(t=ur)+16|0,f=t,i=(c=n=(A|=0)+4|(tr[A>>0]=0))+36|0;(0|(c=c+4|(ar[c>>2]=0)))<(0|i););ge(f,e,r),o=+gA[f+4>>2],a=+gA[f>>2],tr[A>>0]=1,0!=o|0!=a?(b=(u=1-(gA[n>>2]=a))-o,l=-o/u*.5,u=(b=-(gA[A+8>>2]=b))/u*.5,b=b/(s=1-o)*.5,a=-a/s*.5):(gA[n>>2]=.29899999499320984,gA[A+8>>2]=.5870000123977661,l=-.08131200075149536,u=-.41868799924850464,b=-.3312639892101288,a=-.16873499751091003,o=.11400000005960464),gA[A+12>>2]=o,gA[A+16>>2]=a,gA[A+20>>2]=b,gA[A+24>>2]=.5,gA[A+28>>2]=.5,gA[A+32>>2]=u,gA[A+36>>2]=l,ur=t}function Be(A){tr[(A|=0)>>0]=1,gA[A+4>>2]=.29899999499320984,gA[A+8>>2]=.5870000123977661,gA[A+12>>2]=.11400000005960464,gA[A+16>>2]=-.16873499751091003,gA[A+20>>2]=-.3312639892101288,gA[A+24>>2]=.5,gA[A+28>>2]=.5,gA[A+32>>2]=-.41868799924850464,gA[A+36>>2]=-.08131200075149536}function Ee(A,e){return 0|function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0;ur=(t=ur)+16|0,n=t,a=548+(A|=0)|0,i=0==(0|ar[(r=A+580|0)>>2]),f=0|tr[a>>0];do{if(i){if(f<<24>>24==0&&0==(0|tr[A+549>>0])){c=8;break}if((0|ar[A+377216>>2])==(0|ar[A+377220>>2]))return ra(A+376148|0),ur=(e&&(ar[e>>2]=ar[A+376200>>2]),t),(c=0)|c;c=7}else c=7}while(0);7==(0|c)&&f<<24>>24==0&&(c=8);if(8==(0|c)&&!(0!=(0|tr[A+549>>0])|1^i))return ur=(e&&(ar[e>>2]=1),t),0|(c=13);if(!(0|Lo(A+376148|0,0)))return ur=(e&&(ar[e>>2]=1),t),0|(c=9);tr[n>>0]=0;do{if(0|ar[r>>2]){if(a=0|ya(a)){o=0|Uo(A,a),tr[n>>0]=1,c=23;break}sr(35126,34700,1314,35130)}else{if(0|tr[A+549>>0]&&(0|ar[A+377216>>2])==(0|ar[A+377220>>2])){if(!e){o=13;break}ar[e>>2]=1,o=13;break}o=0|Yo(A,n),c=23}}while(0);23==(0|c)&&e&&(ar[e>>2]=0==(0|o)&0!=(1&tr[n>>0])&1);return ur=t,0|(c=o)}(A|=0,e|=0)}function Ve(A,e,r,i,f,n){return 0|function(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;ur=(t=ur)+16|0,d=t,0|ar[8+(A|=0)>>2]&&sr(36856,36882,375,36896);tr[A+1>>0]=0,k=0|function(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(n=ur)+16|0,i=n,f=40+(A|=0)|0,(0|(t=0|ar[(s=A+44|0)>>2]))==(0|ar[f>>2])){for(t=0|hu(48),tr[t>>0]=0,tr[t+1>>0]=0,tr[t+2>>0]=0,ar[(a=t+32|0)>>2]=0,ar[(o=t+36|0)>>2]=0,ar[(l=t+40|0)>>2]=0,c=0|hu(64),ar[a>>2]=c,a=c+64|0,ar[l>>2]=a,l=c+64|0;((ar[c>>2]=0)|(c=c+4|0))<(0|l););ar[o>>2]=a,ar[(b=t+8|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[b+16>>2]=0,ar[b+20>>2]=0,b=t}else b=0|ar[(u=t+-4|0)>>2],ar[s>>2]=u;tr[b>>0]=0,tr[b+1>>0]=0,tr[b+2>>0]=0,ar[(l=b+8|0)>>2]=0,ar[l+4>>2]=0,ar[b+16>>2]=0,ar[(l=b+24|0)>>2]=0,t=0|ar[(r=b+32|0)>>2],(0|(o=0|ar[(u=b+36|0)>>2]))!=(0|t)&&(ar[u>>2]=o+(~((o+-4-t|0)>>>2)<<2));if((0|ar[(a=b+28|0)>>2])>=(0|e))return ur=n,0|(s=b);if(0|(c=0|yc(e)))return 0|(o=0|ar[(t=b+20|0)>>2])&&(hb(0|c,0|o,0|ar[l>>2]),Bc(o)),ar[t>>2]=c,ar[a>>2]=e,ur=n,0|(s=b);ar[i>>2]=b,t=b,o=0|ar[s>>2];do{if(o-(0|ar[f>>2])>>2>>>0<16){if((0|o)==(0|ar[A+48>>2])){pa(f,i);break}ar[o>>2]=t,ar[s>>2]=4+(0|ar[s>>2]);break}Bc(0|ar[b+20>>2]),0|(t=0|ar[r>>2])&&((0|(o=0|ar[u>>2]))!=(0|t)&&(ar[u>>2]=o+(~((o+-4-t|0)>>>2)<<2)),vu(t)),vu(b)}while(0);return ur=n,(s=0)|s}(A,r);A:do{if(k){a=k+28|0;do{if((0|ar[a>>2])<(0|r)){if(0|(o=0|yc(r))){0|(l=0|ar[(c=k+20|0)>>2])&&(hb(0|o,0|l,0|ar[k+24>>2]),Bc(l)),ar[c>>2]=o,ar[a>>2]=r;break}if(ar[d>>2]=k,o=k,a=A+40|0,(l=0|ar[(c=A+44|0)>>2])-(0|ar[a>>2])>>2>>>0<16){if((0|l)==(0|ar[A+48>>2])){pa(a,d);break A}ar[l>>2]=o,ar[c>>2]=4+(0|ar[c>>2]);break A}Bc(0|ar[k+20>>2]),0|(o=0|ar[k+32>>2])&&((0|(c=0|ar[(a=k+36|0)>>2]))!=(0|o)&&(ar[a>>2]=c+(~((c+-4-o|0)>>>2)<<2)),vu(o)),vu(k);break A}o=0|ar[k+20>>2]}while(0);hb(0|o,0|e,0|r),ar[(s=k+24|0)>>2]=r,ar[(u=k+8|0)>>2]=i,ar[u+4>>2]=f,ar[k+16>>2]=n;e:do{if(2<(0|r))for(f=k+32|0,n=k+36|0,u=k+40|0,o=0|ar[k+20>>2],i=0,l=r;;){switch((a=0|tr[(e=o+2|0)>>0])<<24>>24){case 0:case 3:0==(0|tr[o>>0])&&a<<24>>24==3&0==(0|tr[(b=o+1|0)>>0])?(c=0|ar[n>>2],a=i+2+(c-(0|ar[f>>2])>>2)|0,ar[d>>2]=a,(0|c)==(0|ar[u>>2])?ga(f,d):(ar[c>>2]=a,ar[n>>2]=c+4),wb(0|e,o+3|0,-3-i+(0|ar[s>>2])|0),a=(0|ar[s>>2])-1|0,ar[s>>2]=a,c=i+1|0,o=b):(c=i,a=l);break;default:c=i+2|0,o=e,a=l}if((a+-2|0)<=(0|(i=c+1|0)))break e;o=o+1|0,l=a}}while(0);return o=0|ar[(e=A+16|0)>>2],d=(0|ar[A+20>>2])-o|0,c=0|ar[(a=A+28|0)>>2],l=0|ar[(i=A+32|0)>>2],(0|(0==(0|d)?0:(d<<8)-1|0))==(l+c|0)?(Ea(A+12|0),c=0|ar[a>>2],a=0|ar[i>>2],o=0|ar[e>>2]):a=l,ar[(0|ar[o+((d=a+c|0)>>>10<<2)>>2])+((1023&d)<<2)>>2]=k,ar[i>>2]=a+1,ar[(k=A+36|0)>>2]=(0|ar[k>>2])+(0|ar[s>>2]),ur=t,(k=0)|k}ar[d>>2]=0}while(0);return ur=t,0|(k=7)}((A|=0)+548|0,e|=0,r|=0,i|=0,f|=0,n|=0)}function Fe(A){var e=0;return(0|ar[(A|=0)+376200>>2])<=0?(e=0)|e:(e=0|ar[A+376196>>2],(e=0|ar[(0|ar[(0|ar[A+376184>>2])+(e>>>10<<2)>>2])+((1023&e)<<2)>>2])?(fa(A+376148|(tr[e+100>>0]=0)),0|e):(e=0)|e)}function Re(A){var e;0|ar[(A|=0)+376200>>2]&&(e=0|ar[A+376196>>2],fa(A+376148|(tr[100+(0|ar[(0|ar[(0|ar[A+376184>>2])+(e>>>10<<2)>>2])+((1023&e)<<2)>>2])>>0]=0)))}function Ne(A,e,r){switch(A|=0,r|=0,0|(e|=0)){case 0:return void(tr[A+512>>0]=0!=(0|r)&1);case 6:return void(tr[A+514>>0]=0!=(0|r)&1);case 7:return void(tr[A+532>>0]=0!=(0|r)&1);case 8:return void(tr[A+533>>0]=0!=(0|r)&1);default:sr(55739,34548,503,34557)}}function _e(A,e){switch(A|=0,0|(e|=0)){case 0:A=A+72|0;break;case 2:case 1:A=A+80|0;break;default:return(e=0)|e}return 0|(e=0|ar[A>>2])}function Ye(A,e){switch(A|=0,0|(e|=0)){case 0:A=A+76|0;break;case 2:case 1:A=A+84|0;break;default:return(e=0)|e}return 0|(e=0|ar[A>>2])}function Qe(A,e){switch(A|=0,0|(e|=0)){case 0:A=A+5760|0;break;case 2:case 1:A=A+5768|0;break;default:return(e=0)|e}return 0|(e=0|ar[A>>2])}function De(A){return 0|ar[(A|=0)+20>>2]}function Je(A,e,r){A|=0,r|=0;var i,f,n=0;if(3<=(e|=0)>>>0&&sr(34582,34548,639,34609),f=0|ar[A+60+(e<<2)>>2],!r)return 0|f;switch(i=0|ar[(0==(0|e)?A+40|0:A+44|0)>>2],0|e){case 0:A=A+5760|0,n=7;break;case 2:case 1:A=A+5768|0,n=7;break;default:A=0}return 7==(0|n)&&(A=(7+(0|ar[A>>2])|0)/8|0),n=0|br(A,i),ar[r>>2]=n,0|f}function Me(A){var e,r=0,i=0,f=0,n=0,t=0,o=0;if(ar[(A|=0)>>2]=7696,(0|(r=0|ar[(n=A+377216|0)>>2]))!=(0|(i=0|ar[(t=A+377220|0)>>2])))for(;(f=0|ar[i+-4>>2])&&(Te(f),vu(f),i=0|ar[t>>2],r=0|ar[n>>2]),i=i+-4|0,(0|r)!=(0|(ar[t>>2]=i)););0|r&&vu(r),function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(n=8+(A|=0)|0,a=0|ar[(t=A+12|0)>>2],o=0|ar[n>>2],(0|a)!=(0|o))for(l=0;(c=0|ar[o+(l<<2)>>2])&&(aa(c),vu(c),o=0|ar[n>>2],a=0|ar[t>>2]),(l=l+1|0)>>>0>2>>>0;);a=0|ar[(i=A+36|0)>>2],o=0|ar[(r=A+48|0)>>2],c=a+(o>>>10<<2)|0,b=0|ar[(f=A+40|0)>>2],o=(0|(l=b))==(0|(e=a))?(b=A+52|(u=0),0):(u=(0|ar[(b=A+52|0)>>2])+o|0,u=(0|ar[a+(u>>>10<<2)>>2])+((1023&u)<<2)|0,(0|ar[c>>2])+((1023&o)<<2)|0);A:for(;;){do{if((0|o)==(0|u))break A;o=o+4|0}while(4096!=(o-(0|ar[c>>2])|0));o=0|ar[(c=o=c+4|0)>>2]}if(ar[b>>2]=0,2<(o=l-e>>2)>>>0)for(;vu(0|ar[a>>2]),a=4+(0|ar[i>>2])|0,ar[i>>2]=a,o=(0|ar[f>>2])-a>>2,2>>0;);switch(0|o){case 1:o=512,s=14;break;case 2:o=1024,s=14}14==(0|s)&&(ar[r>>2]=o);if(o=0|ar[i>>2],a=0|ar[f>>2],(0|o)!=(0|a)){for(;vu(0|ar[o>>2]),(0|(o=o+4|0))!=(0|a););o=0|ar[i>>2],(0|(a=0|ar[f>>2]))!=(0|o)&&(ar[f>>2]=a+(~((a+-4-o|0)>>>2)<<2))}0|(o=0|ar[A+32>>2])&&vu(o);0|(c=0|ar[A+20>>2])&&((0|(a=0|ar[(o=A+24|0)>>2]))!=(0|c)&&(ar[o>>2]=a+(~((a+-4-c|0)>>>2)<<2)),vu(c));if(!(o=0|ar[n>>2]))return;(0|(a=0|ar[t>>2]))!=(0|o)&&(ar[t>>2]=a+(~((a+-4-o|0)>>>2)<<2));vu(o)}(A+376148|0),function(A){var e,r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0;o=0|ar[(f=8+(A|=0)|0)>>2],t=0|ar[(i=A+20|0)>>2],a=o+(t>>>10<<2)|0,l=0|ar[(n=A+12|0)>>2],t=(0|(e=l))==(0|(r=o))?(l=A+24|(c=0),0):(c=(0|ar[(l=A+24|0)>>2])+t|0,c=(0|ar[o+(c>>>10<<2)>>2])+((1023&c)<<2)|0,(0|ar[a>>2])+((1023&t)<<2)|0);A:for(;;){do{if((0|t)==(0|c))break A;t=t+4|0}while(4096!=(t-(0|ar[a>>2])|0));t=0|ar[(a=t=a+4|0)>>2]}if(ar[l>>2]=0,2<(t=e-r>>2)>>>0)for(;vu(0|ar[o>>2]),o=4+(0|ar[f>>2])|0,ar[f>>2]=o,t=(0|ar[n>>2])-o>>2,2>>0;);switch(0|t){case 1:t=512,u=13;break;case 2:t=1024,u=13}13==(0|u)&&(ar[i>>2]=t);if(t=0|ar[f>>2],o=0|ar[n>>2],(0|t)!=(0|o)){for(;vu(0|ar[t>>2]),(0|(t=t+4|0))!=(0|o););t=0|ar[f>>2],(0|(o=0|ar[n>>2]))!=(0|t)&&(ar[n>>2]=o+(~((o+-4-t|0)>>>2)<<2))}if(!(t=0|ar[A+4>>2]))return;vu(t)}(A+375396|0),Ga(A+370984|0),Ga(A+366584|0),Ga(A+362184|0),Ga(A+357784|0),Ga(A+353384|0),Ga(A+348984|0),Ga(A+344584|0),Ga(A+340184|0),Ga(A+335784|0),Ga(A+331384|0),Ga(A+326984|0),Ga(A+322584|0),Ga(A+318184|0),Ga(A+313784|0),Ga(A+309384|0),Ga(A+304984|0),Ga(A+300584|0),Ga(A+296184|0),Ga(A+291784|0),Ga(A+287384|0),Ga(A+282984|0),Ga(A+278584|0),Ga(A+274184|0),Ga(A+269784|0),Ga(A+265384|0),Ga(A+260984|0),Ga(A+256584|0),Ga(A+252184|0),Ga(A+247784|0),Ga(A+243384|0),Ga(A+238984|0),Ga(A+234584|0),Ga(A+230184|0),Ga(A+225784|0),Ga(A+221384|0),Ga(A+216984|0),Ga(A+212584|0),Ga(A+208184|0),Ga(A+203784|0),Ga(A+199384|0),Ga(A+194984|0),Ga(A+190584|0),Ga(A+186184|0),Ga(A+181784|0),Ga(A+177384|0),Ga(A+172984|0),Ga(A+168584|0),Ga(A+164184|0),Ga(A+159784|0),Ga(A+155384|0),Ga(A+150984|0),Ga(A+146584|0),Ga(A+142184|0),Ga(A+137784|0),Ga(A+133384|0),Ga(A+128984|0),Ga(A+124584|0),Ga(A+120184|0),Ga(A+115784|0),Ga(A+111384|0),Ga(A+106984|0),Ga(A+102584|0),Ga(A+98184|0),Ga(A+93784|0),Ac(A+88616|0),Ac(A+83448|0),Ac(A+78280|0),Ac(A+73112|0),Ac(A+67944|0),Ac(A+62776|0),Ac(A+57608|0),Ac(A+52440|0),Ac(A+47272|0),Ac(A+42104|0),Ac(A+36936|0),Ac(A+31768|0),Ac(A+26600|0),Ac(A+21432|0),Ac(A+16264|0),Ac(A+11096|0),e=A+600|0,o=A+11096|0;do{if(0|(r=0|ar[o+-16>>2])&&((0|ar[(i=o+-12|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),0|(r=0|ar[o+-28>>2])&&((0|(f=0|ar[(i=o+-24|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-2-r|0)>>>1)<<1)),vu(r)),0|(r=0|ar[(n=o+-64|0)>>2])){if((0|(i=0|ar[(t=o+-60|0)>>2]))!=(0|r)){for(;i=i+-12|0,ar[t>>2]=i,(f=0|ar[i>>2])&&(vu(f),i=0|ar[t>>2]),(0|i)!=(0|r););r=0|ar[n>>2]}vu(r)}o=o+-656|0}while((0|o)!=(0|e));!function(A){var e,r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;ur=(i=ur)+16|0,e=i,f=0|ar[(r=32+(A|=0)|0)>>2];A:do{if(0|f){c=A+16|0,l=A+28|0,u=A+36|0,b=A+40|0,s=A+44|0,a=A+48|0;do{if(n=0|ar[c>>2],t=0|ar[l>>2],o=0|ar[(0|ar[n+(t>>>10<<2)>>2])+((1023&t)<<2)>>2],ar[r>>2]=f+-1,t=t+1|0,2047<(ar[l>>2]=t)>>>0&&(vu(0|ar[n>>2]),ar[c>>2]=4+(0|ar[c>>2]),ar[l>>2]=(0|ar[l>>2])-1024),ar[u>>2]=(0|ar[u>>2])-(0|ar[o+24>>2]),!o)break A;ar[e>>2]=o,f=o,n=0|ar[s>>2];do{if(n-(0|ar[b>>2])>>2>>>0<16){if((0|n)==(0|ar[a>>2])){pa(b,e);break}ar[n>>2]=f,ar[s>>2]=4+(0|ar[s>>2]);break}Bc(0|ar[o+20>>2]),0|(f=0|ar[o+32>>2])&&((0|(t=0|ar[(n=o+36|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),vu(o)}while(0);f=0|ar[r>>2]}while(0!=(0|f))}}while(0);if(o=0|ar[A+8>>2]){ar[e>>2]=o,f=o,c=A+40|0,n=0|ar[(a=A+44|0)>>2];do{if(n-(0|ar[c>>2])>>2>>>0<16){if((0|n)==(0|ar[A+48>>2])){pa(c,e);break}ar[n>>2]=f,ar[a>>2]=4+(0|ar[a>>2]);break}Bc(0|ar[o+20>>2]),0|(f=0|ar[o+32>>2])&&((0|(t=0|ar[(n=o+36|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),vu(o)}while(0);u=b=a}else b=u=A+44|0,c=A+40|0;if(t=0|ar[u>>2],o=0|ar[c>>2],(0|(f=t))!=(0|(n=o)))for(l=0;(a=0|ar[n+(l<<2)>>2])&&(Bc(0|ar[a+20>>2]),0|(f=0|ar[a+32>>2])&&((0|(t=0|ar[(n=a+36|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),vu(a),f=0|ar[u>>2],o=0|ar[c>>2],t=f),(l=l+1|0)>>>0>2>>>0;);0|n&&((0|f)!=(0|n)&&(ar[b>>2]=f+(~((f+-4-n|0)>>>2)<<2)),vu(n));f=0|ar[(b=A+16|0)>>2],n=0|ar[(u=A+28|0)>>2],o=f+(n>>>10<<2)|0,t=0|ar[(s=A+20|0)>>2],n=(0|(a=t))==(0|(c=f))?l=0:(l=(0|ar[r>>2])+n|0,l=(0|ar[f+(l>>>10<<2)>>2])+((1023&l)<<2)|0,(0|ar[o>>2])+((1023&n)<<2)|0);A:for(;;){do{if((0|n)==(0|l))break A;n=n+4|0}while(4096!=(n-(0|ar[o>>2])|0));n=0|ar[(o=n=o+4|0)>>2]}if(ar[r>>2]=0,2<(n=a-c>>2)>>>0)for(;vu(0|ar[f>>2]),f=4+(0|ar[b>>2])|0,ar[b>>2]=f,t=0|ar[s>>2],n=t-f>>2,2>>0;);switch(0|n){case 1:n=512,d=45;break;case 2:n=1024,d=45}45==(0|d)&&(ar[u>>2]=n);if((0|f)!=(0|t)){for(;vu(0|ar[f>>2]),(0|(f=f+4|0))!=(0|t););f=0|ar[b>>2],(0|(n=0|ar[s>>2]))!=(0|f)&&(ar[s>>2]=n+(~((n+-4-f|0)>>>2)<<2))}(f=0|ar[A+12>>2])&&vu(f),ur=i}(A+548|0)}function Te(A){var e,r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if(i=(A|=0)+10632|0,(0|(n=0|ar[(l=A+10636|0)>>2]))!=(0|(f=0|ar[i>>2]))){a=0;do{if(o=0|ar[f+(a<<2)>>2]){if(Ba(548+(0|ar[o+144>>2])|0,0|ar[o>>2]),0|(n=0|ar[o+136>>2])){if(0|(f=0|ar[(t=n+-16|0)+12>>2]))for(f=n+(18624*f|0)|0;kt(f+-44|0),(0|(f=f+-18624|0))!=(0|n););mu(t)}Jn(o+44|0),vu(o),f=0|ar[i>>2],n=0|ar[l>>2]}a=a+1|0}while(a>>>0>2>>>0)}if(e=A+10664|0,(0|(f=0|ar[(r=A+10668|0)>>2]))!=(0|(n=t=0|ar[e>>2])))for(c=0,a=n,o=t;(t=0|ar[a+(c<<2)>>2])?(is[511&ar[4+(0|ar[t>>2])>>2]](t),n=t=0|ar[e>>2],f=0|ar[r>>2]):t=o,!(f-t>>2>>>0<=(c=c+1|0)>>>0);)o=a=t;if(f=0|ar[(o=A+10676|0)>>2]){if((0|(n=0|ar[(t=A+10680|0)>>2]))!=(0|f)){for(;c=n+-8|0,kt(ar[t>>2]=c),(0|(n=0|ar[t>>2]))!=(0|f););f=0|ar[o>>2]}vu(f),f=0|ar[e>>2]}else f=n;0|f&&((0|(n=0|ar[r>>2]))!=(0|f)&&(ar[r>>2]=n+(~((n+-4-f|0)>>>2)<<2)),vu(f)),0|(f=0|ar[A+10644>>2])&&((0|(t=0|ar[(n=A+10648|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(80*~(((t+-80-f|0)>>>0)/80|0)|0)),vu(f)),(f=0|ar[i>>2])&&((0|(n=0|ar[l>>2]))!=(0|f)&&(ar[l>>2]=n+(~((n+-4-f|0)>>>2)<<2)),vu(f)),aa(l=A+8|0)}function Ue(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0;if(0|ar[(i=(A|=0)+136|0)>>2]&&sr(34678,34700,169,34710),n=0|wu(230614>>0|4294967279<(n=18624*e|0)>>>0?-1:n+16|0),ar[n+12>>2]=e,n=n+16|0,!e)return ar[i>>2]=n,void(ar[(n=A+140|0)>>2]=e);for(r=n+(18624*e|0)|0,f=n;st(f+18580|0),o=f+18592|0,t=0==(0|(t=15&(c=f+48|0)))?c:c+(16-t)|0,ar[(a=f+18508|0)>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,ar[a+12>>2]=0,ar[a+16>>2]=0,ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o+12>>2]=0,vb((ar[o+16>>2]=0)|(ar[f+2112>>2]=t),0,2048),(0|(f=f+18624|0))!=(0|r););ar[i>>2]=n,ar[(c=A+140|0)>>2]=e}function Se(A,e){A|=0;var r,i=0,f=0,n=0,t=0;vb((e|=0)+48|0,0,2064),ar[e+18532>>2]=-1,ar[e+18536>>2]=-1,r=0|ar[e+18596>>2],(0|(A=0|ar[16+(0|ar[e+18600>>2])>>2]))<=0||(A=(1+((0|(n=0|ar[(0|ar[10284+r>>2])+((0|ar[(0|ar[10272+r>>2])+(A<<2)>>2])-1<<2)>>2]))%(0|(t=0|ar[5820+r>>2]))|0)<<(f=0|ar[5804+r>>2]))-1|0,f=(1+((0|n)/(0|t)|0)<>2])-1|0,n=(0|ar[1252+r>>2])-1|0,A=((0|t)<(0|A)?t:A)>>(i=0|ar[10368+r>>2]),i=((0|n)<(0|f)?n:f)>>i,(0|A)<=-1&&sr(48482,48519,118,48539),(0|(f=0|ar[10372+r>>2]))<=(0|A)&&sr(48482,48519,118,48539),(0|i)<=-1&&sr(48543,48519,119,48539),(0|i)>=(0|ar[10376+r>>2])&&sr(48543,48519,119,48539),t=(0|ar[10360+r>>2])+(3*((0|br(f,i))+A|0)|0)+2|0,ar[e+18528>>2]=tr[t>>0])}function Oe(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function ze(A,e){A|=0,e|=0;var r,i,f,n=0,t=0,o=0;if(ur=(f=ur)+656|0,ar[(n=(r=f)+592|0)>>2]=0,ar[(i=r+596|0)>>2]=0,ar[r+600>>2]=0,ar[(t=r+628|0)>>2]=0,ar[t+4>>2]=0,ar[t+8>>2]=0,ar[t+12>>2]=0,ar[t+16>>2]=0,o=(e=(ar[t+20>>2]=0)|function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(l=0|At(r|=0,4),15<(0|(ar[A>>2]=l)))return 0|(r=8);if(et(r,2),l=0|At(r,6),ar[A+4>>2]=l+1,62<(0|l))return 0|(r=8);if(l=0|At(r,3),ar[(t=A+8|0)>>2]=l+1,6<(0|l))return 0|(r=8);l=0|At(r,1),ar[A+12>>2]=l,et(r,16),Ln(A+16|0,r,0|ar[t>>2]),l=0|At(r,1),ar[(o=A+484|0)>>2]=l,i=0|ar[t>>2],l?0<(0|i)&&(a=0,f=7):(a=i+-1|0,f=7);do{if(7==(0|f)){for(i=a;;){if(n=0|it(r),ar[(l=A+488+(12*i|0)|0)>>2]=n,n=0|it(r),ar[(f=A+488+(12*i|0)+4|0)>>2]=n,n=0|it(r),ar[A+488+(12*i|0)+8>>2]=n,-99999==(0|ar[l>>2])){i=8,f=48;break}if(i=i+1|0,-99999==(0|n)|-99999==(0|ar[f>>2])){i=8,f=48;break}if((0|i)>=(0|ar[t>>2])){f=11;break}}if(11==(0|f)){if(0|ar[o>>2])break;if(8<=(0|a)&&sr(44587,44512,144,44627),(0|a)<=0)break;for(f=A+488+(12*a|0)|0,n=A+488+(12*a|0)+4|0,t=A+488+(12*a|0)+8|0,i=0;ar[A+488+(12*i|0)>>2]=ar[f>>2],ar[A+488+(12*i|0)+4>>2]=ar[n>>2],ar[A+488+(12*i|0)+8>>2]=ar[t>>2],(0|(i=i+1|0))!=(0|a););}else if(48==(0|f))return 0|i}}while(0);if(a=255&(0|At(r,6)),tr[(c=A+584|0)>>0]=a,a=0|it(r),-99999==(0|(ar[(l=A+588|0)>>2]=a))|1023<(t=a+1|0)>>>0)return er(e,8,0),0|(r=8);if(ar[l>>2]=t,a=A+592|0,i=0|ar[(o=A+596|0)>>2],n=0|ar[a>>2],t>>>0<=(f=(i-n|0)/12|0)>>>0){if(t>>>0>>0&&(0|i)!=(0|(u=n+(12*t|0)|0)))for(;i=i+-12|0,ar[o>>2]=i,(f=0|ar[i>>2])&&(vu(f),i=0|ar[o>>2]),(0|i)!=(0|u););}else!function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(t=0|ar[(i=8+(A|=0)|0)>>2],n=0|ar[(u=A+4|0)>>2],((t-(f=n)|0)/12|0)>>>0>=e>>>0)return vb(0|n,0,12*e|0),ar[u>>2]=f+(12*e|0);l=0|ar[A>>2],357913941<(n=(a=(n-(r=l)|0)/12|0)+e|0)>>>0&&zl();o=(c=(t-l|0)/12|0)<<1,o=c>>>0<178956970?o>>>0>>0?n:o:357913941;do{if(o){if(!(357913941>>0)){c=0|hu(12*o|0);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else c=0}while(0);if(n=c+(12*a|0)|0,c=c+(12*o|0)|0,vb(0|(t=n),0,12*e|0),a=n+(12*e|0)|0,(0|f)==(0|r))o=l;else{for(;f=(l=f)+-12|0,ar[n+-12>>2]=ar[f>>2],e=l+-8|0,ar[n+-8>>2]=ar[e>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[f>>2]=0,ar[e>>2]=0,ar[l>>2]=0,t=n=t+-12|0,(0|f)!=(0|r););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=c,(0|f)!=(0|(t=o)))for(;0|(n=0|ar[(f=f+-12|0)>>2])&&vu(n),(0|f)!=(0|t););if(!o)return;vu(o)}(a,t-f|0);if(1<(0|ar[l>>2]))for(f=1,n=0|ar[a>>2],i=0|tr[c>>0];;){for(Kn(n+(12*f|0)|0,1+(255&i)|0,0),n=0;o=0!=(0|At(r,1)),t=0|ar[a>>2],i=(0|ar[t+(12*f|0)>>2])+(n>>>5<<2)|0,u=1<<(31&n),e=0|ar[i>>2],ar[i>>2]=o?e|u:e&~u,i=0|tr[c>>0],(0|n)<(255&i|0);)n=n+1|0;if(!((0|(f=f+1|0))<(0|ar[l>>2])))break;n=t}if(u=255&(0|At(r,1)),(tr[A+604>>0]=u)<<24>>24&&(u=0|At(r,32),ar[A+608>>2]=u,u=0|At(r,32),ar[A+612>>2]=u,u=255&(0|At(r,1)),(tr[A+616>>0]=u)<<24>>24)&&(i=1+(0|it(r))|0,ar[A+620>>2]=i,i=0|it(r),1023<(0|(ar[(e=A+624|0)>>2]=i))&&sr(55739,44512,189,44627),c=A+628|0,o=0|ar[(f=A+632|0)>>2],t=0|ar[c>>2],i>>>0<=(n=o-t>>1)>>>0?i>>>0>>0&&(0|o)!=(0|(b=t+(i<<1)|0))&&(ar[f>>2]=o+(~((o+-2-b|0)>>>1)<<1)):(function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;if(a=0|ar[(t=8+(A|=0)|0)>>2],o=0|ar[(l=A+4|0)>>2],e>>>0<=a-o>>1>>>0)return vb(0|o,0,e<<1|0),ar[l>>2]=o+(e<<1);n=0|ar[A>>2],(0|(o=(i=(f=o-n|0)>>1)+e|0))<0&&zl();a=(a=a-n|0)>>1>>>0<1073741823?a>>>0>>0?o:a:2147483647;do{if(a){if(!((0|a)<0)){c=0|hu(a<<1);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);vb(0|(r=c+(i<<1)|0),0,e<<1|0),o=r+(0-i<<1)|0,0<(0|f)&&hb(0|o,0|n,0|f);if(ar[A>>2]=o,ar[l>>2]=r+(e<<1),ar[t>>2]=c+(a<<1),!n)return;vu(n)}(c,i-n|0),i=0|ar[e>>2]),f=A+640|0,a=0|ar[(n=A+644|0)>>2],o=0|ar[f>>2],i>>>0<=(t=a-o|0)>>>0?i>>>0>>0&&(0|a)!=(0|(s=o+i|0))&&(ar[n>>2]=s):(function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0;if(t=0|ar[(r=8+(A|=0)|0)>>2],f=0|ar[(i=A+4|0)>>2],e>>>0<=(t-f|0)>>>0){for(;tr[f>>0]=0,f=1+(0|ar[i>>2])|0,ar[i>>2]=f,0!=(0|(e=e+-1|0)););return}n=0|ar[A>>2],(0|(f=(o=f-n|0)+e|0))<0&&zl();a=(t=t-n|0)<<1,n=(f=t>>>0<1073741823?a>>>0>>0?f:a:2147483647)?0|hu(f):0;a=n+o|0,o=n+f|0,f=t=a;for(;tr[f>>0]=0,t=f=t+1|0,e=e+-1|0,0!=(0|e););e=0|ar[A>>2],n=(0|ar[i>>2])-e|0,f=a+(0-n)|0,0<(0|n)&&hb(0|f,0|e,0|n);if(ar[A>>2]=f,ar[i>>2]=t,ar[r>>2]=o,!e)return;vu(e)}(f,i-t|0),i=0|ar[e>>2]),0<(0|i)))return r=65535&(0|it(r)),or[ar[c>>2]>>1]=r,(r=0)|r;return r=255&(0|At(r,1)),tr[A+652>>0]=r,(r=0)|r}(r,A+4|0,e))||(-1<(0|(e=0|ar[A+520>>2]))&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;switch(ur=(h=ur)+208|0,I=h+192|0,k=h+184|0,d=h+176|0,W=h+168|0,s=h+160|0,X=h+152|0,b=h+144|0,E=h+128|0,u=h+120|0,B=h+112|0,a=h+104|0,y=h+96|0,f=h+88|0,i=h+80|0,o=h+72|0,t=h+64|0,n=h+56|0,r=h+48|0,p=h+40|0,Z=h+32|0,g=h+24|0,m=h+16|0,v=h+8|0,l=(w=h)+200|0,0|(e|=0)){case 1:e=10172;break;case 2:e=10676;break;default:return ur=h}if(Pn(c=0|ar[e>>2],44632,w),ar[v>>2]=ar[A>>2],Pn(c,44673,v),ar[m>>2]=ar[A+4>>2],Pn(c,44717,m),v=A+8|0,ar[g>>2]=ar[v>>2],Pn(c,44761,g),ar[Z>>2]=ar[A+12>>2],Pn(c,44805,Z),Z=0|ar[v>>2],$n(A+16|0,1,c),w=Z+-1|0,1<(0|Z))for(e=0;ar[p>>2]=e,Pn(c,44849,p),$n(A+68+(52*e|0)|0,0,c),(0|(e=e+1|0))!=(0|w););if(p=A+484|0,ar[r>>2]=ar[p>>2],Pn(c,44882,r),0|ar[p>>2]){if(0<(0|ar[v>>2]))for(e=0;y=0|ar[A+488+(12*e|0)>>2],ar[n>>2]=e,ar[4+n>>2]=y,Pn(c,44929,n),ar[t>>2]=ar[A+488+(12*e|0)+4>>2],Pn(c,44971,t),ar[o>>2]=ar[A+488+(12*e|0)+8>>2],Pn(c,45012,o),(0|(e=e+1|0))<(0|ar[v>>2]););}else ar[i>>2]=ar[A+488>>2],Pn(c,45053,i),ar[f>>2]=ar[A+492>>2],Pn(c,45098,f),ar[y>>2]=ar[A+496>>2],Pn(c,45143,y);if(Z=A+584|0,ar[a>>2]=cr[Z>>0],Pn(c,45188,a),g=A+588|0,ar[B>>2]=ar[g>>2],Pn(c,45213,B),1<(0|ar[g>>2])){v=A+592|0,m=4+l|0,w=1;do{for(e=0;ar[l>>2]=(0|ar[(0|ar[v>>2])+(12*w|0)>>2])+(e>>>5<<2),ar[m>>2]=1<<(31&e),ar[E>>2]=w,ar[E+4>>2]=e,tr[(B=E+8|0)>>0]=0|tr[l>>0],tr[B+1>>0]=0|tr[1+l>>0],tr[B+2>>0]=0|tr[2+l>>0],tr[B+3>>0]=0|tr[3+l>>0],tr[B+4>>0]=0|tr[4+l>>0],tr[B+5>>0]=0|tr[5+l>>0],tr[B+6>>0]=0|tr[6+l>>0],tr[B+7>>0]=0|tr[7+l>>0],Pn(c,45273,E),(0|e)<(0|cr[Z>>0]);)e=e+1|0;w=w+1|0}while((0|w)<(0|ar[g>>2]))}if(E=A+604|0,ar[u>>2]=tr[E>>0],Pn(c,45238,u),0|tr[E>>0]&&(ar[b>>2]=ar[A+608>>2],Pn(c,45310,b),ar[X>>2]=ar[A+612>>2],Pn(c,45338,X),X=A+616|0,ar[s>>2]=tr[X>>0],Pn(c,45366,s),0|tr[X>>0])&&(ar[W>>2]=ar[A+620>>2],Pn(c,45408,W),W=A+624|0,ar[d>>2]=ar[W>>2],Pn(c,45441,d),0<(0|ar[W>>2])))return I=0|lr[ar[A+628>>2]>>1],ar[k>>2]=0,ar[4+k>>2]=I,Pn(c,45474,k),ur=h;ar[I>>2]=tr[A+652>>0],Pn(c,45502,I),ur=h}(r,e),hb(0|(o=A+600+(656*(e=0|ar[r>>2])|0)|0),0|r,592),(0|o)==(0|r)?(n=r+604|0,ar[(o=A+600+(656*e|0)+604|0)>>2]=ar[n>>2],ar[o+4>>2]=ar[n+4>>2],ar[o+8>>2]=ar[n+8>>2],ar[o+12>>2]=ar[n+12>>2],ar[o+16>>2]=ar[n+16>>2],ar[o+20>>2]=ar[n+20>>2]):(je(A+600+(656*e|0)+592|0,0|ar[n>>2],0|ar[i>>2]),n=r+604|0,ar[(o=A+600+(656*e|0)+604|0)>>2]=ar[n>>2],ar[o+4>>2]=ar[n+4>>2],ar[o+8>>2]=ar[n+8>>2],ar[o+12>>2]=ar[n+12>>2],ar[o+16>>2]=ar[n+16>>2],ar[o+20>>2]=ar[n+20>>2],He(A+600+(656*e|0)+628|0,0|ar[t>>2],0|ar[r+632>>2]),xe(A+600+(656*e|0)+640|0,0|ar[r+640>>2],0|ar[r+644>>2])),tr[A+600+(656*e|0)+652>>0]=0|tr[r+652>>0],0),0|(e=0|ar[r+640>>2])&&((0|ar[(A=r+644|0)>>2])!=(0|e)&&(ar[A>>2]=e),vu(e)),0|(e=0|ar[t>>2])&&((0|(n=0|ar[(A=r+632|0)>>2]))!=(0|e)&&(ar[A>>2]=n+(~((n+-2-e|0)>>>1)<<1)),vu(e)),!(e=0|ar[(t=r+592|0)>>2]))return ur=f,0|o;if((0|(A=0|ar[i>>2]))!=(0|e)){for(;A=A+-12|0,ar[i>>2]=A,(n=0|ar[A>>2])&&(vu(n),A=0|ar[i>>2]),(0|A)!=(0|e););e=0|ar[t>>2]}return vu(e),ur=f,0|o}function je(A,e,r){var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;if(ur=(c=ur)+32|0,t=c+24|0,n=c+16|0,o=c+8|0,a=c,f=((r|=0)-(e|=0)|0)/12|0,(((u=0|ar[(d=(A|=0)+8|0)>>2])-(l=i=0|ar[A>>2])|0)/12|0)>>>0>>0){if(i){if((0|(u=0|ar[(s=A+4|0)>>2]))==(0|l))u=i;else{for(;u=u+-12|0,ar[s>>2]=u,(b=0|ar[u>>2])&&(vu(b),u=0|ar[s>>2]),(0|u)!=(0|l););u=0|ar[A>>2]}vu(u),ar[d>>2]=0,ar[s>>2]=0,u=ar[A>>2]=0}if(357913941>>0&&zl(),u=(m=(0|u)/12|0)<<1,357913941<(u=m>>>0<178956970?u>>>0>>0?f:u:357913941)>>>0&&zl(),b=0|hu(12*u|0),ar[(m=A+4|0)>>2]=b,ar[A>>2]=b,ar[d>>2]=b+(12*u|0),(0|e)==(0|r))return void(ur=c);for(w=4+o|0,v=a+4|0,h=e;;){if(ar[b>>2]=0,ar[(u=b+4|0)>>2]=0,(ar[(s=b+8|0)>>2]=0)|(k=0|ar[(d=h+4|0)>>2])){if((0|k)<0){u=42;break}Z=0|hu((k=1+((k+-1|0)>>>5)|0)<<2),ar[b>>2]=Z,ar[u>>2]=0,ar[s>>2]=k,s=0|ar[h>>2],ar[o>>2]=s,k=(ar[w>>2]=0)|ar[d>>2],ar[a>>2]=s+(k>>>5<<2),ar[v>>2]=31&k,ar[n>>2]=ar[o>>2],ar[4+n>>2]=ar[4+o>>2],ar[t>>2]=ar[a>>2],ar[4+t>>2]=ar[a+4>>2],Pe(b,n,t)}if(h=h+12|0,u=12+(0|ar[m>>2])|0,ar[m>>2]=u,(0|h)==(0|r)){u=45;break}b=u}if(42==(0|u))zl();else if(45==(0|u))return void(ur=c)}w=(d=((0|ar[(v=A+4|0)>>2])-i|0)/12|0)>>>0>>0,d=e+(12*d|0)|0,h=w?d:r;A:do{if((0|h)==(0|e))g=l;else{for(;;){if((0|l)!=(0|e)){if(u=0|ar[(k=e+4|0)>>2]){if(u>>>0>ar[(s=l+8|0)>>2]<<5>>>0){if((b=0|ar[l>>2])&&(vu(b),ar[l>>2]=0,ar[s>>2]=0,u=(ar[l+4>>2]=0)|ar[k>>2]),(0|u)<0)break;b=0|hu((u=1+((u+-1|0)>>>5)|0)<<2),ar[l>>2]=b,ar[l+4>>2]=0,ar[s>>2]=u,u=0|ar[k>>2]}else b=0|ar[l>>2];wb(0|b,0|ar[e>>2],4+((u+-1|0)>>>5<<2)|0),u=0|ar[k>>2]}else u=0;ar[l+4>>2]=u}if(l=l+12|0,(0|(e=e+12|0))==(0|h)){g=l;break A}}zl()}}while(0);if(w)if((0|h)!=(0|r)){for(k=4+o|0,e=a+4|0,h=0|ar[v>>2];;){if(ar[h>>2]=0,ar[(l=h+4|0)>>2]=0,(ar[(u=h+8|0)>>2]=0)|(s=0|ar[(b=d+4|0)>>2])){if((0|s)<0){u=20;break}Z=0|hu((g=1+((s+-1|0)>>>5)|0)<<2),ar[h>>2]=Z,ar[l>>2]=0,ar[u>>2]=g,g=0|ar[d>>2],ar[o>>2]=g,Z=(ar[k>>2]=0)|ar[b>>2],ar[a>>2]=g+(Z>>>5<<2),ar[e>>2]=31&Z,ar[n>>2]=ar[o>>2],ar[4+n>>2]=ar[4+o>>2],ar[t>>2]=ar[a>>2],ar[4+t>>2]=ar[a+4>>2],Pe(h,n,t)}if(d=d+12|0,l=12+(0|ar[v>>2])|0,ar[v>>2]=l,(0|d)==(0|r)){u=45;break}h=l}if(20==(0|u))zl();else if(45==(0|u))return void(ur=c)}else ur=c;else{if((0|(l=0|ar[v>>2]))==(0|g))return void(ur=c);for(;l=l+-12|0,ar[v>>2]=l,(u=0|ar[l>>2])&&(vu(u),l=0|ar[v>>2]),(0|l)!=(0|g););ur=c}}function He(A,e,r){var i,f,n,t,o=0,a=0,c=0,l=0;if((c=(l=(i=r|=0)-(e|=0)|0)>>1)>>>0<=(o=0|ar[(f=(A|=0)+8|0)>>2])-(n=t=0|ar[A>>2])>>1>>>0)return 0|(r=(o=(a=c=(A=(a=(0|ar[(l=A+4|0)>>2])-t>>1)>>>0>>0)?e+(a<<1)|0:r)-e|0)>>1)&&wb(0|t,0|e,0|o),r=n+(r<<1)|0,A?!((0|(o=i-a|0))<=0)&&(hb(0|ar[l>>2],0|c,0|o),void(ar[l>>2]=(0|ar[l>>2])+(o>>>1<<1))):(0|(o=0|ar[l>>2]))!=(0|r)&&void(ar[l>>2]=o+(~((o+-2-r|0)>>>1)<<1));(a=t)&&((0|(r=0|ar[(o=A+4|0)>>2]))!=(0|n)&&(ar[o>>2]=r+(~((r+-2-t|0)>>>1)<<1)),vu(a),ar[f>>2]=0,ar[o>>2]=0,o=ar[A>>2]=0),(0|l)<0&&zl(),(0|(o=o>>1>>>0<1073741823?o>>>0>>0?c:o:2147483647))<0&&zl(),r=0|hu(o<<1),ar[(a=A+4|0)>>2]=r,ar[A>>2]=r,ar[f>>2]=r+(o<<1),(0|l)<=0||(hb(0|r,0|e,0|l),ar[a>>2]=r+(l>>>1<<1))}function xe(A,e,r){var i,f,n=0,t=0,o=0,a=0,c=0;return f=(c=r|=0)-(i=e|=0)|0,((n=0|ar[(o=(A|=0)+8|0)>>2])-(a=t=0|ar[A>>2])|0)>>>0>>0?(t&&((0|ar[(n=A+4|0)>>2])!=(0|a)&&(ar[n>>2]=a),vu(a),ar[o>>2]=0,ar[n>>2]=0,n=ar[A>>2]=0),(0|f)<0&&zl(),c=n<<1,(0|(n=n>>>0<1073741823?c>>>0>>0?f:c:2147483647))<0&&zl(),a=0|hu(n),ar[(c=A+4|0)>>2]=a,ar[A>>2]=a,ar[o>>2]=a+n,hb(0|a,0|e,0|f),void(ar[c>>2]=a+f)):(0|(n=(t=r=(A=(t=(0|ar[(o=A+4|0)>>2])-t|0)>>>0>>0)?e+t|0:r)-i|0)&&wb(0|a,0|e,0|n),n=a+n|0,A?!((0|(n=c-t|0))<=0)&&(hb(0|ar[o>>2],0|r,0|n),void(ar[o>>2]=(0|ar[o>>2])+n)):(0|ar[o>>2])!=(0|n)&&void(ar[o>>2]=n))}function Pe(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0;if(ur=(u=ur)+48|0,a=u+40|0,o=u+32|0,f=u+8|0,t=(n=u)+24|0,l=u+16|0,h=0|ar[(d=(A|=0)+4|0)>>2],c=0|ar[(b=e)>>2],b=0|ar[b+4>>2],s=0|ar[(k=r)>>2],k=0|ar[k+4>>2],i=s-c<<3,ar[d>>2]=h-b+k+i,e=d=(0|ar[A>>2])+(h>>>5<<2)|0,(0|b)!=(0|(r=31&h)))return ar[(h=f)>>2]=c,ar[h+4>>2]=b,ar[(h=n)>>2]=s,ar[h+4>>2]=k,ar[t>>2]=e,ar[4+t>>2]=r,ar[o>>2]=ar[f>>2],ar[4+o>>2]=ar[4+f>>2],ar[a>>2]=ar[n>>2],ar[4+a>>2]=ar[n+4>>2],function(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;if(d=0|ar[(e|=0)>>2],u=0|ar[e+4>>2],o=((0|ar[r>>2])-d<<3)+(0|ar[r+4>>2])-u|0,r=d,(0|o)<=0)return e=i+4|0,i=0|ar[i>>2],ar[A>>2]=i,i=A+4|0,A=0|ar[e>>2],ar[i>>2]=A;u?(t=-1>>>((t=32-u|0)-(l=(0|o)<(0|t)?o:t)|0)&-1<>2],f=0|ar[(b=i+4|0)>>2],n=(c=32-f|0)>>>0>>0?c:l,a=0|ar[i>>2],f=ar[a>>2]&~(-1>>>(c-n|0)&-1<>2]=f,c=0|ar[b>>2],ar[a>>2]=(u>>>0>>0?t<>>(u-c|0))|f,f=(0|ar[b>>2])+n|0,a=a+(f>>>5<<2)|0,ar[i>>2]=a,f&=31,ar[b>>2]=f,0<(0|(c=l-n|0))&&(ar[a>>2]=t>>>(u+n|0)|ar[a>>2]&~(-1>>>(32-c|0)),ar[b>>2]=c,f=c),r=r+4|0,ar[e>>2]=r,o=o-l|0):f=0|ar[(b=f=i+4|0)>>2];if(d=32-f|0,c=-1<>2],u=(s=(f=o+-32|0)>>>5)+1|0,s=f-(s<<5)|0,f=r,n=0|ar[a>>2],t=a;k=0|ar[f>>2],h=n&l,ar[t>>2]=h,ar[t>>2]=k<>2]|h,n=ar[(t=t+4|0)>>2]&c|k>>>d,ar[t>>2]=n,!((0|(o=o+-32|0))<=31);)f=f+4|0;r=r+(u<<2)|0,ar[e>>2]=r,ar[i>>2]=a+(u<<2),o=s}if((0|o)<=0)return k=b,h=0|ar[i>>2],ar[A>>2]=h,h=A+4|0,k=0|ar[k>>2],ar[h>>2]=k;if(t=ar[r>>2]&-1>>>(32-o|0),n=(0|d)<(0|o)?d:o,f=0|ar[i>>2],r=ar[f>>2]&~(-1<>2]&-1>>>(d-n|0)),ar[f>>2]=r,ar[f>>2]=r|t<>2],r=(0|ar[b>>2])+n|0,f=f+(r>>>5<<2)|0,ar[i>>2]=f,ar[b>>2]=31&r,(0|(r=o-n|0))<=0)return k=b,h=0|ar[i>>2],ar[A>>2]=h,h=A+4|0,k=0|ar[k>>2],ar[h>>2]=k;ar[f>>2]=ar[f>>2]&~(-1>>>(32-r|0))|t>>>n,ar[b>>2]=r,k=b,h=0|ar[i>>2],ar[A>>2]=h,h=A+4|0,k=0|ar[k>>2],ar[h>>2]=k}(l,o,a,t),void(ur=u);r=k-b+i|0,k=c,0<(0|r)&&(e=b?(e=-1>>>((e=32-b|0)-(h=(0|r)<(0|e)?r:e)|0)&-1<>2]=ar[d>>2]&~e|ar[k>>2]&e,r=r-h|0,b=31&(e=h+b|0),d=d+(e>>>5<<2)|0,k=k+4|0):(b=0,c),wb(0|d,0|e,(s=(0|r)/32|0)<<2|0),A=r-(s<<5)|0,e=r=d+(s<<2)|0,0<(0|A)&&(b=-1>>>(32-A|0),ar[r>>2]=ar[r>>2]&~b|ar[k+(s<<2)>>2]&b,b=A)),ar[l>>2]=e,ar[4+l>>2]=b,ur=u}function Le(A,e){A|=0,e|=0;var r,i,f=0;return ur=(i=ur)+5168|0,$a(r=i),0|(e=0|function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if(c=255&(0|At(r|=0,4)),tr[A+1>>0]=c,c=1+(0|At(r,3))|0,117440512<((tr[(o=A+2|0)>>0]=c)<<24|0))return 0|(A=8);if(i=255&(0|At(r,1)),tr[A+3>>0]=i,Ln(A+4|0,r,0|tr[o>>0]),-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(15<(0|(ar[A+472>>2]=i)))return 0|(A=8);if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);3==(0|(ar[(f=A+476|0)>>2]=i))?(n=255&(0|At(r,1)),i=0|ar[f>>2]):n=0;if(tr[A+480>>0]=n,ar[A+5012>>2]=n<<24>>24==0?i:0,3>>0)return er(e,1019,0),0|(A=8);if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(f=A+484|0)>>2]=i,-99999==(0|(n=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+488>>2]=n,i=0|ar[f>>2],0==(0|n)|0==(0|i))return 0|(A=8);if(7e4<(0|n)|7e4<(0|i))return 0|(A=8);if(c=255&(0|At(r,1)),(tr[A+492>>0]=c)<<24>>24){if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+496>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+500>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+504>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8)}else ar[A+496>>2]=0,ar[A+500>>2]=0,ar[A+504>>2]=0,i=0;if(ar[A+508>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+512>>2]=i+8,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+516>>2]=i+8,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);a=i+4|0,ar[(c=A+520|0)>>2]=a,ar[A+5032>>2]=1<>0]=a)<<24>>24?(i=0,l=35):(n=0|tr[o>>0],i=(n<<24>>24)-1|0);for(;;){if(35==(0|l)&&(n=0|tr[o>>0]),(0|(f=n<<24>>24))<=(0|i)){l=44;break}if(-99999==(0|(f=0|it(r)))|15<(0|f)){l=38;break}if(ar[A+528+(i<<2)>>2]=f+1,-99999==(0|(f=0|it(r)))){l=40;break}if(ar[(n=A+556+(i<<2)|0)>>2]=f,-99999==(0|(f=0|it(r)))){l=42;break}ar[A+584+(i<<2)>>2]=f,ar[A+5128+(i<<2)>>2]=f+-1+(0|ar[n>>2]),i=i+1|0,l=35}{if(38==(0|l))return er(e,8,0),0|(A=8);if(40==(0|l))return er(e,8,0),0|(A=8);if(42==(0|l))return er(e,8,0),0|(A=8);if(44==(0|l)){if(0|tr[t>>0]&&(i=f+-1|0,8<=n<<24>>24&&sr(41633,41639,317,44627),1>24))for(n=A+528+(i<<2)|0,t=A+556+(i<<2)|0,f=A+584+(i<<2)|0,i=0;ar[A+528+(i<<2)>>2]=ar[n>>2],ar[A+556+(i<<2)>>2]=ar[t>>2],ar[A+584+(i<<2)>>2]=ar[f>>2],(0|(i=i+1|0))<((0|tr[o>>0])-1|0););if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(t=A+612|0)>>2]=i+3,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(o=A+616|0)>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(f=A+620|0)>>2]=i+2,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[(n=A+624|0)>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+628>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+632>>2]=i,6<(0|(i=0|ar[t>>2])))return 0|(A=8);if(6<((0|ar[o>>2])+i|0))return 0|(A=8);if(5<(0|(i=0|ar[f>>2])))return 0|(A=8);if(5<((0|ar[n>>2])+i|0))return 0|(A=8);a=255&(0|At(r,1)),tr[A+636>>0]=a;do{if(a<<24>>24){if(a=255&(0|At(r,1)),tr[A+637>>0]=a,i=A+638|0,!(a<<24>>24)){rc(i);break}if(!(i=0|ec(r,0,i,0)))break;return 0|i}}while(0);a=255&(0|At(r,1)),tr[A+4702>>0]=a,a=255&(0|At(r,1)),tr[A+4703>>0]=a,a=255&(0|At(r,1)),tr[A+4704>>0]=a;do{if(a<<24>>24){if(i=1+(0|At(r,4))&255,tr[A+4705>>0]=i,i=1+(0|At(r,4))&255,tr[A+4706>>0]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(ar[A+4708>>2]=i+3,-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);ar[A+4712>>2]=i,i=255&(0|At(r,1));break}tr[A+4705>>0]=0,tr[A+4706>>0]=0,ar[A+4708>>2]=0,ar[A+4712>>2]=0,i=0}while(0);if(tr[A+4716>>0]=i,-99999==(0|(o=0|it(r))))return er(e,8,0),0|(A=8);if(64>>0)return er(e,1014,0),0|(A=8);if(a=A+4720|0,t=0|ar[(n=A+4724|0)>>2],f=0|ar[a>>2],o>>>0<=(i=(t-f|0)/100|0)>>>0){do{if(o>>>0>>0){if((0|t)==(0|(i=f+(100*o|0)|0)))break;ar[n>>2]=t+(100*~(((t+-100-i|0)>>>0)/100|0)|0)}}while(0);0<(0|o)&&(l=87)}else!function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0;if(n=0|ar[(r=8+(A|=0)|0)>>2],i=0|ar[(a=A+4|0)>>2],e>>>0<=((n-i|0)/100|0)>>>0){do{for(f=i+100|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););i=100+(0|ar[a>>2])|0,ar[a>>2]=i,e=e+-1|0}while(0!=(0|e));return}f=0|ar[A>>2],42949672<(i=(t=(i-f|0)/100|0)+e|0)>>>0&&zl();o=(n=(n-f|0)/100|0)<<1,i=n>>>0<21474836?o>>>0>>0?i:o:42949672;do{if(i){if(!(42949672>>0)){f=0|hu(100*i|0);break}Zu(a=0|X(8),44519),ar[a>>2]=17660,I(0|a,4016,428)}else f=0}while(0);o=f+(100*t|0)|0,t=f+(100*i|0)|0,n=i=o;do{for(f=i+100|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););n=i=n+100|0,e=e+-1|0}while(0!=(0|e));e=0|ar[A>>2],f=(0|ar[a>>2])-e|0,i=o+(100*((0|f)/-100|0)|0)|0,0<(0|f)&&hb(0|i,0|e,0|f);if(ar[A>>2]=i,ar[a>>2]=n,ar[r>>2]=t,!e)return;vu(e)}(a,o-i|0),l=87;A:do{if(87==(0|l)){for(i=0;;){if(!(0|Zc(e,A,r,(0|ar[a>>2])+(100*i|0)|0,i,a,0))){i=1005;break}if((0|o)<=(0|(i=i+1|0)))break A}return 0|i}}while(0);l=255&(0|At(r,1)),tr[A+4732>>0]=l;do{if(l<<24>>24){if(-99999==(0|(i=0|it(r))))return er(e,8,0),0|(A=8);if(32<(0|(ar[(f=A+4736|0)>>2]=i)))return 0|(A=8);if(!(0<(0|i)))break;for(i=0;l=0|At(r,0|ar[c>>2]),ar[A+4740+(i<<2)>>2]=l,l=255&(0|At(r,1)),tr[A+4868+i>>0]=l,(0|(i=i+1|0))<(0|ar[f>>2]););}else ar[A+4736>>2]=0}while(0);l=255&(0|At(r,1)),tr[A+4900>>0]=l,l=255&(0|At(r,1)),tr[A+4901>>0]=l,l=255&(0|At(r,1)),(tr[A+4902>>0]=l)<<24>>24&&function(A,e,r,i){A|=0,e|=0,i|=0;var f,n,t=0,o=0,a=0,c=0;o=0!=(0|At(r|=0,1)),tr[A>>0]=1&o;do{if(o){if((0|(i=0|At(r,8)))<18){or[A+2>>1]=0|or[17796+(i<<2)>>1],i=0|or[17796+(i<<2)+2>>1];break}if(255==(0|i)){i=65535&(0|At(r,16)),or[A+2>>1]=i,i=65535&(0|At(r,16));break}or[A+2>>1]=0,i=0;break}or[A+2>>1]=0,i=0}while(0);or[A+4>>1]=i,o=0!=(0|At(r,1)),tr[A+6>>0]=1&o,o&&(o=0!=(0|At(r,1))&1,tr[A+7>>0]=o);if(ar[(i=A+12|0)>>2]=5,tr[(t=A+16|0)>>0]=0,tr[(f=A+18|0)>>0]=2,tr[(n=A+19|0)>>0]=2,tr[(o=A+20|0)>>0]=2,c=0!=(0|At(r,1)),tr[A+8>>0]=1&c,c&&(c=0|At(r,3),ar[i>>2]=(0|c)<5?c:5,c=0!=(0|At(r,1))&1,tr[t>>0]=c,c=0!=(0|At(r,1)),tr[A+17>>0]=1&c,c)){switch(i=0|At(r,8),c=255&i,(tr[f>>0]=c)<<24>>24){case 3:case 0:a=14;break;default:10<(255&i)>>>0&&(a=14)}switch(14==(0|a)&&(tr[f>>0]=2),i=0|At(r,8),c=255&i,(tr[n>>0]=c)<<24>>24){case 3:case 0:a=17;break;default:17<(254&i)>>>0&&(a=17)}17==(0|a)&&(tr[n>>0]=2),c=0|At(r,8),tr[o>>0]=9<((255&c)-1|0)>>>0?2:255&c}c=0!=(0|At(r,1)),tr[A+21>>0]=1&c;do{if(c){if(-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(tr[A+22>>0]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;i&=255;break}tr[A+22>>0]=0,i=0}while(0);if(tr[A+23>>0]=i,c=0!=(0|At(r,1))&1,tr[A+24>>0]=c,c=0!=(0|At(r,1))&1,tr[A+25>>0]=c,c=0!=(0|At(r,1))&1,tr[A+26>>0]=c,c=0!=(0|At(r,1)),tr[A+27>>0]=1&c,c){if(-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(ar[A+28>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(ar[A+32>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(ar[A+36>>2]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8}else ar[A+28>>2]=0,ar[A+32>>2]=0,ar[A+36>>2]=0,i=0;ar[A+40>>2]=i,c=0!=(0|At(r,1)),tr[A+44>>0]=1&c,c&&(c=0|At(r,32),ar[A+48>>2]=c,c=0|At(r,32),ar[A+52>>2]=c);if(i=0!=(0|At(r,1))&1,tr[A+56>>0]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(ar[A+60>>2]=i+1,c=0!=(0|At(r,1)),tr[A+64>>0]=1&c,c)return c=502;c=0!=(0|At(r,1)),tr[A+65>>0]=1&c;do{if(c){if(i=0!=(0|At(r,1))&1,tr[A+66>>0]=i,i=0!=(0|At(r,1))&1,tr[A+67>>0]=i,i=0!=(0|At(r,1))&1,tr[A+68>>0]=i,-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(4095<(61440&(or[(t=A+70|0)>>1]=i))>>>0&&(er(e,8,0),or[t>>1]=0),-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(16<(255&(tr[(t=A+72|0)>>0]=i))>>>0&&(er(e,8,0),tr[t>>0]=2),-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(16<(255&(tr[(t=A+73|0)>>0]=i))>>>0&&(er(e,8,0),tr[t>>0]=1),-99999==(0|(i=0|it(r))))return er(e,8,0),c=8;if(15<(240&(tr[(t=A+74|0)>>0]=i))>>>0&&(er(e,8,0),tr[t>>0]=15),-99999==(0|(t=0|it(r))))return er(e,8,0),c=8;if(15<(240&(tr[(i=A+75|0)>>0]=t))>>>0){er(e,8,0);break}return c=0}tr[A+66>>0]=0,tr[A+67>>0]=1,tr[A+68>>0]=0,or[A+70>>1]=0,tr[A+72>>0]=2,tr[A+73>>0]=1,tr[A+74>>0]=15,i=A+75|0}while(0);tr[i>>0]=15,c=0}(A+4904|0,e,r,A),e=255&(0|At(r,1)),tr[A+4980>>0]=e;do{if(e<<24>>24){if(l=255&(0|At(r,1)),tr[(e=A+4981|0)>>0]=l,l=255&(0|At(r,1)),tr[A+4982>>0]=l,l=255&(0|At(r,6)),tr[A+4983>>0]=l,!(0|tr[e>>0]))break;ic(A+4984|0,0,r)}else tr[A+4981>>0]=0}while(0);return 0|(i=0|function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;s=0|ar[476+(A|=0)>>2],a=0|ar[7988+(s<<2)>>2],ar[A+5016>>2]=a,c=0|ar[8004+(s<<2)>>2],ar[A+5020>>2]=c,d=0==(0|ar[A+5012>>2]),ar[A+5024>>2]=d?1:a,ar[A+5028>>2]=d?1:c,d=0|ar[A+512>>2],ar[A+4996>>2]=d,ar[A+5e3>>2]=(6*d|0)-48,e=0|ar[A+516>>2],ar[A+5004>>2]=e,ar[A+5008>>2]=(6*e|0)-48,r=0|ar[A+612>>2],ar[A+5036>>2]=r,i=(0|ar[A+616>>2])+r|0,ar[A+5040>>2]=i,f=1<>2]=f,o=1<>2]=o,n=0|ar[A+484>>2],b=(f-1+n|0)/(0|f)|0,ar[A+5052>>2]=b,l=(n-1+o|0)/(0|o)|0,ar[A+5056>>2]=l,t=0|ar[A+488>>2],k=((u=t-1|0)+f|0)/(0|f)|0,ar[A+5060>>2]=k,u=(u+o|0)/(0|o)|0,ar[A+5064>>2]=u,b=0|br(k,b),ar[A+5068>>2]=b,b=0|br(u,l),ar[A+5072>>2]=b,b=0|br(t,n),ar[A+5076>>2]=b,o=0!=(0|s)&&0==(0|tr[A+480>>0])?(ar[A+5080>>2]=(0|o)/(0|a)|0,(0|o)/(0|c)|0):(ar[A+5080>>2]=0,0);if(ar[A+5084>>2]=o,b=0|ar[A+620>>2],ar[A+5100>>2]=b,s=(0|ar[A+624>>2])+b|0,ar[A+5104>>2]=s,o=i-b|0,(0|ar[A+628>>2])>(0|o))return 0|(k=8);if((0|ar[A+632>>2])>(0|o))return 0|(k=8);k=r-1|0,ar[A+5108>>2]=k,k=i-k|0,ar[A+5112>>2]=l<>2]=u<>2],ar[A+5120>>2]=k,ar[A+5124>>2]=(0|ar[A+4712>>2])+k,k=l<>2]=k,u<<=o,ar[A+5092>>2]=u,k=0|br(u,k),ar[A+5096>>2]=k,l=0|tr[A+4990>>0]?(a=o=0,c=1<>0]=a,tr[A+5157>>0]=o,ar[A+5160>>2]=l,ar[A+5164>>2]=c,(0|n)%(0|f)|0)return 0|(k=8);if(0!=((0|t)%(0|f)|0)|(0|r)<(0|b))return 0|(k=8);if((0|((0|i)<5?i:5))<(0|s)|8<(d+-8|0)>>>0|8<(e-8|0)>>>0)return 0|(k=8);return tr[A>>0]=1,(k=0)|k}(A))?0|(A=i):(tr[A>>0]=1,(A=0)|A)}}return 0}(r,A+4|0,e))?(A=e,Ac(r),ur=i,0|A):(-1<(0|(e=0|ar[A+516>>2]))&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0,uA=0,bA=0;switch(ur=(L=ur)+496|0,P=L+480|0,x=L+472|0,H=L+464|0,j=L+456|0,z=L+448|0,O=L+440|0,S=L+432|0,U=L+424|0,T=L+416|0,M=L+408|0,J=L+400|0,D=L+392|0,bA=L+384|0,Q=L+376|0,Y=L+368|0,_=L+360|0,N=L+344|0,lA=L+336|0,cA=L+328|0,F=L+320|0,V=L+312|0,y=L+304|0,p=L+296|0,Z=L+288|0,g=L+280|0,G=L+272|0,C=L+264|0,aA=L+256|0,I=L+248|0,W=L+240|0,X=L+232|0,h=L+224|0,k=L+216|0,d=L+208|0,s=L+200|0,oA=L+192|0,tA=L+184|0,E=L+176|0,B=L+168|0,m=L+160|0,v=L+152|0,w=L+144|0,nA=L+136|0,b=L+128|0,u=L+120|0,l=L+112|0,c=L+104|0,a=L+96|0,o=L+88|0,t=L+80|0,n=L+72|0,fA=L+64|0,f=L+56|0,i=L+48|0,r=L+40|0,rA=L+32|0,eA=L+24|0,AA=L+16|0,$=L+8|0,q=L,0|(e|=0)){case 1:K=10172;break;case 2:K=10676;break;default:return ur=L}switch(Pn(R=0|ar[K>>2],41865,q),ar[$>>2]=tr[A+1>>0],Pn(R,41906,$),iA=A+2|0,ar[AA>>2]=tr[iA>>0],Pn(R,41936,AA),ar[eA>>2]=tr[A+3>>0],Pn(R,41966,eA),function(A,e,r){e|=0;var i,f,n;{if(ur=(n=ur)+16|0,f=n,$n(A|=0,1,r|=0),i=e+-1|0,!(1<(0|e)))return ur=n;e=0}for(;ar[f>>2]=e,Pn(r,44849,f),$n(A+52+(52*e|0)|0,0,r),e=e+1|0,(0|e)!=(0|i););ur=n}(A+4|0,0|tr[iA>>0],R),ar[rA>>2]=ar[A+472>>2],Pn(R,42001,rA),0|(q=0|ar[(K=A+476|0)>>2])){case 0:$=42045;break;case 1:$=42056;break;case 2:$=42062;break;default:$=3==(0|q)?42031:42037}ar[r>>2]=q,ar[4+r>>2]=$,Pn(R,42068,r),3==(0|ar[K>>2])&&(ar[i>>2]=tr[A+480>>0],Pn(R,42103,i));ar[f>>2]=ar[A+484>>2],Pn(R,42136,f),ar[fA>>2]=ar[A+488>>2],Pn(R,42169,fA),fA=A+492|0,ar[n>>2]=tr[fA>>0],Pn(R,42202,n),0|tr[fA>>0]&&(ar[t>>2]=ar[A+496>>2],Pn(R,42235,t),ar[o>>2]=ar[A+500>>2],Pn(R,42263,o),ar[a>>2]=ar[A+504>>2],Pn(R,42291,a),ar[c>>2]=ar[A+508>>2],Pn(R,42319,c));if(ar[l>>2]=ar[A+512>>2],Pn(R,42347,l),ar[u>>2]=ar[A+516>>2],Pn(R,42370,u),ar[b>>2]=ar[A+520>>2],Pn(R,42393,b),K=A+524|0,ar[nA>>2]=tr[K>>0],Pn(R,42426,nA),nA=0|tr[iA>>0],(0|(K=0==(0|tr[K>>0])?(nA<<24>>24)-1|0:0))<(nA<<24>>24|0))for(;ar[s>>2]=K,Pn(R,42756,s),ar[d>>2]=ar[A+528+(K<<2)>>2],Pn(R,42766,d),ar[k>>2]=ar[A+556+(K<<2)>>2],Pn(R,42805,k),ar[h>>2]=ar[A+584+(K<<2)>>2],Pn(R,42844,h),K=K+1|0,(0|K)<(0|tr[iA>>0]););iA=A+612|0,ar[w>>2]=ar[iA>>2],Pn(R,42473,w),rA=A+616|0,ar[v>>2]=ar[rA>>2],Pn(R,42511,v),eA=A+620|0,ar[m>>2]=ar[eA>>2],Pn(R,42558,m),AA=A+624|0,ar[B>>2]=ar[AA>>2],Pn(R,42596,B),ar[E>>2]=ar[A+628>>2],Pn(R,42641,E),ar[tA>>2]=ar[A+632>>2],Pn(R,42683,tA),tA=A+636|0,ar[oA>>2]=tr[tA>>0],Pn(R,42725,oA),0|tr[tA>>0]&&(oA=A+637|0,ar[X>>2]=tr[oA>>0],Pn(R,42883,X),0|tr[oA>>0])&&Pn(R,42924,W);ar[I>>2]=tr[A+4702>>0],Pn(R,42968,I),ar[aA>>2]=tr[A+4703>>0],Pn(R,43010,aA),aA=A+4704|0,ar[C>>2]=tr[aA>>0],Pn(R,43052,C),0|tr[aA>>0]&&(ar[G>>2]=tr[A+4705>>0],Pn(R,43094,G),ar[g>>2]=tr[A+4706>>0],Pn(R,43130,g),ar[Z>>2]=ar[A+4708>>2],Pn(R,43166,Z),ar[p>>2]=ar[A+4712>>2],Pn(R,43208,p),ar[y>>2]=tr[A+4716>>0],Pn(R,43259,y));if(q=A+4720|0,$=A+4724|0,ar[V>>2]=((0|ar[$>>2])-(0|ar[q>>2])|0)/100|0,Pn(R,43295,V),(0|ar[$>>2])!=(0|ar[q>>2]))for(K=0;ar[cA>>2]=K,Pn(R,43367,cA),pc((0|ar[q>>2])+(100*K|0)|0,16,R),(K=K+1|0)>>>0<(((0|ar[$>>2])-(0|ar[q>>2])|0)/100|0)>>>0;);if(cA=A+4732|0,ar[F>>2]=tr[cA>>0],Pn(R,43329,F),0|tr[cA>>0]&&(uA=A+4736|0,ar[lA>>2]=ar[uA>>2],Pn(R,43388,lA),0<(0|ar[uA>>2])))for(K=0;cA=0|ar[A+4740+(K<<2)>>2],lA=0|tr[A+4868+K>>0],ar[N>>2]=K,ar[4+N>>2]=cA,ar[8+N>>2]=lA,Pn(R,43421,N),(0|(K=K+1|0))<(0|ar[uA>>2]););ar[_>>2]=tr[A+4900>>0],Pn(R,43490,_),ar[Y>>2]=tr[A+4901>>0],Pn(R,43531,Y),K=A+4902|0,ar[Q>>2]=tr[K>>0],Pn(R,43572,Q),ar[bA>>2]=tr[A+4980>>0],Pn(R,43613,bA),bA=A+4981|0,ar[D>>2]=tr[bA>>0],Pn(R,43649,D),ar[J>>2]=tr[A+4982>>0],Pn(R,43685,J),ar[M>>2]=tr[A+4983>>0],Pn(R,43721,M),ar[T>>2]=ar[A+5048>>2],Pn(R,43757,T),ar[U>>2]=ar[A+5044>>2],Pn(R,43776,U),ar[S>>2]=1<<(0|ar[rA>>2])+(0|ar[iA>>2]),Pn(R,43795,S),ar[O>>2]=1<>2],Pn(R,43814,O),ar[z>>2]=1<<(0|ar[AA>>2])+(0|ar[eA>>2]),Pn(R,43833,z),ar[j>>2]=ar[A+5056>>2],Pn(R,43852,j),ar[H>>2]=ar[A+5064>>2],Pn(R,43882,H),ar[x>>2]=ar[A+5016>>2],Pn(R,43912,x),ar[P>>2]=ar[A+5020>>2],Pn(R,43942,P),0|tr[bA>>0]&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b;switch(ur=(b=ur)+80|0,a=b+72|0,o=b+64|0,t=b+56|0,n=b+48|0,f=b+40|0,u=b+32|0,l=b+24|0,c=b+16|0,i=b+8|0,r=b,0|(e|=0)){case 1:e=10172;break;case 2:e=10676;break;default:return ur=b}Pn(e=0|ar[e>>2],43972,r),ar[i>>2]=cr[A>>0],Pn(e,44029,i),ar[c>>2]=cr[A+1>>0],Pn(e,44075,c),ar[l>>2]=cr[A+2>>0],Pn(e,44121,l),ar[u>>2]=cr[A+3>>0],Pn(e,44167,u),ar[f>>2]=cr[A+4>>0],Pn(e,44213,f),ar[n>>2]=cr[A+5>>0],Pn(e,44259,n),ar[t>>2]=cr[A+6>>0],Pn(e,44305,t),ar[o>>2]=cr[A+7>>0],Pn(e,44351,o),ar[a>>2]=cr[A+8>>0],Pn(e,44397,a),ur=b}(A+4984|0,e);0|tr[K>>0]&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y=0,Q=0,D=0,J=0,M=0;switch(ur=(_=ur)+304|0,a=_+288|0,o=_+280|0,t=_+272|0,N=_+264|0,R=_+256|0,F=_+248|0,V=_+240|0,G=_+232|0,C=_+224|0,M=_+216|0,I=_+208|0,W=_+200|0,X=_+192|0,E=_+184|0,B=_+176|0,J=_+168|0,y=_+160|0,p=_+152|0,Z=_+144|0,g=_+136|0,m=_+128|0,v=_+120|0,w=_+112|0,h=_+104|0,k=_+96|0,d=_+88|0,D=_+80|0,s=_+72|0,b=_+64|0,u=_+56|0,l=_+48|0,c=_+40|0,f=_+32|0,Q=_+24|0,n=_+16|0,i=_+8|0,Y=_,0|(e|=0)){case 1:e=10172;break;case 2:e=10676;break;default:return ur=_}if(Pn(r=0|ar[e>>2],45969,Y),Y=0|lr[A+4>>1],ar[i>>2]=lr[A+2>>1],ar[4+i>>2]=Y,Pn(r,46010,i),ar[n>>2]=cr[A+6>>0],Pn(r,46046,n),ar[Q>>2]=cr[A+7>>0],Pn(r,46079,Q),Q=A+8|0,ar[f>>2]=cr[Q>>0],Pn(r,46112,f),0|tr[Q>>0]){switch(0|ar[A+12>>2]){case 0:e=45959;break;case 1:e=45955;break;case 2:e=45950;break;case 3:e=45944;break;case 4:e=45940;break;default:e=45928}ar[c>>2]=e,Pn(r,46148,c),ar[l>>2]=cr[A+16>>0],Pn(r,46184,l),ar[u>>2]=cr[A+17>>0],Pn(r,46220,u),ar[b>>2]=cr[A+18>>0],Pn(r,46260,b),ar[s>>2]=cr[A+19>>0],Pn(r,46296,s),ar[D>>2]=cr[A+20>>0],Pn(r,46332,D)}D=A+21|0,ar[d>>2]=cr[D>>0],Pn(r,46368,d),0|tr[D>>0]&&(ar[k>>2]=cr[A+22>>0],Pn(r,46402,k),ar[h>>2]=cr[A+23>>0],Pn(r,46445,h));ar[w>>2]=cr[A+24>>0],Pn(r,46488,w),ar[v>>2]=cr[A+25>>0],Pn(r,46524,v),ar[m>>2]=cr[A+26>>0],Pn(r,46560,m),ar[g>>2]=cr[A+27>>0],Pn(r,46596,g),ar[Z>>2]=ar[A+28>>2],Pn(r,46632,Z),ar[p>>2]=ar[A+32>>2],Pn(r,46668,p),ar[y>>2]=ar[A+36>>2],Pn(r,46704,y),ar[J>>2]=ar[A+40>>2],Pn(r,46740,J),J=A+44|0,ar[B>>2]=cr[J>>0],Pn(r,46776,B),0|tr[J>>0]&&(ar[E>>2]=ar[A+48>>2],Pn(r,46812,E),ar[X>>2]=ar[A+52>>2],Pn(r,46848,X));ar[W>>2]=cr[A+56>>0],Pn(r,46884,W),ar[I>>2]=ar[A+60>>2],Pn(r,46926,I),ar[M>>2]=cr[A+64>>0],Pn(r,46968,M),M=A+65|0,ar[C>>2]=cr[M>>0],Pn(r,47006,C),0|tr[M>>0]&&(ar[G>>2]=cr[A+66>>0],Pn(r,47047,G),ar[V>>2]=cr[A+67>>0],Pn(r,47088,V),ar[F>>2]=cr[A+68>>0],Pn(r,47136,F),ar[R>>2]=lr[A+70>>1],Pn(r,47177,R),ar[N>>2]=cr[A+72>>0],Pn(r,47218,N),ar[t>>2]=cr[A+73>>0],Pn(r,47259,t),ar[o>>2]=cr[A+74>>0],Pn(r,47300,o),ar[a>>2]=cr[A+75>>0],Pn(r,47341,a)),ur=_}(A+4904|0,e),ur=L}(r,e),hb(0|(f=A+11096+(5168*(e=0|ar[r+472>>2])|0)|0),0|r,4717),(0|f)!=(0|r)&&Ke(A+11096+(5168*e|0)+4720|0,0|ar[r+4720>>2],0|ar[r+4724>>2]),hb(A+11096+(5168*e|0)+4732|0,r+4732|0,436),f=0,Ac(r),ur=i,0|f)}function Ke(A,e,r){var i,f,n,t=0,o=0,a=0,c=0,l=0;if((a=(0|(c=(i=r|=0)-(e|=0)|0))/100|0)>>>0<=(((t=0|ar[(f=(A|=0)+8|0)>>2])-(n=l=0|ar[A>>2])|0)/100|0)>>>0)return 0|(t=(o=a=(A=(o=((0|ar[(c=A+4|0)>>2])-l|0)/100|0)>>>0>>0)?e+(100*o|0)|0:r)-e|0)&&wb(0|l,0|e,0|t),r=n+(100*((0|t)/100|0)|0)|0,A?!((0|(t=i-o|0))<=0)&&(hb(0|ar[c>>2],0|a,0|t),void(ar[c>>2]=(0|ar[c>>2])+(100*((t>>>0)/100|0)|0))):(0|(t=0|ar[c>>2]))!=(0|r)&&void(ar[c>>2]=t+(100*~(((t+-100-r|0)>>>0)/100|0)|0));(o=l)&&((0|(r=0|ar[(t=A+4|0)>>2]))!=(0|n)&&(ar[t>>2]=r+(100*~(((r+-100-l|0)>>>0)/100|0)|0)),vu(o),ar[f>>2]=0,ar[t>>2]=0,t=ar[A>>2]=0),42949672>>0&&zl(),t=(l=(0|t)/100|0)<<1,42949672<(t=l>>>0<21474836?t>>>0>>0?a:t:42949672)>>>0&&zl(),r=0|hu(100*t|0),ar[(o=A+4|0)>>2]=r,ar[A>>2]=r,ar[f>>2]=r+(100*t|0),(0|c)<=0||(hb(0|r,0|e,0|c),ar[o>>2]=r+(100*((c>>>0)/100|0)|0))}function qe(A,e){A|=0,e|=0;var r,i,f,n=0;return ur=(f=ur)+4400|0,Ia(i=f),r=0|function(A,e,r){e|=0,r|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(Ca(A|=0,0),u=0|it(e),63<(0|(tr[A+1>>0]=u))|-99999==(0|u))return er(r+4|0,1009,0),(r=0)|r;if(u=0|it(e),63<(0|(tr[(n=A+2|0)>>0]=u))|-99999==(0|u))return er(r+4|0,1010,0),(r=0)|r;if(u=255&(0|At(e,1)),tr[A+3>>0]=u,u=255&(0|At(e,1)),tr[A+31>>0]=u,u=255&(0|At(e,3)),tr[A+4132>>0]=u,u=255&(0|At(e,1)),tr[A+4>>0]=u,u=255&(0|At(e,1)),tr[A+5>>0]=u,u=0|it(e),i=255&u,tr[(f=A+6|0)>>0]=i,-99999==(0|u))return er(r+4|0,1006,0),(r=0)|r;if(tr[f>>0]=i+1<<24>>24,u=0|it(e),i=255&u,tr[(f=A+7|0)>>0]=i,-99999==(0|u))return er(r+4|0,1006,0),(r=0)|r;if(tr[f>>0]=i+1<<24>>24,l=0|tr[n>>0],!(0|tr[(u=r+11096+(5168*l|0)|0)>>0]))return er(r+4|0,1010,0),(r=0)|r;if(i=0|ft(e),-99999==(0|(ar[(f=A+8|0)>>2]=i)))return er(r+4|0,1006,0),(r=0)|r;if(ar[f>>2]=i+26,c=255&(0|At(e,1)),tr[A+12>>0]=c,c=255&(0|At(e,1)),tr[A+13>>0]=c,c=255&(0|At(e,1)),(tr[A+14>>0]=c)<<24>>24){if(c=0|it(e),-99999==(0|(ar[A+16>>2]=c)))return er(r+4|0,1006,0),(r=0)|r}else ar[A+16>>2]=0;if(c=0|ft(e),-99999==(0|(ar[A+20>>2]=c)))return er(r+4|0,1006,0),(r=0)|r;if(c=0|ft(e),-99999==(0|(ar[A+24>>2]=c)))return er(r+4|0,1006,0),(r=0)|r;if(a=255&(0|At(e,1)),tr[A+28>>0]=a,a=255&(0|At(e,1)),tr[A+29>>0]=a,a=255&(0|At(e,1)),tr[A+30>>0]=a,a=255&(0|At(e,1)),tr[A+32>>0]=a,a=255&(0|At(e,1)),tr[(c=A+34|0)>>0]=a,a=255&(0|At(e,1)),tr[A+33>>0]=a,0|tr[c>>0]){if(i=0|it(e),-99999==(0|(ar[(a=A+36|0)>>2]=i))|9<(0|i))return er(r+4|0,1006,0),(r=0)|r;if(ar[a>>2]=i+1,i=0|it(e),-99999==(0|(ar[(c=A+40|0)>>2]=i))|9<(0|i))return er(r+4|0,1006,0),(r=0)|r;ar[c>>2]=i+1,o=0|At(e,1),tr[A+44>>0]=o;do{if(!(255&o)){n=0|ar[r+11096+(5168*l|0)+5056>>2],f=0|ar[r+11096+(5168*l|0)+5064>>2],o=0|ar[a>>2],i=o+-1|0;A:do{if(1<(0|o)){for(o=0;i=0|it(e),-99999!=(0|(ar[(t=A+4172+(o<<2)|0)>>2]=i));)if(i=i+1|0,ar[t>>2]=i,n=n-i|0,o=o+1|0,(0|(i=(0|ar[a>>2])-1|0))<=(0|o))break A;return er(r+4|0,1006,0),(r=0)|r}}while(0);if((0|n)<1)return(r=0)|r;ar[A+4172+(i<<2)>>2]=n,a=0|ar[c>>2],i=a+-1|0;A:do{if(1<(0|a)){for(t=0;i=0|it(e),-99999!=(0|(ar[(n=A+4212+(t<<2)|0)>>2]=i));)if(i=i+1|0,ar[n>>2]=i,f=f-i|0,t=t+1|0,(0|(i=(0|ar[c>>2])-1|0))<=(0|t))break A;return er(r+4|0,1006,0),(r=0)|r}}while(0);if((0|f)<1)return(r=0)|r;ar[A+4212+(i<<2)>>2]=f;break}}while(0);i=255&(0|At(e,1))}else ar[A+36>>2]=1,ar[A+40>>2]=1,tr[A+44>>0]=1,i=0;tr[A+45>>0]=i,ar[(i=A+52|0)>>2]=0,ar[(n=A+56|0)>>2]=0,c=255&(0|At(e,1)),tr[A+46>>0]=c,c=255&(0|At(e,1)),tr[A+47>>0]=c;do{if(c<<24>>24){if(c=255&(0|At(e,1)),tr[A+48>>0]=c,c=255&(0|At(e,1)),!((tr[A+49>>0]=c)<<24>>24)){if(f=0|ft(e),-99999==(0|(ar[i>>2]=f)))return er(r+4|0,1006,0),(r=0)|r;if(ar[i>>2]=f<<1,i=0|ft(e),-99999==(0|(ar[n>>2]=i)))return er(r+4|0,1006,0),(r=0)|r;ar[n>>2]=i<<1;break}}else tr[A+48>>0]=0,tr[A+49>>0]=0}while(0);if(c=0|At(e,1),i=255&c,tr[A+60>>0]=i,0!=(255&c|0)&&0==(0|tr[r+11096+(5168*l|0)+636>>0]))return er(r+4|0,1006,0),(r=0)|r;if(i<<24>>24){if(0|(i=0|ec(e,u,A+61|0,1)))return er(r+4|0,i,0),(r=0)|r}else hb(A+61|0,r+11096+(5168*l|0)+638|0,4064);if(i=255&(0|At(e,1)),tr[A+4125>>0]=i,i=0|it(e),-99999==(0|(ar[(f=A+4128|0)>>2]=i)))return er(r+4|0,1006,0),(r=0)|r;if(ar[f>>2]=i+2,(0|i)>((0|ar[r+11096+(5168*l|0)+612>>2])-2+(0|ar[r+11096+(5168*l|0)+616>>2])|0))return(r=0)|r;return l=255&(0|At(e,1)),tr[A+4133>>0]=l,l=255&(0|At(e,1)),!((tr[A+4134>>0]=l)<<24>>24&&(c=255&(0|At(e,1)),tr[(l=A+4135|0)>>0]=c,c=255&(0|At(e,1)),tr[A+4136>>0]=c,c=255&(0|At(e,6)),tr[A+4137>>0]=c,0|tr[l>>0]))||0|function(A,e,r,i){A|=0,e|=0,r|=0;var f,n=0,t=0,o=0;f=0|tr[2+(i|=0)>>0],0|tr[i+13>>0]&&(t=2+(0|it(e))&255,tr[A>>0]=t);t=0!=(0|At(e,1)),tr[A+1>>0]=1&t,3==(0|ar[(n=r+11096+(5168*f|0)+5012|0)>>2])|1^t||er(r+4|0,1006,0);o=0!=(0|At(e,1)),i=1&o,tr[(t=A+2|0)>>0]=i,0!=(0|ar[n>>2])|1^o||(er(r+4|0,1006,0),i=0|tr[t>>0]);A:do{if(i<<24>>24){if(-99999!=(0|(i=0|it(e)))&&(0|i)<=(0|ar[r+11096+(5168*f|0)+616>>2])){if(tr[A+3>>0]=i,-99999==(0|(i=0|it(e)))|5<(0|i))return er(r+4|0,1006,0),(o=0)|o;if(o=i+1|0,!(255&(tr[(t=A+4|0)>>0]=o)))break;for(n=0;;){if(24<((i=0|ft(e))+12|0)>>>0){i=15;break}if(tr[A+5+n>>0]=i,24<((i=0|ft(e))+12|0)>>>0){i=17;break}if(tr[A+11+n>>0]=i,(0|(n=n+1|0))>=(0|cr[t>>0]))break A}if(15==(0|i))return er(r+4|0,1006,0),(o=0)|o;if(17==(0|i))return er(r+4|0,1006,0),(o=0)|o}return er(r+4|0,1006,0),(o=0)|o}}while(0);if(-99999!=(0|(i=0|it(e)))&&(o=0|ar[r+11096+(5168*f|0)+4996>>2],(0|i)<=(0|((0|o)<10?0:o+-10|0))))return tr[A+17>>0]=i,-99999!=(0|(i=0|it(e)))&&(o=0|ar[r+11096+(5168*f|0)+5004>>2],(0|i)<=(0|((0|o)<10?0:o+-10|0)))?(tr[A+18>>0]=i,0|(o=1)):(er(r+4|0,1006,0),(o=0)|o);return er(r+4|0,1006,0),(o=0)|o}(A+4138|0,e,r,A)?(function(A,e){A|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;if(t=ur,y=0|ar[(n=5040+(e|=0)|0)>>2],ar[A+4160>>2]=y-(0|ar[A+16>>2]),ar[A+4164>>2]=y-(0|cr[A+4141>>0]),ar[A+4168>>2]=cr[A+4138>>0],y=A+36|0,0|tr[A+44>>0]){if(a=0|ar[y>>2],ur=(l=ur)+(15+(4+(a<<2)|0)&-16)|0,0<=(0|a)){for(c=0|ar[e+5056>>2],o=0;B=(0|br(c,o))/(0|a)|0,ar[l+(o<<2)>>2]=B,(0|o)!=(0|a);)o=o+1|0;if(0<(0|a))for(a=(o=0)|ar[l>>2];p=a,a=0|ar[l+((o=(B=o)+1|0)<<2)>>2],ar[A+4172+(B<<2)>>2]=a-p,(0|o)<(0|ar[y>>2]););}if(a=0|ar[(l=A+40|0)>>2],ur=(u=ur)+(15+(4+(a<<2)|0)&-16)|0,0<=(0|a)){for(c=0|ar[e+5064>>2],o=0;B=(0|br(c,o))/(0|a)|0,ar[u+(o<<2)>>2]=B,(0|o)!=(0|a);)o=o+1|0;if(0<(0|a))for(a=(o=0)|ar[u>>2];p=a,a=0|ar[u+((o=(B=o)+1|0)<<2)>>2],ar[A+4212+(B<<2)>>2]=a-p,(0|o)<(0|ar[l>>2]););}}if(ar[A+4252>>2]=0,0<(0|ar[y>>2]))for(a=o=0;a=(0|ar[A+4172+(o<<2)>>2])+a|0,ar[A+4252+((o=o+1|0)<<2)>>2]=a,(0|o)<(0|ar[y>>2]););if(ar[A+4296>>2]=0,0<(0|ar[(p=A+40|0)>>2]))for(a=o=0;o=(0|ar[A+4212+(a<<2)>>2])+o|0,ar[A+4296+((a=a+1|0)<<2)>>2]=o,(0|a)<(0|ar[p>>2]););B=A+4340|0,a=0|ar[(v=e+5072|0)>>2],u=0|ar[(o=A+4344|0)>>2],l=0|ar[B>>2],a>>>0<=(c=u-l>>2)>>>0?a>>>0>>0&&(0|u)!=(0|(b=l+(a<<2)|0))&&(ar[o>>2]=u+(~((u+-4-b|0)>>>2)<<2)):(Va(B,a-c|0),a=0|ar[v>>2]);w=A+4352|0,l=0|ar[(u=A+4356|0)>>2],c=0|ar[w>>2],a>>>0<=(o=l-c>>2)>>>0?a>>>0>>0&&(0|l)!=(0|(s=c+(a<<2)|0))&&(ar[u>>2]=l+(~((l+-4-s|0)>>>2)<<2)):(Va(w,a-o|0),a=0|ar[v>>2]);i=A+4364|0,u=0|ar[(o=A+4368|0)>>2],l=0|ar[i>>2],a>>>0<=(c=u-l>>2)>>>0?a>>>0>>0&&(0|u)!=(0|(d=l+(a<<2)|0))&&(ar[o>>2]=u+(~((u+-4-d|0)>>>2)<<2)):(Va(i,a-c|0),a=0|ar[v>>2]);r=A+4376|0,u=0|ar[(o=A+4380|0)>>2],l=0|ar[r>>2],a>>>0<=(c=u-l>>2)>>>0?a>>>0>>0&&(0|u)!=(0|(k=l+(a<<2)|0))&&(ar[o>>2]=u+(~((u+-4-k|0)>>>2)<<2)):Va(r,a-c|0);f=A+4388|0,o=0|ar[e+5096>>2],u=0|ar[(a=A+4392|0)>>2],l=0|ar[f>>2],o>>>0<=(c=u-l>>2)>>>0?o>>>0>>0&&(0|u)!=(0|(h=l+(o<<2)|0))&&(ar[a>>2]=u+(~((u+-4-h|0)>>>2)<<2)):Va(f,o-c|0);A:do{if(0<(0|ar[v>>2])){for(d=e+5056|0,s=0;;){if(h=0|ar[d>>2],k=(0|s)%(0|h)|0,h=(0|s)/(0|h)|0,0<(0|(c=0|ar[y>>2])))for(a=0,o=-1;o=(0|k)<(0|ar[A+4252+(a<<2)>>2])?o:a,(0|(a=a+1|0))<(0|c););else o=-1;if(0<(0|(l=0|ar[p>>2])))for(c=0,a=-1;a=(0|h)<(0|ar[A+4296+(c<<2)>>2])?a:c,(0|(c=c+1|0))<(0|l););else a=-1;if(b=(0|ar[B>>2])+(s<<2)|0,(ar[b>>2]=0)<(0|o))for(u=A+4212+(a<<2)|0,c=l=0;c=c+(0|br(0|ar[A+4172+(l<<2)>>2],0|ar[u>>2]))|0,ar[b>>2]=c,(0|(l=l+1|0))!=(0|o););else c=0;if(0<(0|a))for(l=0;c=c+(0|br(0|ar[A+4212+(l<<2)>>2],0|ar[d>>2]))|0,ar[b>>2]=c,(0|(l=l+1|0))!=(0|a););if((a|o|0)<=-1)break;if(Z=c+(0|br(h-(0|ar[A+4296+(a<<2)>>2])|0,0|ar[A+4172+(o<<2)>>2]))|0,ar[b>>2]=Z,Z=k-(0|ar[A+4252+(o<<2)>>2])+Z|0,ar[b>>2]=Z,(0|(s=(ar[(0|ar[w>>2])+(Z<<2)>>2]=s)+1|0))>=(0|ar[v>>2]))break A}sr(37364,37385,618,37392)}}while(0);if(0<(0|(o=0|ar[p>>2]))){Z=e+5056|0,a=(c=l=0)|ar[y>>2];do{if(0<(0|a)){g=A+4296+(c<<2)|0,w=l,o=(v=0)|ar[(m=A+4296+((c=c+1|0)<<2)|0)>>2];do{if(u=0|ar[g>>2],v=(l=v)+1|0,(0|u)<(0|o)){k=A+4252+(l<<2)|0,a=0|ar[(h=A+4252+(v<<2)|0)>>2];do{if((0|(d=0|ar[k>>2]))<(0|a)){for(l=0|ar[B>>2],b=0|ar[i>>2],s=0|ar[r>>2],o=d;a=l+((0|br(0|ar[Z>>2],u))+o<<2)|0,ar[b+(ar[a>>2]<<2)>>2]=w,a=s+((0|br(0|ar[Z>>2],u))+o<<2)|0,ar[a>>2]=w,o=o+1|0,a=0|ar[h>>2],(0|o)<(0|a););o=0|ar[m>>2]}u=u+1|0}while((0|u)<(0|o));a=0|ar[y>>2]}w=w+1|0}while((0|v)<(0|a));l=w,o=0|ar[p>>2]}else c=c+1|0}while((0|c)<(0|o))}if((0|(o=0|ar[(k=e+5092|0)>>2]))<=0)return ur=t;w=e+5100|0,d=e+5056|0,a=0|ar[(h=e+5088|(s=0))>>2];do{if(0<(0|a)){u=0|ar[B>>2],b=0|ar[f>>2],l=0;do{if(e=0|ar[w>>2],A=0|ar[n>>2],y=u+((0|br(0|ar[d>>2],s<>A))+(l<>A)<<2)|0,o=b+((0|br(a,s))+l<<2)|0,ar[o>>2]=ar[y>>2]<<(A-e<<1),o=0|ar[n>>2],(0|(a=0|ar[w>>2]))<(0|o))for(c=o-a|0,o=a=0;o=(0==((e=1<>2],s))+l<<2)|0,ar[a>>2]=(0|ar[a>>2])+o,l=l+1|0,a=0|ar[h>>2]}while((0|l)<(0|a));o=0|ar[k>>2]}s=s+1|0}while((0|s)<(0|o));ur=t}(A,u),tr[A>>0]=1,0|(r=1)):(r=0)|r}(i,e,A),-1<(0|(e=0|ar[A+524>>2]))&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P=0,L=0,K=0,q=0,$=0,AA=0;switch(ur=(x=ur)+400|0,U=x+392|0,T=x+384|0,M=x+376|0,J=x+368|0,D=x+360|0,Q=x+352|0,Y=x+344|0,_=x+336|0,N=x+328|0,R=x+320|0,F=x+312|0,V=x+304|0,G=x+296|0,C=x+288|0,AA=x+280|0,H=x+272|0,j=x+264|0,$=x+256|0,z=x+248|0,O=x+240|0,S=x+232|0,I=x+224|0,W=x+216|0,X=x+208|0,B=x+200|0,y=x+192|0,p=x+184|0,Z=x+176|0,g=x+168|0,v=x+160|0,w=x+152|0,h=x+144|0,k=x+136|0,d=x+128|0,s=x+120|0,b=x+112|0,u=x+104|0,l=x+96|0,c=x+88|0,o=x+80|0,t=x+72|0,n=x+64|0,f=x+56|0,i=x+48|0,r=x+40|0,q=x+32|0,m=x+24|0,a=x+16|0,K=x+8|0,L=x,0|(e|=0)){case 1:P=10172;break;case 2:P=10676;break;default:return ur=x}Pn(E=0|ar[P>>2],37411,L),ar[K>>2]=tr[A+1>>0],Pn(E,37452,K),ar[a>>2]=tr[A+2>>0],Pn(E,37485,a),ar[m>>2]=tr[A+3>>0],Pn(E,37518,m),ar[q>>2]=tr[A+4>>0],Pn(E,37562,q),ar[r>>2]=tr[A+5>>0],Pn(E,37595,r),ar[i>>2]=tr[A+6>>0],Pn(E,37628,i),ar[f>>2]=tr[A+7>>0],Pn(E,37664,f),ar[n>>2]=ar[A+8>>2],Pn(E,37700,n),ar[t>>2]=tr[A+12>>0],Pn(E,37733,t),ar[o>>2]=tr[A+13>>0],Pn(E,37766,o),q=A+14|0,ar[c>>2]=tr[q>>0],Pn(E,37799,c),0|tr[q>>0]&&(ar[l>>2]=ar[A+16>>2],Pn(E,37832,l));if(ar[u>>2]=ar[A+20>>2],Pn(E,37865,u),ar[b>>2]=ar[A+24>>2],Pn(E,37900,b),ar[s>>2]=tr[A+28>>0],Pn(E,37935,s),ar[d>>2]=tr[A+29>>0],Pn(E,37982,d),ar[k>>2]=tr[A+30>>0],Pn(E,38017,k),ar[h>>2]=tr[A+31>>0],Pn(E,38052,h),ar[w>>2]=tr[A+32>>0],Pn(E,38087,w),q=A+34|0,ar[v>>2]=tr[q>>0],Pn(E,38122,v),ar[g>>2]=tr[A+33>>0],Pn(E,38157,g),0|tr[q>>0]){if(L=A+36|0,ar[Z>>2]=ar[L>>2],Pn(E,38195,Z),K=A+40|0,ar[p>>2]=ar[K>>2],Pn(E,38221,p),ar[y>>2]=tr[A+44>>0],Pn(E,38247,y),Pn(E,38273,B),0<=(0|ar[L>>2]))for(P=0;ar[I>>2]=ar[A+4252+(P<<2)>>2],Pn(E,38320,I),(0|P)<(0|ar[L>>2]);)P=P+1|0;if(Pn(E,45728,X),Pn(E,38298,W),0<=(0|ar[K>>2]))for(P=0;ar[z>>2]=ar[A+4296+(P<<2)>>2],Pn(E,38320,z),(0|P)<(0|ar[K>>2]);)P=P+1|0;Pn(E,45728,S),ar[O>>2]=tr[A+45>>0],Pn(E,38325,O)}ar[$>>2]=tr[A+46>>0],Pn(E,38369,$),$=A+47|0,ar[j>>2]=tr[$>>0],Pn(E,38417,j),0|tr[$>>0]&&(ar[H>>2]=tr[A+48>>0],Pn(E,38461,H),ar[AA>>2]=tr[A+49>>0],Pn(E,38506,AA),ar[C>>2]=ar[A+52>>2],Pn(E,38546,C),ar[G>>2]=ar[A+56>>2],Pn(E,38564,G));ar[V>>2]=tr[A+60>>0],Pn(E,38582,V),ar[F>>2]=tr[A+4125>>0],Pn(E,38622,F),ar[R>>2]=ar[A+4128>>2],Pn(E,38659,R),ar[N>>2]=tr[A+4132>>0],Pn(E,38696,N),ar[_>>2]=tr[A+4133>>0],Pn(E,38733,_),ar[Y>>2]=tr[A+4134>>0],Pn(E,38783,Y),AA=A+4135|0,ar[Q>>2]=tr[AA>>0],Pn(E,38819,Q),ar[D>>2]=tr[A+4136>>0],Pn(E,38855,D),ar[J>>2]=tr[A+4137>>0],Pn(E,38891,J),ar[M>>2]=ar[A+4160>>2],Pn(E,38927,M),ar[T>>2]=ar[A+4164>>2],Pn(E,38963,T),ar[U>>2]=ar[A+4168>>2],Pn(E,39004,U),0|tr[AA>>0]&&function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b=0,s=0,d=0;switch(ur=(u=ur)+80|0,l=u+72|0,c=u+64|0,a=u+56|0,o=u+48|0,n=u+40|0,s=u+32|0,t=u+24|0,b=u+16|0,f=u+8|0,i=u,0|(e|=0)){case 1:e=10172;break;case 2:e=10676;break;default:return ur=u}if(Pn(r=0|ar[e>>2],36905,i),ar[f>>2]=cr[A>>0],Pn(r,36948,f),ar[b>>2]=cr[A+1>>0],Pn(r,36994,b),b=A+2|0,ar[t>>2]=cr[b>>0],Pn(r,37040,t),0|tr[b>>0]&&(ar[s>>2]=cr[A+3>>0],Pn(r,37086,s),d=A+4|0,ar[n>>2]=cr[d>>0],Pn(r,37132,n),0|tr[d>>0]))for(e=0;s=0|tr[A+5+e>>0],ar[o>>2]=e,ar[4+o>>2]=s,Pn(r,37178,o),s=0|tr[A+11+e>>0],ar[a>>2]=e,ar[4+a>>2]=s,Pn(r,37225,a),(0|(e=e+1|0))<(0|cr[d>>0]););ar[c>>2]=cr[A+17>>0],Pn(r,37272,c),ar[l>>2]=cr[A+18>>0],Pn(r,37318,l),ur=u}(A+4138|0,e),ur=x}(i,e),r?(hb(0|(n=A+93784+(4400*(e=0|tr[i+1>>0])|0)|0),0|i,4340),ur=(n=((0|n)==(0|i)||($e(A+93784+(4400*e|0)+4340|0,0|ar[i+4340>>2],0|ar[i+4344>>2]),$e(A+93784+(4400*e|0)+4352|0,0|ar[i+4352>>2],0|ar[i+4356>>2]),$e(A+93784+(4400*e|0)+4364|0,0|ar[i+4364>>2],0|ar[i+4368>>2]),$e(A+93784+(4400*e|0)+4376|0,0|ar[i+4376>>2],0|ar[i+4380>>2]),$e(A+93784+(4400*e|0)+4388|0,0|ar[i+4388>>2],0|ar[i+4392>>2])),r?0:1006),Ga(i),f),0|n):(A=r?0:1006,Ga(i),ur=f,0|A)}function $e(A,e,r){var i,f,n,t=0,o=0,a=0,c=0,l=0;if((a=(c=(i=r|=0)-(e|=0)|0)>>2)>>>0<=(t=0|ar[(f=(A|=0)+8|0)>>2])-(n=l=0|ar[A>>2])>>2>>>0)return 0|(r=(t=(o=a=(A=(o=(0|ar[(c=A+4|0)>>2])-l>>2)>>>0>>0)?e+(o<<2)|0:r)-e|0)>>2)&&wb(0|l,0|e,0|t),r=n+(r<<2)|0,A?!((0|(t=i-o|0))<=0)&&(hb(0|ar[c>>2],0|a,0|t),void(ar[c>>2]=(0|ar[c>>2])+(t>>>2<<2))):(0|(t=0|ar[c>>2]))!=(0|r)&&void(ar[c>>2]=t+(~((t+-4-r|0)>>>2)<<2));(o=l)&&((0|(r=0|ar[(t=A+4|0)>>2]))!=(0|n)&&(ar[t>>2]=r+(~((r+-4-l|0)>>>2)<<2)),vu(o),ar[f>>2]=0,ar[t>>2]=0,t=ar[A>>2]=0),1073741823>>0&&zl(),l=t>>1,1073741823<(t=t>>2>>>0<536870911?l>>>0>>0?a:l:1073741823)>>>0&&zl(),r=0|hu(t<<2),ar[(o=A+4|0)>>2]=r,ar[A>>2]=r,ar[f>>2]=r+(t<<2),(0|c)<=0||(hb(0|r,0|e,0|c),ar[o>>2]=r+(c>>>2<<2))}function Ar(A,e){e|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0,l=0;r=(A|=0)+4|0,i=0|ar[A>>2],53687091<(n=(o=(0|(f=(0|ar[r>>2])-i|0))/80|0)+1|0)>>>0&&zl(),c=(a=((0|ar[(l=A+8|0)>>2])-i|0)/80|0)<<1,n=a>>>0<26843545?c>>>0>>0?n:c:53687091;do{if(n){if(!(53687091>>0)){t=0|hu(80*n|0);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else t=0}while(0);for(a=t+(80*n|0)|0,n=e,t=(o=c=t+(80*o|0)|0)+80|0;ar[o>>2]=ar[n>>2],n=n+4|0,(0|(o=o+4|0))<(0|t););n=c+(80*((0|f)/-80|0)|0)|0,0<(0|f)&&hb(0|n,0|i,0|f),ar[A>>2]=n,ar[r>>2]=c+80,ar[l>>2]=a,i&&vu(i)}function er(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;A:do{if(r){f=0|ar[(i=A+164|0)>>2];do{if(0<(0|f)){for(r=0;;){if((0|ar[A+84+(r<<2)>>2])==(0|e)){r=10;break}if((0|f)<=(0|(r=r+1|0))){r=5;break}}if(5==(0|r)){if((0|f)<20)break;break A}if(10==(0|r))return}}while(0);ar[i>>2]=f+1,ar[A+84+(f<<2)>>2]=e}}while(0);20==(0|(r=0|ar[(i=A+80|0)>>2]))?(e=1001,r=19):ar[i>>2]=r+1,ar[A+(r<<2)>>2]=e}function rr(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;if(ur=(t=ur)+16|0,f=t+4|0,b=t+8|0,n=t,s=0|hu(1356),o=s,ar[776+(o|=0)>>2]=0,ar[o+780>>2]=0,ar[o+784>>2]=0,st(o+1332|0),ar[o+1344>>2]=0,ar[o+1348>>2]=0,ar[o+1352>>2]=0,La(o),l=0|function(A,e,r,i){A|=0,e|=0,r|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;tr[(i|=0)>>0]=0,La(A),tr[(l=A+12|0)>>0]=0,w=255&(0|At(e,1)),tr[(c=A+4|0)>>0]=w,0|tr[r+377214>>0]&&(w=255&(0|At(e,1)),tr[A+5>>0]=w);if(w=0|it(e),64<(0|(ar[A+8>>2]=w))|-99999==(0|w))return er(r+4|0,1009,0),(i=0)|i;if(!(0|tr[r+93784+(4400*w|0)>>0]))return er(r+4|0,1009,0),(i=0)|i;if(n=0|tr[r+93784+(4400*w|0)+2>>0],!(0|tr[(u=r+11096+(5168*n|0)|0)>>0]))return er(r+4|0,1010,0),tr[i>>0]=0,(i=0)|i;if(0|tr[c>>0])o=t=0,h=23;else{for(t=0|tr[r+93784+(4400*w|0)+3>>0]?255&(0|At(e,1)):0,tr[l>>0]=t,o=0|ar[r+11096+(5168*n|0)+5072>>2],t=0;(1<>0]){if(!t)return tr[i>>0]=0,er(r+4|0,1021,0),(i=0)|i;if(!(o=0|ar[r+376228>>2]))return 0|(i=16);hb(0|A,0|o,776),(a=(0|o)==(0|A))||$e(A+776|0,0|ar[o+776>>2],0|ar[o+780>>2]),hb(A+788|0,o+788|0,544),gt(A+1332|0,o+1332|0),tr[A+1340>>0]=0|tr[o+1340>>0],a||$e(A+1344|0,0|ar[o+1344>>2],0|ar[o+1348>>2]),tr[c>>0]=0,o=1,h=23}else o=0}23==(0|h)&&(tr[l>>0]=o);if(0<=(0|(ar[(f=A+16|0)>>2]=t))&&(0|t)<(0|ar[r+11096+(5168*n|0)+5072>>2])){if(!(o<<24>>24)){if(0<(0|tr[(o=r+93784+(4400*w|0)+4132|0)>>0]))for(t=0;et(e,1),(0|(t=t+1|0))<(0|tr[o>>0]););if(s=0|it(e),2<(0|(ar[(d=A+20|0)>>2]=s))|-99999==(0|s))return er(r+4|0,1007,0),tr[i>>0]=0,(i=0)|i;if(t=0|tr[r+93784+(4400*w|0)+31>>0]?255&(0|At(e,1)):1,tr[A+24>>0]=t,1==(0|tr[r+11096+(5168*n|0)+480>>0])&&(s=255&(0|At(e,2)),tr[A+25>>0]=s),ar[(t=A+28|0)>>2]=0,(((tr[(o=A+32|0)>>0]=0)|tr[r+377212>>0])-19&255)<2)ar[t>>2]=0,ar[A+140>>2]=0,ar[A+144>>2]=0,t=0;else{b=0|At(e,0|ar[(s=r+11096+(5168*n|0)+520|0)>>2]),ar[t>>2]=b,b=255&(0|At(e,1)),tr[o>>0]=b;do{if(b<<24>>24){for(a=r+11096+(5168*n|0)+4720|0,t=0|ar[(u=r+11096+(5168*n|0)+4724|0)>>2],c=0|ar[a>>2],l=(t-c|0)/100|0,o=0;(1<>2],t=0|ar[u>>2]):(o=c,c=0),(0|(ar[A+136>>2]=c))<((t-o|0)/100|0)){for(ar[A+808>>2]=c,t=o+(100*c|0)|0,o=(a=A+812|0)+100|0;or[a>>1]=0|or[t>>1],t=t+2|0,(0|(a=a+2|0))<(0|o););break}return er(r+4|0,1015,0),0|(i=8)}for(a=r+11096+(5168*n|0)+4720|0,Zc(r+4|0,u,e,t=A+34|0,((0|ar[(o=r+11096+(5168*n|0)+4724|0)>>2])-(0|ar[a>>2])|0)/100|0,a,1),ar[A+808>>2]=((0|ar[o>>2])-(0|ar[a>>2])|0)/100|0,o=(a=A+812|0)+100|0;or[a>>1]=0|or[t>>1],t=t+2|0,(0|(a=a+2|0))<(0|o););}while(0);A:do{if(0|tr[r+11096+(5168*n|0)+4732>>0]){l=r+11096+(5168*n|0)+4736|0;do{if(0<(0|ar[l>>2])){if(b=0|it(e),-99999!=(0|(ar[A+140>>2]=b)))break;return 0|(t=8)}ar[A+140>>2]=0}while(0);if(t=0|it(e),-99999==(0|(ar[(u=A+144|0)>>2]=t)))return 0|(i=8);if(o=0|ar[(b=A+140|0)>>2],((t=o+t|0)+(0|cr[A+908>>0])+(0|cr[A+909>>0])|0)>(0|ar[r+11096+(5168*n|0)+528+((0|tr[r+11096+(5168*n|0)+2>>0])-1<<2)>>2]))return er(r+4|0,1018,0),tr[i>>0]=0,(i=0)|i;if(!(0<(0|t))){t=0;break}for(c=t=0;;){if((0|c)<(0|o)){for(a=0|ar[l>>2],o=0;(1<>0]=a,(0|(a&=255))>=(0|ar[l>>2]))break;ar[r+376232+(c<<2)>>2]=ar[r+11096+(5168*n|0)+4740+(a<<2)>>2],o=(0|cr[o>>0])+(r+11096+(5168*n|0)+4868)|0}else v=0|At(e,0|ar[s>>2]),ar[(a=A+164+(c<<2)|0)>>2]=v,v=255&(0|At(e,1)),tr[(o=A+228+c|0)>>0]=v,ar[r+376232+(c<<2)>>2]=ar[a>>2];if(v=0|tr[o>>0],ar[r+376296+(c<<2)>>2]=v<<24>>24,t=(v<<24>>24!=0&1)+t|0,v=255&(0|At(e,1)),(tr[A+244+c>>0]=v)<<24>>24){if(o=0|it(e),-99999==(0|(ar[A+260+(c<<2)>>2]=o))){t=8,h=189;break}}else ar[A+260+(c<<2)>>2]=0,o=0;do{if(c){if((0|c)==(0|ar[b>>2]))break;o=(0|ar[r+376360+(c+-1<<2)>>2])+o|0}}while(0);if(ar[r+376360+(c<<2)>>2]=o,c=c+1|0,o=0|ar[b>>2],(0|c)>=((0|ar[u>>2])+o|0))break A}return 189==(0|h)?0|t:(er(r+4|0,1023,0),tr[i>>0]=0,(v=0)|v)}ar[A+140>>2]=0,ar[A+144>>2]=0,t=0}while(0);o=0|tr[r+11096+(5168*n|0)+4900>>0]?255&(0|At(e,1)):0,tr[A+324>>0]=o}o=0|tr[r+11096+(5168*n|0)+4703>>0]?(v=255&(0|At(e,1)),tr[A+325>>0]=v,0|ar[r+11096+(5168*n|0)+5012>>2]?255&(0|At(e,1)):0):tr[A+325>>0]=0,tr[(u=A+326|0)>>0]=o,ar[(c=A+328|0)>>2]=0,ar[(l=A+332|0)>>2]=0;do{if((0|ar[d>>2])>>>0<2){v=255&(0|At(e,1)),tr[A+327>>0]=v;do{if(v<<24>>24){if(o=0|it(e),-99999==(0|(ar[c>>2]=o)))return er(r+4|0,1007,0),0|(v=8);if(o=o+1|0,ar[c>>2]=o,0|ar[d>>2])break;if(a=0|it(e),-99999==(0|(ar[l>>2]=a)))return er(r+4|0,1007,0),0|(v=8);o=0|ar[c>>2],a=a+1|0,h=86;break}o=0|tr[r+93784+(4400*w|0)+6>>0],ar[c>>2]=o,a=0|tr[r+93784+(4400*w|0)+7>>0],h=86}while(0);if(86==(0|h)&&(ar[l>>2]=a),16<(0|o))return 0|(v=8);if(16<(0|ar[l>>2]))return 0|(v=8);t=(0|cr[A+911>>0])+t|0,ar[A+912>>2]=t;do{if(1<(0|t)&&0!=(0|tr[r+93784+(4400*w|0)+4125>>0])){for(o=0;(1<>0]=v;do{if(v<<24>>24){if(!(0<(0|ar[c>>2])))break;for(t=0;v=255&(0|At(e,o)),tr[A+338+t>>0]=v,(0|(t=t+1|0))<(0|ar[c>>2]););}}while(0);if(0|ar[d>>2]){tr[A+337>>0]=0;break}if(v=255&(0|At(e,1)),!((tr[A+337>>0]=v)<<24>>24))break;if(!(0<(0|ar[l>>2])))break;for(t=0;v=255&(0|At(e,o)),tr[A+354+t>>0]=v,(0|(t=t+1|0))<(0|ar[l>>2]););}else tr[A+336>>0]=0,tr[A+337>>0]=0}while(0);0|ar[d>>2]||(v=255&(0|At(e,1)),tr[A+370>>0]=v),t=0|tr[r+93784+(4400*w|0)+5>>0]?255&(0|At(e,1)):0,tr[A+371>>0]=t;do{if(0|tr[A+324>>0]){do{if(0|ar[d>>2])tr[(o=A+372|0)>>0]=1,t=1,h=108;else{if(t=255&(0|At(e,1)),(tr[(o=A+372|0)>>0]=t)<<24>>24){h=108;break}h=1<(0|ar[l>>2])?110:(t=0,113)}}while(0);108==(0|h)&&(h=1<(0|ar[c>>2])?110:113);do{if(110==(0|h)){if(a=0|it(e),-99999==(0|(ar[A+376>>2]=a)))return er(r+4|0,1007,0),0|(v=8);t=0|tr[o>>0];break}113==(0|h)&&(ar[A+376>>2]=0,a=0)}while(0);if(t<<24>>24){if((0|a)<(0|ar[c>>2]))break}else if((0|a)<(0|ar[l>>2]))break;return er(r+4|0,8,0),0|(v=8)}}while(0);h=0!=(0|tr[r+93784+(4400*w|0)+29>>0])&&1==(0|ar[d>>2])?122:120;do{if(120==(0|h)){if(!(0|tr[r+93784+(4400*w|0)+30>>0]))break;0|ar[d>>2]||(h=122)}}while(0);do{if(122==(0|h)){if(0|Pa(e,A,r))break;return er(r+4|0,8,0),0|(v=8)}}while(0);if(t=0|it(e),-99999==(0|(ar[A+736>>2]=t)))return er(r+4|0,1007,0),0|(v=8);ar[A+804>>2]=5-t;break}}while(0);if(v=0|ft(e),-99999==(0|(ar[A+740>>2]=v)))return er(r+4|0,1007,0),0|(v=8);do{if(0|tr[r+93784+(4400*w|0)+28>>0]){if(v=0|ft(e),-99999==(0|(ar[A+744>>2]=v)))return er(r+4|0,1007,0),0|(v=8);if(v=0|ft(e),-99999!=(0|(ar[A+748>>2]=v)))break;return er(r+4|0,1007,0),0|(v=8)}ar[A+744>>2]=0,ar[A+748>>2]=0}while(0);0|tr[r+93784+(4400*w|0)+4140>>0]&&(v=255&(0|At(e,1)),tr[A+752>>0]=v),t=0|tr[r+93784+(4400*w|0)+48>>0]?255&(0|At(e,1)):0,tr[A+753>>0]=t,ar[(o=A+756|0)>>2]=ar[r+93784+(4400*w|0)+52>>2],ar[(a=A+760|0)>>2]=ar[r+93784+(4400*w|0)+56>>2];do{if(t<<24>>24){if(v=255&(0|At(e,1)),(tr[A+754>>0]=v)<<24>>24)break;if(t=0|ft(e),-99999==(0|(ar[o>>2]=t)))return er(r+4|0,1007,0),0|(v=8);if(ar[o>>2]=t<<1,t=0|ft(e),-99999==(0|(ar[a>>2]=t)))return er(r+4|0,1007,0),0|(v=8);ar[a>>2]=t<<1;break}tr[A+754>>0]=0|tr[r+93784+(4400*w|0)+49>>0]}while(0);t=0|tr[r+93784+(4400*w|0)+46>>0];A:do{if(t<<24>>24){do{if(!(0|tr[A+325>>0])){if(0|tr[u>>0])break;if(0|tr[A+754>>0])break A}}while(0);t=255&(0|At(e,1))}else t=0}while(0);tr[A+764>>0]=t}0==(0|tr[(o=r+93784+(4400*w|0)+34|0)>>0])&&0==(0|tr[r+93784+(4400*w|0)+33>>0])?ar[A+768>>2]=0:h=155;A:do{if(155==(0|h)){if(t=0|it(e),-99999==(0|(ar[(b=A+768|0)>>2]=t)))return er(r+4|0,1007,0),0|(v=8);if(0|tr[r+93784+(4400*w|0)+33>>0]&&(((0|ar[f>>2])/(0|ar[r+11096+(5168*n|0)+5056>>2])|0)+t|0)>=(0|ar[r+11096+(5168*n|0)+5064>>2]))return er(r+4|0,1007,0),0|(v=8);if(0|tr[o>>0]&&(0|t)>(0|br(0|ar[r+93784+(4400*w|0)+40>>2],0|ar[r+93784+(4400*w|0)+36>>2])))return er(r+4|0,1007,0),0|(v=8);if(u=A+776|0,l=0|ar[(o=A+780|0)>>2],c=0|ar[u>>2],t>>>0<=(a=l-c>>2)>>>0?t>>>0>>0&&(0|l)!=(0|(k=c+(t<<2)|0))&&(ar[o>>2]=l+(~((l+-4-k|0)>>>2)<<2)):(Va(u,t-a|0),t=0|ar[b>>2]),0<(0|t)){if(t=0|it(e),-99999==(0|(ar[(l=A+772|0)>>2]=t)))return er(r+4|0,1007,0),0|(v=8);if(o=t+1|0,ar[l>>2]=o,31<(0|t))return 0|(v=8);if(0<(0|ar[b>>2]))for(t=0;;){if(o=1+(0|At(e,o))|0,a=0|ar[u>>2],ar[(c=a+(t<<2)|0)>>2]=o,0<(0|t)&&(ar[c>>2]=o+(0|ar[a+(t+-1<<2)>>2])),(0|(t=t+1|0))>=(0|ar[b>>2]))break A;o=0|ar[l>>2]}}}}while(0);do{if(0|tr[r+93784+(4400*w|0)+4133>>0]){if(t=0|it(e),-99999==(0|(ar[(o=A+788|0)>>2]=t))|1e3<(0|t))return er(r+4|0,1007,0),0|(v=8);if(!(0<(0|t)))break;for(t=0;At(e,8),(0|(t=t+1|0))<(0|ar[o>>2]););}}while(0);switch(ar[A+792>>2]=(0|ar[A+740>>2])+(0|ar[r+93784+(4400*w|0)+8>>2]),0|ar[A+20>>2]){case 2:t=0,h=187;break;case 1:t=1+(0|tr[A+371>>0])|0,h=187;break;case 0:t=2-(0|tr[A+371>>0])|0,h=187}return 187==(0|h)&&(ar[A+796>>2]=t),ar[A+804>>2]=5-(0|ar[A+736>>2]),tr[i>>0]=1,(v=0)|v}return er(r+4|0,1020,0),0|(v=8)}(s,e,A,b),ar[n>>2]=l,!(0|tr[b>>0]))return 0|(a=0|ar[A+376224>>2])&&(tr[a+10516>>0]=2),Ba(A+548|0,r),0|(a=0|ar[s+1344>>2])&&((0|(c=0|ar[(i=s+1348|0)>>2]))!=(0|a)&&(ar[i>>2]=c+(~((c+-4-a|0)>>>2)<<2)),vu(a)),kt(s+1332|0),0|(a=0|ar[s+776>>2])&&((0|(c=0|ar[(i=s+780|0)>>2]))!=(0|a)&&(ar[i>>2]=c+(~((c+-4-a|0)>>>2)<<2)),vu(a)),vu(s),ur=t,0|(s=l);if(-1<(0|(a=0|ar[A+528>>2]))&&function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0;switch(ur=(D=ur)+448|0,Q=D+432|0,iA=D+424|0,Y=D+416|0,N=D+408|0,R=D+400|0,F=D+392|0,V=D+384|0,rA=D+376|0,I=D+368|0,W=D+360|0,X=D+352|0,E=D+344|0,B=D+328|0,y=D+312|0,p=D+296|0,Z=D+280|0,G=D+264|0,C=D+248|0,eA=D+240|0,m=D+232|0,v=D+224|0,w=D+216|0,h=D+208|0,k=D+200|0,d=D+192|0,$=D+184|0,q=D+176|0,K=D+168|0,L=D+160|0,P=D+152|0,x=D+144|0,b=D+136|0,u=D+128|0,l=D+120|0,c=D+112|0,a=D+104|0,o=D+96|0,H=D+88|0,t=D+80|0,j=D+72|0,n=D+64|0,f=D+56|0,i=D+48|0,U=D+40|0,z=D+32|0,O=D+24|0,S=D+16|0,T=D+8|0,J=D,0|(r|=0)){case 1:r=10172;break;case 2:r=10676;break;default:return ur=D}_=0|ar[r>>2],g=0|ar[(M=A+8|0)>>2],0|tr[e+93784+(4400*g|0)>>0]||sr(39698,39242,1278,39712);s=0|tr[e+93784+(4400*g|0)+2>>0],0|tr[e+11096+(5168*s|0)>>0]||sr(39738,39242,1281,39712);Pn(_,39752,J),r=A+4|0,ar[T>>2]=tr[r>>0],Pn(_,39795,T),(-8&tr[(J=e+377212|0)>>0])<<24>>24==16&&(ar[S>>2]=tr[A+5>>0],Pn(_,39838,S));ar[O>>2]=ar[M>>2],Pn(_,39881,O),0|tr[r>>0]||(ar[z>>2]=tr[A+12>>0],Pn(_,39924,z),ar[U>>2]=ar[A+16>>2],Pn(_,39967,U));z=0|ar[(O=A+20|0)>>2],ar[i>>2]=0==(0|z)?66:1==(0|z)?80:73,Pn(_,40010,i),0|tr[e+93784+(4400*g|0)+31>>0]&&(ar[f>>2]=tr[A+24>>0],Pn(_,40053,f));1==(0|tr[e+11096+(5168*s|0)+480>>0])&&(ar[n>>2]=tr[A+25>>0],Pn(_,40096,n));ar[j>>2]=ar[A+28>>2],Pn(_,40139,j),2<=((0|tr[J>>0])-19&255)&&(j=A+32|0,ar[t>>2]=tr[j>>0],Pn(_,40182,t),r=e+11096+(5168*s|0)+4720|0,J=(0|ar[e+11096+(5168*s|0)+4724>>2])-(0|ar[r>>2])|0,0|tr[j>>0]?100<(0|J)&&(H=A+136|0,ar[o>>2]=ar[H>>2],Pn(_,40225,o),pc((0|ar[r>>2])+(100*(0|ar[H>>2])|0)|0,16,_)):(ar[H>>2]=(0|J)/100|0,Pn(_,43367,H),pc(A+34|0,16,_)),0|tr[e+11096+(5168*s|0)+4732>>0]&&(0<(0|ar[e+11096+(5168*s|0)+4736>>2])&&(ar[a>>2]=ar[A+140>>2],Pn(_,40268,a)),ar[c>>2]=ar[A+144>>2],Pn(_,40315,c)),0|tr[e+11096+(5168*s|0)+4900>>0]&&(ar[l>>2]=tr[A+324>>0],Pn(_,40362,l)));0|tr[e+11096+(5168*s|0)+4703>>0]&&(ar[u>>2]=tr[A+325>>0],Pn(_,40400,u),ar[b>>2]=tr[A+326>>0],Pn(_,40438,b));if((0|ar[O>>2])>>>0<2){if(r=A+327|0,ar[x>>2]=tr[r>>0],Pn(_,40476,x),S=A+328|0,x=0|tr[r>>0]?79659:40515,ar[P>>2]=ar[S>>2],ar[P+4>>2]=x,Pn(_,40526,P),0|ar[O>>2]||(P=0|tr[r>>0]?79659:40515,ar[L>>2]=ar[A+332>>2],ar[L+4>>2]=P,Pn(_,40566,L)),0|tr[e+93784+(4400*g|0)+4125>>0]&&1<(0|ar[A+912>>2])){if(L=A+336|0,ar[K>>2]=tr[L>>0],Pn(_,40606,K),0|tr[L>>0]&&0<(0|ar[S>>2]))for(r=0;K=0|cr[A+338+r>>0],ar[q>>2]=r,ar[q+4>>2]=K,Pn(_,40646,q),(0|(r=r+1|0))<(0|ar[S>>2]););if(q=A+337|0,ar[$>>2]=tr[q>>0],Pn(_,40656,$),0|tr[q>>0]&&0<(0|ar[(AA=A+332|0)>>2]))for(r=0;$=0|cr[A+354+r>>0],ar[d>>2]=r,ar[4+d>>2]=$,Pn(_,40646,d),(0|(r=r+1|0))<(0|ar[AA>>2]););}0|ar[O>>2]||(ar[k>>2]=tr[A+370>>0],Pn(_,40696,k)),ar[h>>2]=tr[A+371>>0],Pn(_,40733,h),0|tr[A+324>>0]&&(ar[w>>2]=tr[A+372>>0],Pn(_,40770,w),ar[v>>2]=ar[A+376>>2],Pn(_,40807,v)),45==(0|(U=0!=(0|tr[e+93784+(4400*g|0)+29>>0])&&1==(0|ar[O>>2])?47:45))&&0|tr[e+93784+(4400*g|0)+30>>0]&&0==(0|ar[O>>2])&&(U=47);A:do{if(47==(0|U)){ar[m>>2]=cr[A+380>>0],Pn(_,40844,m),0|ar[e+11096+(5168*s|0)+476>>2]&&(ar[eA>>2]=cr[A+381>>0],Pn(_,40881,eA)),T=A+332|0,M=0;do{r=0==(0|M);do{if(r)U=53;else{if(1!=(0|M))break;if(0|ar[O>>2])break A;U=53}}while(0);do{if(53==(0|U)){if(!((U=0)<(0|(J=0|ar[(r?S:T)>>2]))))break;for(r=0;eA=0|or[A+446+(M<<5)+(r<<1)>>1],ar[C>>2]=M,ar[4+C>>2]=r,ar[8+C>>2]=eA,Pn(_,40918,C),eA=0|tr[A+510+(M<<4)+r>>0],ar[G>>2]=M,ar[4+G>>2]=r,ar[8+G>>2]=eA,Pn(_,40955,G),eA=0|or[A+542+(M<<6)+(r<<2)>>1],ar[Z>>2]=M,ar[4+Z>>2]=r,ar[8+Z>>2]=0,ar[12+Z>>2]=eA,Pn(_,40992,Z),eA=0|tr[A+670+(M<<5)+(r<<1)>>0],ar[p>>2]=M,ar[4+p>>2]=r,ar[8+p>>2]=0,ar[12+p>>2]=eA,Pn(_,41030,p),eA=0|or[A+542+(M<<6)+(r<<2)+2>>1],ar[y>>2]=M,ar[4+y>>2]=r,ar[8+y>>2]=1,ar[12+y>>2]=eA,Pn(_,40992,y),eA=0|tr[A+670+(M<<5)+(r<<1)+1>>0],ar[B>>2]=M,ar[4+B>>2]=r,ar[8+B>>2]=1,ar[12+B>>2]=eA,Pn(_,41030,B),(0|(r=r+1|0))!=(0|J););}}while(0);M=M+1|0}while(2!=(0|M))}}while(0);ar[E>>2]=ar[A+736>>2],Pn(_,41068,E)}ar[X>>2]=ar[A+740>>2],Pn(_,41105,X),0|tr[e+93784+(4400*g|0)+28>>0]&&(ar[W>>2]=ar[A+744>>2],Pn(_,41134,W),ar[I>>2]=ar[A+748>>2],Pn(_,41163,I));J=A+753|0,0|tr[e+93784+(4400*g|0)+48>>0]&&(ar[rA>>2]=tr[J>>0],Pn(_,41192,rA));r=A+754|0,rA=0|tr[J>>0]?41230:41241,ar[V>>2]=tr[r>>0],ar[4+V>>2]=rA,Pn(_,41252,V),0|tr[J>>0]&&0==(0|tr[r>>0])&&(ar[F>>2]=ar[A+756>>2],Pn(_,41299,F),ar[R>>2]=ar[A+760>>2],Pn(_,41324,R));do{if(0|tr[e+93784+(4400*g|0)+46>>0]){if(0==(0|tr[A+325>>0])&&0==(0|tr[A+326>>0])&&0|tr[r>>0])break;ar[N>>2]=tr[A+764>>0],Pn(_,41349,N)}}while(0);if(0==(0|tr[e+93784+(4400*g|0)+34>>0])&&0==(0|tr[e+93784+(4400*g|0)+33>>0]))return ur=D;if(M=A+768|0,ar[Y>>2]=ar[M>>2],Pn(_,41400,Y),(0|ar[M>>2])<=0)return ur=D;if(ar[iA>>2]=ar[A+772>>2],Pn(_,41433,iA),(0|ar[M>>2])<=0)return ur=D;J=A+776|0,r=0;for(;iA=0|ar[(0|ar[J>>2])+(r<<2)>>2],ar[Q>>2]=r,ar[4+Q>>2]=iA,Pn(_,41466,Q),r=r+1|0,(0|r)<(0|ar[M>>2]););ur=D}(s,A,a),u=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l=0,u=0,b=0,s=0,d=0;ur=(c=ur)+16|0,l=c,ar[(i|=0)>>2]=0,tr[A+377228>>0]=0,u=0|ar[r+8>>2],0|tr[(b=e+93784+(4400*u|0)|0)>>0]||(ar[l>>2]=u,function(A,e,r){A|=0,e|=0,r|=0;var i,f,n;if(ur=(n=ur)+16|0,i=n,!(-9999<=(0|ar[14391])&!0))return ur=n;f=42==(0|tr[e>>0]),A=0|ar[2543],f||Ui(44499,5,1,A);ar[i>>2]=r,Qc(A,e+(1&f)|0,i),Oi(A),ur=n}(1,34889,l),sr(55739,34700,1987,34915));if(ar[(s=e+375392|0)>>2]=b,d=0|tr[e+93784+(4400*u|0)+2>>0],ar[(l=e+375388|0)>>2]=e+11096+(5168*d|0),ar[(a=e+375384|0)>>2]=e+600+(656*(0|tr[e+11096+(5168*d|0)+1>>0])|0),function(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0;r=0|ar[375388+(A|=0)>>2],e=(i=0==(0|r))?(e=0|ar[A+375384>>2])?(0|ar[e+8>>2])-1|0:6:(0|tr[r+2>>0])-1|0;do{if((0|tr[A+376116>>0])!=(0|e)){if(i?(e=0|ar[A+375384>>2])?(e=0|ar[e+8>>2],f=10):e=6:(e=0|tr[r+2>>0],f=10),10==(0|f)){if(!(0<(0|e)))break;e=e+-1|0}for(t=e+1|0,o=A+375896|0;;){if((0|(i=(0|(n=100*e|0))/(0|t)|0))<=(0|(n=(n+100|0)/(0|t)|0)))for(f=n-i|0,r=i;c=0|ar[o>>2],e=(a=(0|c)<(0|e))?c:e,tr[A+375916+(r<<1)>>0]=e,tr[A+375916+(r<<1)+1>>0]=a?100:255&((100*(r-i|0)|0)/(0|f)|0),(0|r)<(0|n);)r=r+1|0;if(ar[A+376120+(e<<2)>>2]=n,!(0<(0|e)))break;e=e+-1|0}}}while(0);a=0|ar[A+375900>>2],c=0|tr[A+375916+(a<<1)>>0],ar[A+375904>>2]=c,ar[A+375908>>2]=tr[A+375916+(a<<1)+1>>0],ar[A+375912>>2]=c}(A),0|tr[(d=r+4|0)>>0]){if(ar[e+376204>>2]=ar[r+28>>2],l=0|ar[l>>2],u=0|tr[l+4703>>0]?0!=(0|tr[e+533>>0]):1,-1==(0|(u=0|ia(e+376148|0,l,A,f,n,o,u))))return ar[i>>2]=9,ur=c,(r=0)|r;l=0|ar[e+376156>>2],u=(0|ar[e+376160>>2])-l>>2>>>0>u>>>0?0|ar[l+(u<<2)>>2]:0,tr[(b=u+10518|0)>>0]=0|tr[t>>0],tr[b+1>>0]=0|tr[t+1>>0],tr[b+2>>0]=0|tr[t+2>>0],ar[(b=e+376224|0)>>2]=u,l=0|ar[a>>2],hb(0|(t=u+108|0),0|l,592),(0|t)==(0|l)?(i=l+604|0,ar[(t=u+712|0)>>2]=ar[i>>2],ar[t+4>>2]=ar[i+4>>2],ar[t+8>>2]=ar[i+8>>2],ar[t+12>>2]=ar[i+12>>2],ar[t+16>>2]=ar[i+16>>2],ar[t+20>>2]=ar[i+20>>2]):(je(u+700|0,0|ar[l+592>>2],0|ar[l+596>>2]),i=l+604|0,ar[(t=u+712|0)>>2]=ar[i>>2],ar[t+4>>2]=ar[i+4>>2],ar[t+8>>2]=ar[i+8>>2],ar[t+12>>2]=ar[i+12>>2],ar[t+16>>2]=ar[i+16>>2],ar[t+20>>2]=ar[i+20>>2],He(u+736|0,0|ar[l+628>>2],0|ar[l+632>>2]),xe(u+748|0,0|ar[l+640>>2],0|ar[l+644>>2])),tr[u+760>>0]=0|tr[l+652>>0],l=0|ar[s>>2],hb(0|(s=u+5932|0),0|l,4340),(0|s)!=(0|l)&&($e(u+10272|0,0|ar[l+4340>>2],0|ar[l+4344>>2]),$e(u+10284|0,0|ar[l+4352>>2],0|ar[l+4356>>2]),$e(u+10296|0,0|ar[l+4364>>2],0|ar[l+4368>>2]),$e(u+10308|0,0|ar[l+4376>>2],0|ar[l+4380>>2]),$e(u+10320|0,0|ar[l+4388>>2],0|ar[l+4392>>2])),ar[u+10332>>2]=e,function(A){var e,r=0;0|(r=0|ar[10360+(A|=0)>>2])&&vb(0|r,0,3*(0|ar[A+10364>>2])|0);0|(r=0|ar[A+10340>>2])&&vb(0|r,0,24*(0|ar[A+10344>>2])|0);0|(r=0|ar[A+10460>>2])&&vb(0|r,0,0|ar[A+10464>>2]);if((0|(e=0|ar[A+10344>>2]))<=0)return;A=0|ar[A+10524>>2],r=0;for(;ar[A+(80*r|0)>>2]=0,r=r+1|0,(0|r)<(0|e););}(u),l=e+377212|0;do{if(0|ma(0|tr[l>>0])){if(!(0|ha(0|tr[l>>0])||0|wa(0|tr[l>>0])||0!=(0|tr[e+376208>>0]))&&0==(0|tr[e+376211>>0])){tr[e+376209>>0]=0,tr[e+376210>>0]=0;break}tr[e+376209>>0]=1,tr[e+376211>>0]=0}}while(0);0|va(0|tr[l>>0])&&0!=(0|tr[e+376209>>0])?tr[100+(0|ar[b>>2])>>0]=0:tr[100+(0|ar[b>>2])>>0]=0!=(0|tr[r+24>>0])&1,function(A,e,r){A|=0,r|=0;var i,f=0,n=0,t=0;0|ma(0|tr[(i=377212+(e|=0)|0)>>0])&&0!=(0|tr[e+376209>>0])?(ar[(n=e+376212|0)>>2]=0,tr[A+377228>>0]=1,A=r+28|0,A=(r=0)|ar[(f=A)>>2]):(n=0|ar[5032+(0|ar[e+375388>>2])>>2],A=0|ar[(t=r+28|0)>>2],f=0|ar[e+376216>>2],r=0|ar[e+376220>>2],(0|A)<(0|f)&&((0|n)/2|0)<=(f-A|0)?r=r+n|0:(0|f)<(0|A)&&(r=r-(((0|n)/2|0)<(A-f|0)?n:0)|0),ar[(n=e+376212|0)>>2]=r,f=t);if(t=0|ar[e+376224>>2],ar[t+92>>2]=A+r,ar[t+88>>2]=A,0|tr[t+10520>>0])return;if(0|function(A){return(255&(A|=0))<15?0==(1&A)|0:0}(0|tr[i>>0]))return;if(0|va(0|tr[i>>0]))return;if(0|function(A){return(1|(A|=0))<<24>>24==7|0}(0|tr[i>>0]))return;ar[e+376216>>2]=ar[f>>2],ar[e+376220>>2]=ar[n>>2]}(A,e,r),l=u+96|0,0|tr[d>>0]&&(ar[l>>2]=1,function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;if(ur=(c=ur)+32|0,t=c+4|0,ar[(o=(f=c)+16|0)>>2]=0,ar[(a=4+o|0)>>2]=0,ar[8+o>>2]=0,i=0|ar[ar[(n=e+376224|0)>>2]>>2],0|ma(0|tr[(h=e+377212|0)>>0])&&0|tr[e+376209>>0]&&(u=0|ar[n>>2],w=0|ar[u+92>>2],v=A+376156|0,b=0|ar[(m=A+376160|0)>>2],l=0|ar[v>>2],0<(b-l|0)))for(g=e+376156|0,Z=e+376160|0,p=8+o|0,k=0,d=b;b=0|ar[g>>2],b=(0|ar[Z>>2])-b>>2>>>0>k>>>0?0|ar[b+(k<<2)>>2]:0,0!=(0|ar[b+96>>2])&&(0|ar[b+92>>2])<(0|w)&&(0|ar[(y=b+104|0)>>2])>>>0>(0|ar[u>>2])>>>0?(b=0|ar[b>>2],ar[t>>2]=b,(s=0|ar[a>>2])>>>0<(0|ar[p>>2])>>>0?(ar[s>>2]=b,ar[a>>2]=s+4,b=d):(Mo(o,t),b=0|ar[m>>2],l=0|ar[v>>2],u=0|ar[n>>2]),ar[y>>2]=ar[u>>2]):b=d,!((b-l>>2|0)<=(0|(k=k+1|0)));)d=b;if(0|ha(0|tr[h>>0]))ar[e+376552>>2]=0,ar[e+376556>>2]=0,ar[e+376560>>2]=0,u=l=0;else{if((l=0|tr[r+908>>0])<<24>>24)for(k=255&l,d=s=b=0;y=0==(0|tr[r+876+b>>0]),l=(1&y)+d|0,u=(1&(1^y))+s|0,ar[(y?e+376700+(d<<2)|0:e+376572+(s<<2)|0)>>2]=(0|or[r+812+(b<<1)>>1])+(0|ar[92+(0|ar[n>>2])>>2]),!((0|k)<=(0|(b=b+1|0)));)s=u,d=l;else l=u=0;if(ar[e+376552>>2]=u,(u=0|tr[r+909>>0])<<24>>24)for(k=255&u,s=b=0;;){if(y=0==(0|tr[r+892+b>>0]),d=(1&y)+l|0,u=(1&(1^y))+s|0,ar[(y?e+376700+(l<<2)|0:e+376636+(s<<2)|0)>>2]=(0|or[r+844+(b<<1)>>1])+(0|ar[92+(0|ar[n>>2])>>2]),(0|k)<=(0|(b=b+1|0))){l=d;break}s=u,l=d}else u=0;if(ar[e+376556>>2]=u,ar[e+376560>>2]=l,k=r+140|0,0<((0|ar[(h=r+144|0)>>2])+(0|ar[k>>2])|0))for(w=r+28|0,v=e+375388|0,u=l=d=0;b=0|ar[e+376232+(d<<2)>>2],0|tr[(s=r+244+d|0)>>0]&&(b=(0|ar[92+(0|ar[n>>2])>>2])+b-(0|ar[w>>2])-(0|br(0|ar[5032+(0|ar[v>>2])>>2],0|ar[e+376360+(d<<2)>>2]))|0),0|ar[e+376296+(d<<2)>>2]?(ar[e+376764+(l<<2)>>2]=b,ar[e+376424+(l<<2)>>2]=tr[s>>0],l=l+1|0):(ar[e+376828+(u<<2)>>2]=b,ar[e+376488+(u<<2)>>2]=tr[s>>0],u=u+1|0),(0|(d=d+1|0))<((0|ar[h>>2])+(0|ar[k>>2])|0););else u=l=0}ar[(v=e+376564|0)>>2]=l,ar[(w=e+376568|0)>>2]=u,m=A+376156|0,l=(0|ar[(g=A+376160|0)>>2])-(0|ar[m>>2])|0,u=l>>2,ar[t>>2]=0,ar[(b=4+t|0)>>2]=0,ar[(s=8+t|0)>>2]=0,0|u&&((0|l)<0&&zl(),p=0|hu((y=1+((u+-1|0)>>>5)|0)<<2),ar[t>>2]=p,ar[s>>2]=y,ar[b>>2]=u,vb(0|p,0,(y=u>>>5)<<2|0),l=u-(y<<5)|0,u=p+(y<<2)|0,0|l&&(ar[u>>2]=ar[u>>2]&~(-1>>>(32-l|0))));if(0<(0|(l=0|ar[v>>2])))for(d=e+376148|0,k=e+376156|0,h=e+375388|0,s=0;l=0|ar[(b=e+376764+(s<<2)|0)>>2],l=0|ar[e+376424+(s<<2)>>2]?0|Ko(d,l,i,1):0|qo(d,l,i,1),(0|(ar[(u=e+377084+(s<<2)|0)>>2]=l))<=-1&&(l=0|To(A,e,0|ar[h>>2],0|ar[b>>2],1),ar[u>>2]=l),y=(0|ar[t>>2])+(l>>>5<<2)|0,ar[y>>2]=ar[y>>2]|1<<(31&l),0|tr[10516+(0|ar[(0|ar[k>>2])+(l<<2)>>2])>>0]&&(tr[10516+(0|ar[n>>2])>>0]=4),s=s+1|0,l=0|ar[v>>2],(0|s)<(0|l););if(0<(0|(u=0|ar[w>>2]))){for(k=e+376148|0,h=e+375388|0,d=0;l=0|ar[(b=e+376828+(d<<2)|0)>>2],l=0|ar[e+376488+(d<<2)>>2]?0|Ko(k,l,i,1):0|qo(k,l,i,1),(0|(ar[(u=e+377148+(d<<2)|0)>>2]=l))<=-1&&(l=0|To(A,e,0|ar[h>>2],0|ar[b>>2],1),ar[u>>2]=l),s=(0|ar[t>>2])+(l>>>5<<2)|0,ar[s>>2]=ar[s>>2]|1<<(31&l),d=d+1|0,s=0|ar[w>>2],(0|d)<(0|s););l=0|ar[v>>2]}else s=u;if(0<(0|l))for(b=0|ar[e+376156>>2],u=0;ar[96+(0|ar[b+(ar[e+377084+(u<<2)>>2]<<2)>>2])>>2]=2,(0|(u=u+1|0))<(0|l););if(0<(0|s))for(u=0|ar[e+376156>>2],l=0;ar[96+(0|ar[u+(ar[e+377148+(l<<2)>>2]<<2)>>2])>>2]=2,(0|(l=l+1|0))<(0|s););if(0<(0|ar[(d=e+376552|0)>>2]))for(k=e+376148|0,h=e+376156|0,w=e+375388|0,s=0;l=0|Ko(k,0|ar[(u=e+376572+(s<<2)|0)>>2],i,0),(0|(ar[(b=e+376892+(s<<2)|0)>>2]=l))<=-1&&(l=0|To(A,e,0|ar[w>>2],0|ar[u>>2],0),ar[b>>2]=l),y=(0|ar[t>>2])+(l>>>5<<2)|0,ar[y>>2]=ar[y>>2]|1<<(31&l),0|tr[10516+(0|ar[(0|ar[h>>2])+(l<<2)>>2])>>0]&&(tr[10516+(0|ar[n>>2])>>0]=4),(0|(s=s+1|0))<(0|ar[d>>2]););if(0<(0|ar[(d=e+376556|0)>>2]))for(k=e+376148|0,h=e+376156|0,w=e+375388|0,s=0;l=0|Ko(k,0|ar[(u=e+376636+(s<<2)|0)>>2],i,0),(0|(ar[(b=e+376956+(s<<2)|0)>>2]=l))<=-1&&(l=0|To(A,e,0|ar[w>>2],0|ar[u>>2],0),ar[b>>2]=l),y=(0|ar[t>>2])+(l>>>5<<2)|0,ar[y>>2]=ar[y>>2]|1<<(31&l),0|tr[10516+(0|ar[(0|ar[h>>2])+(l<<2)>>2])>>0]&&(tr[10516+(0|ar[n>>2])>>0]=4),(0|(s=s+1|0))<(0|ar[d>>2]););if(0<(0|ar[(u=e+376560|0)>>2]))for(b=e+376148|0,l=0;s=0|Ko(b,0|ar[e+376700+(l<<2)>>2],i,0),-1<(0|(ar[e+377020+(l<<2)>>2]=s))&&(A=(0|ar[t>>2])+(s>>>5<<2)|0,ar[A>>2]=ar[A>>2]|1<<(31&s)),(0|(l=l+1|0))<(0|ar[u>>2]););if(u=0|ar[g>>2],l=0|ar[m>>2],0<(u-l|0))for(v=e+376156|0,h=e+376160|0,w=8+o|0,k=0,d=u;!(((u=ar[(0|ar[t>>2])+(k>>>5<<2)>>2]&1<<(31&k)?d:(u=0|ar[v>>2],b=(0|ar[h>>2])-u>>2>>>0>k>>>0?0|ar[u+(k<<2)>>2]:0,u=0|ar[n>>2],(0|b)!=(0|u)&&(0|ar[(B=b+104|0)>>2])>>>0>(0|ar[u>>2])>>>0&&0!=(0|ar[b+96>>2])?(b=0|ar[b>>2],ar[f>>2]=b,(s=0|ar[a>>2])>>>0<(0|ar[w>>2])>>>0?(ar[s>>2]=b,ar[a>>2]=s+4,b=d):(Mo(o,f),b=0|ar[g>>2],l=0|ar[m>>2],u=0|ar[n>>2]),ar[B>>2]=ar[u>>2],b):d))-l>>2|0)<=(0|(k=k+1|0)));)d=u;(0|(l=r+1344|0))!=(0|o)&&$e(l,0|ar[o>>2],0|ar[a>>2]);0|(l=0|ar[t>>2])&&vu(l);if(!(l=0|ar[o>>2]))return ur=c;(0|(u=0|ar[a>>2]))!=(0|l)&&(ar[a>>2]=u+(~((u+-4-l|0)>>>2)<<2));vu(l),ur=c}(A,e,r)),ar[l>>2]=1,function(A){A|=0,ar[14391]=A}(0|ar[92+(0|ar[b>>2])>>2]),tr[A+376208>>0]=0}else if(!(0|ar[e+376224>>2]))return ur=c,(r=0)|r;if((0|ar[r+20>>2])>>>0<2&&!(0|function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;ur=(b=ur)+480|0,v=b+192|0,u=(l=b)+384|0,m=0|ar[912+(r|=0)>>2],h=0|ar[(i=r+328|0)>>2],k=(0|m)<(0|h)?h:m,s=96+(A=u)|0;for(;tr[A>>0]=0,A=A+1|0,(0|A)<(0|s););f=e+376552|0,n=e+376556|0,t=e+376564|0,o=e+376892|0,a=e+376956|0,c=e+377084|0,A=0;for(;!((0|k)<=(0|A));){if(0<(0|(d=0|ar[f>>2])))for(hb(v+(A<<2)|0,0|o,0|br((s=A-k|0)>>>0<(w=0-d|0)>>>0?w:s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(d=0|ar[n>>2],(0|A)<(0|k)&0<(0|d))for(hb(v+(A<<2)|0,0|a,0|br((s=A-k|0)>>>0<(w=0-(1<(0|d)?d:1)|0)>>>0?w:s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(d=0|ar[t>>2],(0|A)<(0|k)&0<(0|d))for(vb(u+A|0,1,0-(s=(s=A-k|0)>>>0<(w=0-(1<(0|d)?d:1)|0)>>>0?w:s)|0),hb(v+(A<<2)|0,0|c,0|br(s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(!A){Z=13;break}}if(13==(0|Z))return 20==(0|(A=0|ar[(s=e+84|0)>>2]))?(s=1001,A=19):(ar[s>>2]=A+1,s=1016),ar[e+4+(A<<2)>>2]=s,ur=b,(e=0)|e;17<=(0|h)&&sr(34944,34700,1781,34977);A:do{if(0<(0|h)){for(k=r+336|0,h=e+376156|0,w=e+376160|0,d=0;;){if(A=0|tr[k>>0]?0|cr[r+338+d>>0]:d,ar[(s=r+916+(d<<2)|0)>>2]=ar[v+(A<<2)>>2],tr[r+1300+d>>0]=0|tr[u+A>>0],A=0|ar[s>>2],s=0|ar[h>>2],(0|ar[w>>2])-s>>2>>>0<=A>>>0){A=0,Z=54;break}if(!(A=0|ar[s+(A<<2)>>2])){A=0,Z=54;break}if(ar[r+1044+(d<<2)>>2]=ar[A+92>>2],ar[r+1172+(d<<2)>>2]=ar[A+96>>2],d=d+1|0,(0|(A=0|ar[i>>2]))<=(0|d)){g=A;break A}}if(54==(0|Z))return ur=b,0|A}else g=h}while(0);if(0|ar[r+20>>2])return ur=b,0|(e=1);h=0|ar[(v=r+332|0)>>2],k=(0|m)<(0|h)?h:m,A=0;for(;!((0|k)<=(0|A));){if(0<(0|(d=0|ar[n>>2])))for(hb(l+(A<<2)|0,0|a,0|br((s=A-k|0)>>>0<(m=0-d|0)>>>0?m:s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(d=0|ar[f>>2],(0|A)<(0|k)&0<(0|d))for(hb(l+(A<<2)|0,0|o,0|br((s=A-k|0)>>>0<(m=0-(1<(0|d)?d:1)|0)>>>0?m:s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(d=0|ar[t>>2],(0|A)<(0|k)&0<(0|d))for(vb(48+u+A|0,1,0-(s=(s=A-k|0)>>>0<(m=0-(1<(0|d)?d:1)|0)>>>0?m:s)|0),hb(l+(A<<2)|0,0|c,0|br(s,-4)),s=0;(0|(A=A+1|0))<(0|k)&(0|(s=s+1|0))<(0|d););if(!A){Z=38;break}}if(38==(0|Z))return 20==(0|(A=0|ar[(s=e+84|0)>>2]))?(s=1001,A=19):(ar[s>>2]=A+1,s=1016),ar[e+4+(A<<2)>>2]=s,ur=b,(e=0)|e;if(16<(0|g))return 20==(0|(A=0|ar[(s=e+84|0)>>2]))?(s=1001,A=19):(ar[s>>2]=A+1,s=1012),ar[e+4+(A<<2)>>2]=s,ur=b,(e=0)|e;17<=(0|h)&&sr(35011,34700,1834,34977);if((0|h)<=0)return ur=b,0|(e=1);h=r+337|0,w=e+376156|0,k=e+376160|0,d=0;for(;;){if(A=0|tr[h>>0]?0|cr[r+354+d>>0]:d,ar[(s=r+980+(d<<2)|0)>>2]=ar[l+(A<<2)>>2],tr[r+1316+d>>0]=0|tr[48+u+A>>0],A=0|ar[s>>2],s=0|ar[w>>2],(0|ar[k>>2])-s>>2>>>0<=A>>>0){A=0,Z=54;break}if(!(A=0|ar[s+(A<<2)>>2])){A=0,Z=54;break}if(ar[r+1108+(d<<2)>>2]=ar[A+92>>2],ar[r+1236+(d<<2)>>2]=ar[A+96>>2],(0|(d=d+1|0))>=(0|ar[v>>2])){A=1,Z=54;break}}return 54!=(0|Z)?0:(ur=b,0|A)}(0,e,r)))return ur=c,(r=0)|r;u=0|tr[r+12>>0]?800+(0|ar[(l=u=e+376228|0)>>2])|0:(l=e+376228|0,r+16|0);return ar[r+800>>2]=ar[u>>2],ar[l>>2]=r,ur=c,0|(r=1)}(A,A,s,n,0|ar[(u=r+8|0)>>2],0|ar[u+4>>2],i,0|ar[r+16>>2]),a=0|ar[(b=A+376224|0)>>2],!u)return 0|a&&(tr[a+10516>>0]=2),Ba(A+548|0,r),0|(a=0|ar[s+1344>>2])&&((0|(c=0|ar[(i=s+1348|0)>>2]))!=(0|a)&&(ar[i>>2]=c+(~((c+-4-a|0)>>>2)<<2)),vu(a)),kt(s+1332|0),0|(a=0|ar[s+776>>2])&&((0|(c=0|ar[(i=s+780|0)>>2]))!=(0|a)&&(ar[i>>2]=c+(~((c+-4-a|0)>>>2)<<2)),vu(a)),vu(s),s=0|ar[n>>2],ur=t,0|s;if(ar[f>>2]=s,i=a+48|0,l=0|ar[(c=a+52|0)>>2],ar[s>>2]=l-(0|ar[i>>2])>>2,(0|l)==(0|ar[a+56>>2])?function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=4+(A|=0)|0,n=0|ar[A>>2],t=(0|ar[f>>2])-n|0,1073741823<(o=1+(i=t>>2)|0)>>>0&&zl();c=(0|ar[(l=A+8|0)>>2])-n|0,a=c>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t);if(ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),!n)return;vu(n)}(i,f):(ar[l>>2]=s,ar[c>>2]=4+(0|ar[c>>2])),et(e,1),rt(e),l=(0|ar[e>>2])-(0|ar[r+20>>2])|0,0<(0|ar[(u=s+768|0)>>2]))for(c=(a=0)|ar[(i=s+776|0)>>2];k=0|Za(r,0|ar[c+(a<<2)>>2],l),c=0|ar[i>>2],ar[(d=c+(a<<2)|0)>>2]=(0|ar[d>>2])-k,(0|(a=a+1|0))<(0|ar[u>>2]););if(0|tr[s+4>>0]){for(na((c=0|hu(10688))+8|0),i=(a=c+10632|0)+56|0;(0|(a=a+4|(ar[a>>2]=0)))<(0|i););ar[f>>2]=c,ar[c>>2]=ar[b>>2],(0|(i=0|ar[(a=A+377220|0)>>2]))==(0|ar[A+377224>>2])?function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=4+(A|=0)|0,n=0|ar[A>>2],t=(0|ar[f>>2])-n|0,1073741823<(o=1+(i=t>>2)|0)>>>0&&zl();c=(0|ar[(l=A+8|0)>>2])-n|0,a=c>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t);if(ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),!n)return;vu(n)}(A+377216|0,f):(ar[i>>2]=c,ar[a>>2]=4+(0|ar[a>>2]))}else a=A+377220|0;return(0|ar[A+377216>>2])!=(0|ar[a>>2])&&(l=0|hu(152),ar[l>>2]=0,ar[(i=l+4|0)>>2]=0,ar[l+32>>2]=0,Dn(l+44|(tr[l+36>>0]=0)),ar[l+124>>2]=0,ar[l+128>>2]=-1,ar[l+132>>2]=-1,ar[l+136>>2]=0,ar[l+144>>2]=A,ar[l+40>>2]=0,ar[l+140>>2]=0,ar[f>>2]=l,ar[l>>2]=r,ar[i>>2]=s,ar[(i=l+8|0)>>2]=ar[e>>2],ar[i+4>>2]=ar[e+4>>2],ar[i+8>>2]=ar[e+8>>2],ar[i+12>>2]=ar[e+12>>2],ar[i+16>>2]=ar[e+16>>2],ar[i+20>>2]=ar[e+20>>2],tr[l+36>>0]=0|tr[A+377228>>0],a=0|ar[(0|ar[a>>2])-4>>2],(0|(c=0|ar[(i=a+10636|0)>>2]))==(0|ar[a+10640>>2])?function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=4+(A|=0)|0,n=0|ar[A>>2],t=(0|ar[f>>2])-n|0,1073741823<(o=1+(i=t>>2)|0)>>>0&&zl();c=(0|ar[(l=A+8|0)>>2])-n|0,a=c>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t);if(ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),!n)return;vu(n)}(a+10632|0,f):(ar[c>>2]=l,ar[i>>2]=4+(0|ar[i>>2]))),k=0|Yo(A,f),ar[n>>2]=k,ur=t,(k=0)|k}function ir(A,e,r,i,f,n,t){A|=0,e|=0,f|=0,n|=0,t|=0;var o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;for(c=ur=(o=ur)+31&-32,ur=ur+112|0,100<(l=((i|=0)-(r|=0)|0)/12|0)>>>0?(c=0|yc(l))?g=a=c:gu():(a=c,g=0),c=0,b=r,s=a;(0|b)!=(0|i);)(u=0|tr[b+8+3>>0])<<24>>24<0?u=0|ar[b+4>>2]:u&=255,u?tr[s>>0]=1:(tr[s>>0]=2,c=c+1|0,l=l+-1|0),b=b+12|0,s=s+1|0;m=0,w=c;A:for(;;){c=0|ar[A>>2];do{if(c){if(0|Uf(c=(0|(u=0|ar[c+12>>2]))==(0|ar[c+16>>2])?0|jb[127&ar[36+(0|ar[c>>2])>>2]](c):0|gf(0|ar[u>>2]),-1)){ar[A>>2]=0,s=1;break}s=0==(0|ar[A>>2]);break}s=1}while(0);if(c=(u=0|ar[e>>2])?0|Uf(c=(0|(c=0|ar[u+12>>2]))==(0|ar[u+16>>2])?0|jb[127&ar[36+(0|ar[u>>2])>>2]](u):0|gf(0|ar[c>>2]),-1)?(u=ar[e>>2]=0,1):0:(u=0,1),b=0|ar[A>>2],!(0!=(0|l)&(s^c)))break;for(c=(0|(c=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|gf(0|ar[c>>2]),t||(c=0|Hb[31&ar[28+(0|ar[f>>2])>>2]](f,c)),v=m+1|0,k=r,d=0,h=a;(0|k)!=(0|i);){do{if(1==(0|tr[h>>0])){if(u=(0|tr[(b=k+8+3|0)>>0])<0?0|ar[k>>2]:k,u=0|ar[u+(m<<2)>>2],t||(u=0|Hb[31&ar[28+(0|ar[f>>2])>>2]](f,u)),s=l+-1|0,(0|c)!=(0|u)){tr[h>>0]=0,u=d,b=w,l=s;break}(u=0|tr[b>>0])<<24>>24<0?u=0|ar[k+4>>2]:u&=255,(0|u)==(0|v)?(tr[h>>0]=2,b=w+(u=1)|0,l=s):(u=1,b=w)}else u=d,b=w}while(0);k=k+12|0,d=u,h=h+1|0,w=b}if(d)if(c=0|ar[A>>2],(0|(b=0|ar[(u=c+12|0)>>2]))==(0|ar[c+16>>2])?jb[127&ar[40+(0|ar[c>>2])>>2]](c):(ar[u>>2]=b+4,gf(0|ar[b>>2])),1<(w+l|0)>>>0)for(b=r,s=a,c=w;;){if((0|b)==(0|i)){m=v,w=c;continue A}2==(0|tr[s>>0])&&((u=0|tr[b+8+3>>0])<<24>>24<0?u=0|ar[b+4>>2]:u&=255,(0|u)!=(0|v)&&(c=c+-1|(tr[s>>0]=0))),b=b+12|0,s=s+1|0}else m=v;else m=v}do{if(b){if(0|Uf(c=(0|(c=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|gf(0|ar[c>>2]),-1)){ar[A>>2]=0,l=1;break}l=0==(0|ar[A>>2]);break}l=1}while(0);do{if(u){if(0|Uf(c=(0|(c=0|ar[u+12>>2]))==(0|ar[u+16>>2])?0|jb[127&ar[36+(0|ar[u>>2])>>2]](u):0|gf(0|ar[c>>2]),-1)){ar[e>>2]=0,Z=41;break}if(l)break;Z=77;break}Z=41}while(0);for(41==(0|Z)&&l&&(Z=77),77==(0|Z)&&(ar[n>>2]=2|ar[n>>2]);;){if((0|r)==(0|i)){Z=81;break}if(2==(0|tr[a>>0]))break;r=r+12|0,a=a+1|0}return 81==(0|Z)&&(ar[n>>2]=4|ar[n>>2],r=i),Bc(g),ur=o,0|r}function fr(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t;return t=ur=(n=ur)+31&-32,ur=ur+16|0,ar[t>>2]=f,f=0|rf(r),r=0|Yc(A,e,i,t),0|f&&rf(f),ur=n,0|r}function nr(A,e,r){A|=0,e|=0,r|=0;var i=0;A:do{switch((176&ar[r+4>>2])<<24>>24){case 16:switch(i=A+1|0,(r=0|tr[A>>0])<<24>>24){case 43:case 45:A=i;break A}if(1<(e-A|0)&r<<24>>24==48){switch(0|tr[i>>0]){case 88:case 120:break;default:0;break A}A=A+2|0}else 0;break;case 32:A=e;break;default:0}}while(0);return 0|A}function dr(A,e,r){A|=0,e|=0;var i,f,n,t=0;for(2048&(r|=0)&&(tr[A>>0]=43,A=A+1|0),1024&r&&(tr[A>>0]=35,A=A+1|0),i=0!=(16384&r|0),(f=260==(0|(n=260&r)))?t=0:(tr[A>>0]=46,tr[A+1>>0]=42,t=1,A=A+2|0);(r=0|tr[e>>0])<<24>>24;)tr[A>>0]=r,e=e+1|0,A=A+1|0;A:do{switch(511&n){case 4:r=i?70:102;break;case 256:r=i?69:101;break;default:if(f){r=i?65:97;break A}r=i?71:103;break A}}while(0);return tr[A>>0]=r,0|t}function kr(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n;return n=ur=(f=ur)+31&-32,ur=ur+16|0,ar[n>>2]=i,i=0|rf(e),e=0|function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,n=0,t=0;f=ur=(i=ur)+31&-32,ur=ur+16|0,ar[f>>2]=ar[r>>2],A=0<=(0|(f=0|Yc(0,0,e,f)))&&(t=0|yc(n=f+1|0),0!=(0|(ar[A>>2]=t)))?0|Yc(t,n,e,r):-1;return ur=i,0|A}(A,r,n),0|i&&rf(i),ur=f,0|e}function hr(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;switch(l=ur=(b=ur)+31&-32,ur=ur+16|0,u=0|un(t|=0,59232),c=0|un(t,59248),fs[63&ar[20+(0|ar[c>>2])>>2]](l,c),ar[n>>2]=i,(t=0|tr[A>>0])<<24>>24){case 43:case 45:v=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,t),s=0|ar[n>>2],ar[n>>2]=s+1,tr[s>>0]=v,s=A+1|0;break;default:s=A}v=r;A:do{if(1<(v-s|0)&&48==(0|tr[s>>0])){switch(0|tr[(t=s+1|0)>>0]){case 88:case 120:break;default:t=s,m=10;break A}for(h=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,48),w=0|ar[n>>2],ar[n>>2]=w+1,tr[w>>0]=h,s=s+2|0,w=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,0|tr[t>>0]),t=0|ar[n>>2],ar[n>>2]=t+1,tr[t>>0]=w,t=s;;){if(r>>>0<=t>>>0)break A;if(!(0|lf(w=0|tr[t>>0],dn())))break A;t=t+1|0}}else t=s,m=10}while(0);A:do{if(10==(0|m))for(;;){if(r>>>(m=0)<=t>>>0)break A;if(!(0|af(w=0|tr[t>>0],dn())))break A;t=t+1|0,m=10}}while(0);k=0|tr[(o=11+l|0)>>0],a=4+l|0,h=s,w=A;A:do{if(0|(k<<24>>24<0?0|ar[a>>2]:255&k)){e:do{if((0|s)!=(0|t))for(A=t,d=s;;){if((A=A+-1|0)>>>0<=d>>>0)break e;k=0|tr[d>>0],tr[d>>0]=0|tr[A>>0],tr[A>>0]=k,d=d+1|0}}while(0);for(k=0|jb[127&ar[16+(0|ar[c>>2])>>2]](c),A=d=0;!(t>>>0<=s>>>0);)0<(g=0|tr[((0|tr[o>>0])<0?0|ar[l>>2]:l)+A>>0])<<24>>24&(0|d)==(g<<24>>24|0)&&(d=0|ar[n>>2],ar[n>>2]=d+1,tr[d>>0]=k,A=(A>>>0<(((d=0|tr[o>>0])<<24>>24<0?0|ar[a>>2]:255&d)-1|0)>>>0&1)+A|0,d=0),Z=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,0|tr[s>>0]),g=0|ar[n>>2],ar[n>>2]=g+1,tr[g>>0]=Z,s=s+1|0,d=d+1|0;if((0|(A=i+(h-w)|0))==(0|(s=0|ar[n>>2])))A=u;else for(;;){if((s=s+-1|0)>>>0<=A>>>0){A=u;break A}Z=0|tr[A>>0],tr[A>>0]=0|tr[s>>0],tr[s>>0]=Z,A=A+1|0}}else Pb[7&ar[32+(0|ar[u>>2])>>2]](u,s,t,0|ar[n>>2]),ar[n>>2]=(0|ar[n>>2])+(t-h),A=u}while(0);for(;!(r>>>0<=t>>>0);){if(s=0|tr[t>>0],t=t+1|0,s<<24>>24==46){m=29;break}g=0|Hb[31&ar[28+(0|ar[A>>2])>>2]](u,s),Z=0|ar[n>>2],ar[n>>2]=Z+1,tr[Z>>0]=g}29==(0|m)&&(g=0|jb[127&ar[12+(0|ar[c>>2])>>2]](c),Z=0|ar[n>>2],ar[n>>2]=Z+1,tr[Z>>0]=g),Pb[7&ar[32+(0|ar[u>>2])>>2]](u,t,r,0|ar[n>>2]),Z=(0|ar[n>>2])+(v-t)|0,ar[n>>2]=Z,ar[f>>2]=(0|e)==(0|r)?Z:i+(e-w)|0,Bu(l),ur=b}function wr(A,e,r,i){A|=0,e|=0,r|=0;var f=0;for(2048&(i|=0)&&(tr[A>>0]=43,A=A+1|0),f=512&i?(tr[A>>0]=35,A+1|0):A;(A=0|tr[e>>0])<<24>>24;)tr[f>>0]=A,e=e+1|0,f=f+1|0;switch(74&i){case 64:A=111;break;case 8:A=16384&i|0?88:120;break;default:A=r?100:117}tr[f>>0]=A}function vr(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,c=0|un(t|=0,59232),d=0|un(t,59248),fs[63&ar[20+(0|ar[d>>2])>>2]](u,d),a=4+u|0,l=A,s=r,0|((k=0|tr[(o=11+u|0)>>0])<<24>>24<0?0|ar[a>>2]:255&k)){switch(ar[n>>2]=i,(t=0|tr[A>>0])<<24>>24){case 43:case 45:t=0|Hb[31&ar[28+(0|ar[c>>2])>>2]](c,t),k=0|ar[n>>2],ar[n>>2]=k+1,tr[k>>0]=t,A=A+1|0}A:do{if(1<(s-A|0)&&48==(0|tr[A>>0])){switch(0|tr[(t=A+1|0)>>0]){case 88:case 120:break;default:break A}k=0|Hb[31&ar[28+(0|ar[c>>2])>>2]](c,48),s=0|ar[n>>2],ar[n>>2]=s+1,tr[s>>0]=k,s=0|Hb[31&ar[28+(0|ar[c>>2])>>2]](c,0|tr[t>>0]),k=0|ar[n>>2],ar[n>>2]=k+1,tr[k>>0]=s,A=A+2|0}}while(0);A:do{if((0|A)!=(0|r))for(t=r,s=A;;){if((t=t+-1|0)>>>0<=s>>>0)break A;k=0|tr[s>>0],tr[s>>0]=0|tr[t>>0],tr[t>>0]=k,s=s+1|0}}while(0);for(k=0|jb[127&ar[16+(0|ar[d>>2])>>2]](d),d=A,s=t=0;!(r>>>0<=d>>>0);)(h=0|tr[((0|tr[o>>0])<0?0|ar[u>>2]:u)+t>>0])<<24>>24!=0&(0|s)==(h<<24>>24|0)&&(s=0|ar[n>>2],ar[n>>2]=s+1,tr[s>>0]=k,t=(t>>>0<(((s=0|tr[o>>0])<<24>>24<0?0|ar[a>>2]:255&s)-1|0)>>>0&1)+t|0,s=0),w=0|Hb[31&ar[28+(0|ar[c>>2])>>2]](c,0|tr[d>>0]),h=0|ar[n>>2],ar[n>>2]=h+1,tr[h>>0]=w,d=d+1|0,s=s+1|0;if((0|(t=i+(A-l)|0))!=(0|(A=0|ar[n>>2]))){for(;!((A=A+-1|0)>>>0<=t>>>0);)w=0|tr[t>>0],tr[t>>0]=0|tr[A>>0],tr[A>>0]=w,t=t+1|0;t=0|ar[n>>2]}}else Pb[7&ar[32+(0|ar[c>>2])>>2]](c,A,r,i),t=i+(s-l)|0,ar[n>>2]=t;ar[f>>2]=(0|e)==(0|r)?t:i+(e-l)|0,Bu(u),ur=b}function mr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;o=ur=(a=ur)+31&-32,ur=ur+16|0,t=12+o|0,c=0|ar[(A|=0)>>2];A:do{if(c){if(l=(0|(l=i-(h=e)>>2))<(0|(u=0|ar[(b=f+12|0)>>2]))?u-l|0:0,f=(h=(u=r)-h|0)>>2,0<(0|h)&&(0|xb[63&ar[48+(0|ar[c>>2])>>2]](c,e,f))!=(0|f)){c=ar[A>>2]=0;break}do{if(0<(0|l)){ar[o>>2]=0,ar[4+o>>2]=0,1073741807>>(ar[8+o>>2]=0)&&pu();do{if(2<=l>>>0){if(!(1073741823<(f=l+4&2147483644)>>>0)){s=0|hu(f<<2),ar[o>>2]=s,ar[(d=8+o|0)>>2]=-2147483648|f,ar[4+o>>2]=l,d=d+3|0,k=o;break}lA()}else tr[(d=8+o+3|0)>>0]=l,k=s=o}while(0);if(gr(s,l,n),ln(s+(l<<2)|(ar[t>>2]=0),t),(0|xb[63&ar[48+(0|ar[c>>2])>>2]](c,(0|tr[d>>0])<0?0|ar[o>>2]:k,l))==(0|l)){Qu(o);break}ar[A>>2]=0,Qu(o),c=0;break A}}while(0);if(i=(h=i-u|0)>>2,0<(0|h)&&(0|xb[63&ar[48+(0|ar[c>>2])>>2]](c,r,i))!=(0|i)){c=ar[A>>2]=0;break}ar[b>>2]=0}else c=0}while(0);return ur=a,0|c}function gr(A,e,r){return A|=0,r|=0,(e|=0)&&function(A,e,r){A|=0,e|=0;var i=0;if(0|(r|=0))for(i=A;r=r+-1|0,ar[i>>2]=e,r;)i=i+4|0}(A,r,e),0|A}function Zr(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;switch(l=ur=(b=ur)+31&-32,ur=ur+16|0,u=0|un(t|=0,59264),c=0|un(t,59272),fs[63&ar[20+(0|ar[c>>2])>>2]](l,c),ar[n>>2]=i,(t=0|tr[A>>0])<<24>>24){case 43:case 45:g=0|Hb[31&ar[44+(0|ar[u>>2])>>2]](u,t),t=0|ar[n>>2],ar[n>>2]=t+4,ar[t>>2]=g,t=A+1|0;break;default:t=A}g=r;A:do{if(1<(g-t|0)&&48==(0|tr[t>>0])){switch(0|tr[(s=t+1|0)>>0]){case 88:case 120:break;default:s=t,Z=10;break A}for(v=0|Hb[31&ar[44+(0|ar[u>>2])>>2]](u,48),m=0|ar[n>>2],ar[n>>2]=m+4,ar[m>>2]=v,t=t+2|0,m=0|Hb[31&ar[44+(0|ar[u>>2])>>2]](u,0|tr[s>>0]),s=0|ar[n>>2],ar[n>>2]=s+4,ar[s>>2]=m,s=t;;){if(r>>>0<=s>>>0)break A;if(!(0|lf(m=0|tr[s>>0],dn())))break A;s=s+1|0}}else s=t,Z=10}while(0);A:do{if(10==(0|Z))for(;;){if(r>>>(Z=0)<=s>>>0)break A;if(!(0|af(m=0|tr[s>>0],dn())))break A;s=s+1|0,Z=10}}while(0);w=0|tr[(o=11+l|0)>>0],a=4+l|0,v=t,m=A;A:do{if(0|(w<<24>>24<0?0|ar[a>>2]:255&w)){e:do{if((0|t)!=(0|s))for(A=s,d=t;;){if((A=A+-1|0)>>>0<=d>>>0)break e;w=0|tr[d>>0],tr[d>>0]=0|tr[A>>0],tr[A>>0]=w,d=d+1|0}}while(0);for(w=0|jb[127&ar[16+(0|ar[c>>2])>>2]](c),d=A=0;!(s>>>0<=t>>>0);)k=0|tr[o>>0],0<(p=0|tr[((h=k<<24>>24<0)?0|ar[l>>2]:l)+A>>0])<<24>>24&(0|d)==(p<<24>>24|0)&&(d=0|ar[n>>2],ar[n>>2]=d+4,ar[d>>2]=w,A=(A>>>0<((h?0|ar[a>>2]:255&k)-1|0)>>>0&1)+A|0,d=0),h=0|Hb[31&ar[44+(0|ar[u>>2])>>2]](u,0|tr[t>>0]),p=0|ar[n>>2],ar[n>>2]=p+4,ar[p>>2]=h,t=t+1|0,d=d+1|0;if((0|(t=i+(v-m<<2)|0))==(0|(d=0|ar[n>>2])))A=u;else for(A=d;;){if((A=A+-4|0)>>>0<=t>>>0){A=u,t=d;break A}p=0|ar[t>>2],ar[t>>2]=ar[A>>2],ar[A>>2]=p,t=t+4|0}}else Pb[7&ar[48+(0|ar[u>>2])>>2]](u,t,s,0|ar[n>>2]),t=(0|ar[n>>2])+(s-v<<2)|0,ar[n>>2]=t,A=u}while(0);for(;!(r>>>0<=s>>>0);){if(t=0|tr[s>>0],s=s+1|0,t<<24>>24==46){Z=29;break}v=0|Hb[31&ar[44+(0|ar[A>>2])>>2]](u,t),t=(p=0|ar[n>>2])+4|0,ar[n>>2]=t,ar[p>>2]=v}29==(0|Z)&&(Z=0|jb[127&ar[12+(0|ar[c>>2])>>2]](c),t=(p=0|ar[n>>2])+4|0,ar[n>>2]=t,ar[p>>2]=Z),Pb[7&ar[48+(0|ar[u>>2])>>2]](u,s,r,t),p=(0|ar[n>>2])+(g-s<<2)|0,ar[n>>2]=p,ar[f>>2]=(0|e)==(0|r)?p:i+(e-m<<2)|0,Bu(l),ur=b}function pr(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,c=0|un(t|=0,59264),d=0|un(t,59272),fs[63&ar[20+(0|ar[d>>2])>>2]](u,d),a=4+u|0,l=A,s=r,0|((w=0|tr[(o=11+u|0)>>0])<<24>>24<0?0|ar[a>>2]:255&w)){switch(ar[n>>2]=i,(t=0|tr[A>>0])<<24>>24){case 43:case 45:h=0|Hb[31&ar[44+(0|ar[c>>2])>>2]](c,t),w=0|ar[n>>2],ar[n>>2]=w+4,ar[w>>2]=h,A=A+1|0}A:do{if(1<(s-A|0)&&48==(0|tr[A>>0])){switch(0|tr[(t=A+1|0)>>0]){case 88:case 120:break;default:break A}w=0|Hb[31&ar[44+(0|ar[c>>2])>>2]](c,48),h=0|ar[n>>2],ar[n>>2]=h+4,ar[h>>2]=w,h=0|Hb[31&ar[44+(0|ar[c>>2])>>2]](c,0|tr[t>>0]),w=0|ar[n>>2],ar[n>>2]=w+4,ar[w>>2]=h,A=A+2|0}}while(0);A:do{if((0|A)!=(0|r))for(t=r,s=A;;){if((t=t+-1|0)>>>0<=s>>>0)break A;w=0|tr[s>>0],tr[s>>0]=0|tr[t>>0],tr[t>>0]=w,s=s+1|0}}while(0);for(w=0|jb[127&ar[16+(0|ar[d>>2])>>2]](d),h=A,s=t=0;!(r>>>0<=h>>>0);)d=0|tr[o>>0],(v=0|tr[((k=d<<24>>24<0)?0|ar[u>>2]:u)+t>>0])<<24>>24!=0&(0|s)==(v<<24>>24|0)&&(s=0|ar[n>>2],ar[n>>2]=s+4,ar[s>>2]=w,t=(t>>>0<((k?0|ar[a>>2]:255&d)-1|0)>>>0&1)+t|0,s=0),k=0|Hb[31&ar[44+(0|ar[c>>2])>>2]](c,0|tr[h>>0]),v=0|ar[n>>2],ar[n>>2]=v+4,ar[v>>2]=k,h=h+1|0,s=s+1|0;if((0|(t=i+(A-l<<2)|0))!=(0|(A=0|ar[n>>2]))){for(;!((A=A+-4|0)>>>0<=t>>>0);)v=0|ar[t>>2],ar[t>>2]=ar[A>>2],ar[A>>2]=v,t=t+4|0;t=0|ar[n>>2]}}else Pb[7&ar[48+(0|ar[c>>2])>>2]](c,A,r,i),t=i+(s-l<<2)|0,ar[n>>2]=t;ar[f>>2]=(0|e)==(0|r)?t:i+(e-l<<2)|0,Bu(u),ur=b}function yr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a;a=ur=(t=ur)+31&-32,ur=ur+16|0,o=4+a|0,A=0|jb[127&ar[ar[(A=(A|=0)+8|0)>>2]>>2]](A),ar[a>>2]=ar[i>>2],ar[o>>2]=ar[a>>2],(0|(A=(0|Vn(r,o,A,A+168|0,n,f,0))-A|0))<168&&(ar[e>>2]=((0|A)/12|0)%7|0),ur=t}function Br(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a;a=ur=(t=ur)+31&-32,ur=ur+16|0,o=4+a|0,A=0|jb[127&ar[4+(0|ar[(A=(A|=0)+8|0)>>2])>>2]](A),ar[a>>2]=ar[i>>2],ar[o>>2]=ar[a>>2],(0|(A=(0|Vn(r,o,A,A+288|0,n,f,0))-A|0))<288&&(ar[e>>2]=((0|A)/12|0)%12|0),ur=t}function Er(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;s=ur=(d=ur)+31&-32,ur=ur+16|0,a=8+s|0,b=4+s|0,Tf(c=12+s|0,i|=0),l=0|un(c,59232),bn(c),u=8+l|(ar[f>>2]=0),k=0;A:for(;;){for(Z=(0|t)!=(0|o),h=k;;){if(k=0|ar[e>>2],!(Z&0==(0|h)))break A;g=(w=k)?0|Mf(h=(0|(h=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[h>>0]),-1)?(m=1,k=ar[e>>2]=0):(m=0,w):(k=0,m=1,w),h=v=0|ar[r>>2];do{if(v){if(0|Mf(w=(0|(w=0|ar[v+12>>2]))==(0|ar[v+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](v):0|hf(0|tr[w>>0]),-1)){h=ar[r>>2]=0,y=16;break}if(m)break;y=61;break A}y=16}while(0);if(16==(0|y)){if(y=0,m){y=61;break A}v=0}if((0|xb[63&ar[36+(0|ar[l>>2])>>2]](l,0|tr[t>>0],0))<<24>>24==37){y=19;break}if(-1<(h=0|tr[t>>0])<<24>>24&&(p=0|ar[u>>2],8192&or[p+(h<<24>>24<<1)>>1])){y=27;break}if(h=(0|(h=0|ar[(w=k+12|0)>>2]))==(0|ar[(v=k+16|0)>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[h>>0]),(g=0|Hb[31&ar[12+(0|ar[l>>2])>>2]](l,255&h))<<24>>24==(0|Hb[31&ar[12+(0|ar[l>>2])>>2]](l,0|tr[t>>0]))<<24>>24){y=57;break}h=ar[f>>2]=4}e:do{if(19==(0|y)){if(((y=0)|(m=t+1|0))==(0|o)){y=61;break A}switch((w=0|xb[63&ar[36+(0|ar[l>>2])>>2]](l,0|tr[m>>0],0))<<24>>24){case 48:case 69:if((0|(t=t+2|0))==(0|o)){y=61;break A}v=w,k=0|xb[63&ar[36+(0|ar[l>>2])>>2]](l,0|tr[t>>0],0),t=m;break;default:v=0,k=w}Z=0|ar[36+(0|ar[A>>2])>>2],ar[b>>2]=g,ar[s>>2]=h,ar[a>>2]=ar[b>>2],ar[c>>2]=ar[s>>2],Z=0|es[15&Z](A,a,c,i,f,n,k,v),ar[e>>2]=Z,t=t+2|0}else if(27==(0|y)){for(;;){if(((y=0)|(t=t+1|0))==(0|o)){t=o;break}if((h=0|tr[t>>0])<<24>>24<=-1)break;if(!(8192&or[p+(h<<24>>24<<1)>>1]))break;y=27}for(h=v;;){k?0|Mf(w=(0|(w=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[w>>0]),-1)?(m=1,k=ar[e>>2]=0):m=0:(m=1,k=0);do{if(v){if(0|Mf(w=(0|(w=0|ar[v+12>>2]))==(0|ar[v+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](v):0|hf(0|tr[w>>0]),-1)){h=ar[r>>2]=0,y=43;break}if(m^0==(0|h)){v=g=h;break}break e}y=43}while(0);if(43==(0|y)){if(y=0,m)break e;g=h,v=0}if((255&(h=(0|(h=0|ar[(w=k+12|0)>>2]))==(0|ar[(m=k+16|0)>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[h>>0])))<<24>>24<=-1)break e;if(!(8192&or[(0|ar[u>>2])+(h<<24>>24<<1)>>1]))break e;(0|(h=0|ar[w>>2]))!=(0|ar[m>>2])?(ar[w>>2]=h+1,hf(0|tr[h>>0]),h=g):(jb[127&ar[40+(0|ar[k>>2])>>2]](k),h=g)}}else if(57==(0|y)){if(t=t+1|(y=0),(0|(h=0|ar[w>>2]))==(0|ar[v>>2])){jb[127&ar[40+(0|ar[k>>2])>>2]](k);break}ar[w>>2]=h+1,hf(0|tr[h>>0]);break}}while(0);k=0|ar[f>>2]}61==(0|y)&&(ar[f>>2]=4),w=k?0|Mf(t=(0|(t=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[t>>0]),-1)?(k=ar[e>>2]=0,1):0:(k=0,1),t=0|ar[r>>2];do{if(t){if(0|Mf(t=(0|(h=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|hf(0|tr[h>>0]),-1)){ar[r>>2]=0,y=74;break}if(w)break;y=76;break}y=74}while(0);return 74==(0|y)&&w&&(y=76),76==(0|y)&&(ar[f>>2]=2|ar[f>>2]),ur=d,0|k}function Xr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],((A=0|Jr(r,A,f,n,2))+-1|0)>>>0<31&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Wr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,2)))<24&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Ir(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],((A=0|Jr(r,A,f,n,2))+-1|0)>>>0<12&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Cr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,3)))<366&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Gr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,2)))<13&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A+-1:ar[f>>2]=4|r,ur=t}function Vr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,2)))<60&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Fr(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0;var n,t=0,o=0;n=(f|=0)+8|0;A:for(;;){A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[f>>0]),-1)){ar[e>>2]=0,t=1;break}t=0==(0|ar[e>>2]);break}t=1}while(0);f=0|ar[r>>2];do{if(f){if(0|Mf(A=(0|(A=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,o=15;break}if(t){t=f;break}t=f;break A}o=15}while(0);if(15==(0|o)){if(o=0,t){t=0;break}t=0}if(A=0|ar[e>>2],(255&(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[f>>0])))<<24>>24<=-1)break;if(!(8192&or[(0|ar[n>>2])+(A<<24>>24<<1)>>1]))break;A=0|ar[e>>2],(0|(t=0|ar[(f=A+12|0)>>2]))!=(0|ar[A+16>>2])?(ar[f>>2]=t+1,hf(0|tr[t>>0])):jb[127&ar[40+(0|ar[A>>2])>>2]](A)}A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[f>>0]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);do{if(t){if(0|Mf(A=(0|(A=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,o=38;break}if(f)break;o=40;break}o=38}while(0);38==(0|o)&&f&&(o=40),40==(0|o)&&(ar[i>>2]=2|ar[i>>2])}function Rr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c=0,l=0;o=ur=(a=ur)+31&-32,ur=ur+16|0,t=4+o|0,l=0|jb[127&ar[8+(0|ar[(l=(A|=0)+8|0)>>2])>>2]](l),c=(A=0|tr[l+11>>0])<<24>>24<0?0|ar[l+4>>2]:255&A,(A=0|tr[l+12+11>>0])<<24>>24<0?A=0|ar[l+16>>2]:A&=255;do{if((0|c)!=(0-A|0)){if(ar[o>>2]=ar[i>>2],ar[t>>2]=ar[o>>2],A=(0|Vn(r,t,l,l+24|0,n,f,0))-l|0,12==(0|(c=0|ar[e>>2]))&0==(0|A)){ar[e>>2]=0;break}(0|c)<12&12==(0|A)&&(ar[e>>2]=c+12)}else ar[f>>2]=4|ar[f>>2]}while(0);ur=a}function Nr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,2)))<61&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function _r(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|Jr(r,A,f,n,1)))<7&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Yr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],A=0|Jr(r,A,f,n,4),4&ar[f>>2]||(A=(0|A)<69?A+2e3|0:(0|A)<100?A+1900|0:A,ar[e>>2]=A+-1900),ur=t}function Qr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],A=0|Jr(r,A,f,n,4),4&ar[f>>2]||(ar[e>>2]=A+-1900),ur=t}function Dr(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0;A=0|ar[(e|=0)>>2];do{if(A){if(0|Mf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[n>>0]),-1)){ar[e>>2]=0,t=1;break}t=0==(0|ar[e>>2]);break}t=1}while(0);n=0|ar[r>>2];do{if(n){if(0|Mf(A=(0|(A=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,a=14;break}if(t){o=n,a=16;break}A=6,a=38;break}a=14}while(0);14==(0|a)&&(a=t?(A=6,38):(o=0,16));A:do{if(16==(0|a))if(A=0|ar[e>>2],A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[n>>0]),(0|xb[63&ar[36+(0|ar[f>>2])>>2]](f,255&A,0))<<24>>24==37){A=0|ar[e>>2],(0|(t=0|ar[(n=A+12|0)>>2]))==(0|ar[A+16>>2])?jb[127&ar[40+(0|ar[A>>2])>>2]](A):(ar[n>>2]=t+1,hf(0|tr[t>>0])),A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[n>>0]),-1)){ar[e>>2]=0,n=1;break}n=0==(0|ar[e>>2]);break}n=1}while(0);do{if(0|o){if(0|Mf(A=(0|(A=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0;break}if(n)break A;A=2,a=38;break A}}while(0);n&&(A=2,a=38)}else A=4,a=38}while(0);38==(0|a)&&(ar[i>>2]=ar[i>>2]|A)}function Jr(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;n=0|ar[(A|=0)>>2];do{if(n){if(0|Mf(n=(0|(t=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|hf(0|tr[t>>0]),-1)){ar[A>>2]=0,o=1;break}o=0==(0|ar[A>>2]);break}o=1}while(0);t=0|ar[e>>2];do{if(t){if(0|Mf(n=(0|(n=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|hf(0|tr[n>>0]),-1)){ar[e>>2]=0,k=14;break}if(o){k=17;break}k=16;break}k=14}while(0);14==(0|k)&&(k=o?16:(t=0,17));A:do{if(16==(0|k))ar[r>>2]=6|ar[r>>2],n=0;else if(17==(0|k)){if(n=0|ar[A>>2],-1<(o=255&(n=(0|(o=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|hf(0|tr[o>>0])))<<24>>24&&2048&or[(0|ar[(d=i+8|0)>>2])+(n<<24>>24<<1)>>1]){for(n=(0|xb[63&ar[36+(0|ar[i>>2])>>2]](i,o,0))<<24>>24,o=0|ar[A>>2],a=l=((0|(c=0|ar[(a=o+12|0)>>2]))==(0|ar[o+16>>2])?jb[127&ar[40+(0|ar[o>>2])>>2]](o):(ar[a>>2]=c+1,hf(0|tr[c>>0])),t);;){n=n+-48|0,s=f+-1|0,t=0|ar[A>>2];do{if(t){if(0|Mf(t=(0|(o=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|hf(0|tr[o>>0]),-1)){ar[A>>2]=0,c=1;break}c=0==(0|ar[A>>2]);break}c=1}while(0);do{if(a){if(0|Mf(t=(0|(t=0|ar[a+12>>2]))==(0|ar[a+16>>2])?0|jb[127&ar[36+(0|ar[a>>2])>>2]](a):0|hf(0|tr[t>>0]),-1)){t=1,u=b=ar[e>>2]=0;break}t=0==(0|(b=l)),u=l;break}b=l,t=1,u=0}while(0);if(o=0|ar[A>>2],!(1<(0|f)&(c^t)))break;if((o=255&(t=(0|(t=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[t>>0])))<<24>>24<=-1)break A;if(!(2048&or[(0|ar[d>>2])+(t<<24>>24<<1)>>1]))break A;n=((0|xb[63&ar[36+(0|ar[i>>2])>>2]](i,o,0))<<24>>24)+(10*n|0)|0,t=0|ar[A>>2],(0|(a=0|ar[(o=t+12|0)>>2]))!=(0|ar[t+16>>2])?(ar[o>>2]=a+1,hf(0|tr[a>>0]),f=s,l=b,a=u):(jb[127&ar[40+(0|ar[t>>2])>>2]](t),f=s,l=b,a=u)}do{if(o){if(0|Mf(t=(0|(t=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[t>>0]),-1)){ar[A>>2]=0,o=1;break}o=0==(0|ar[A>>2]);break}o=1}while(0);do{if(b){if(0|Mf(t=(0|(t=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|hf(0|tr[t>>0]),-1)){ar[e>>2]=0,k=62;break}if(o)break A;break}k=62}while(0);if(62==(0|k)&&!o)break;ar[r>>2]=2|ar[r>>2];break}ar[r>>2]=4|ar[r>>2],n=0}}while(0);return 0|n}function Mr(A){return 0|function(A){var e=0;e=A|=0;for(;0|ar[e>>2];)e=e+4|0;return e-A>>2|0}(A|=0)}function Tr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a;a=ur=(t=ur)+31&-32,ur=ur+16|0,o=4+a|0,A=0|jb[127&ar[ar[(A=(A|=0)+8|0)>>2]>>2]](A),ar[a>>2]=ar[i>>2],ar[o>>2]=ar[a>>2],(0|(A=(0|ir(r,o,A,A+168|0,n,f,0))-A|0))<168&&(ar[e>>2]=((0|A)/12|0)%7|0),ur=t}function Ur(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a;a=ur=(t=ur)+31&-32,ur=ur+16|0,o=4+a|0,A=0|jb[127&ar[4+(0|ar[(A=(A|=0)+8|0)>>2])>>2]](A),ar[a>>2]=ar[i>>2],ar[o>>2]=ar[a>>2],(0|(A=(0|ir(r,o,A,A+288|0,n,f,0))-A|0))<288&&(ar[e>>2]=((0|A)/12|0)%12|0),ur=t}function Sr(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;b=ur=(s=ur)+31&-32,ur=ur+16|0,a=8+b|0,u=4+b|0,Tf(c=12+b|0,i|=0),l=0|un(c,59264),bn(c),d=ar[f>>2]=0;A:for(;;){for(g=(0|t)!=(0|o),k=d;;){if(d=0|ar[e>>2],!(g&0==(0|k)))break A;m=(h=d)?0|Uf(k=(0|(k=0|ar[d+12>>2]))==(0|ar[d+16>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[k>>2]),-1)?(v=1,d=ar[e>>2]=0):(v=0,h):(d=0,v=1,h),k=w=0|ar[r>>2];do{if(w){if(0|Uf(h=(0|(h=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[h>>2]),-1)){k=ar[r>>2]=0,Z=16;break}if(v)break;Z=58;break A}Z=16}while(0);if(16==(0|Z)){if(Z=0,v){Z=58;break A}w=0}if((0|xb[63&ar[52+(0|ar[l>>2])>>2]](l,0|ar[t>>2],0))<<24>>24==37){Z=19;break}if(0|xb[63&ar[12+(0|ar[l>>2])>>2]](l,8192,0|ar[t>>2])){Z=26;break}if(k=(0|(k=0|ar[(h=d+12|0)>>2]))==(0|ar[(w=d+16|0)>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[k>>2]),(0|(m=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,k)))==(0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,0|ar[t>>2]))){Z=54;break}k=ar[f>>2]=4}e:do{if(19==(0|Z)){if(((Z=0)|(v=t+4|0))==(0|o)){Z=58;break A}switch((h=0|xb[63&ar[52+(0|ar[l>>2])>>2]](l,0|ar[v>>2],0))<<24>>24){case 48:case 69:if((0|(t=t+8|0))==(0|o)){Z=58;break A}w=h,d=0|xb[63&ar[52+(0|ar[l>>2])>>2]](l,0|ar[t>>2],0),t=v;break;default:w=0,d=h}g=0|ar[36+(0|ar[A>>2])>>2],ar[u>>2]=m,ar[b>>2]=k,ar[a>>2]=ar[u>>2],ar[c>>2]=ar[b>>2],g=0|es[15&g](A,a,c,i,f,n,d,w),ar[e>>2]=g,t=t+8|0}else if(26==(0|Z)){for(;;){if(((Z=0)|(t=t+4|0))==(0|o)){t=o;break}if(!(0|xb[63&ar[12+(0|ar[l>>2])>>2]](l,8192,0|ar[t>>2])))break;Z=26}for(k=w;;){d?0|Uf(h=(0|(h=0|ar[d+12>>2]))==(0|ar[d+16>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[h>>2]),-1)?(v=1,d=ar[e>>2]=0):v=0:(v=1,d=0);do{if(w){if(0|Uf(h=(0|(h=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[h>>2]),-1)){k=ar[r>>2]=0,Z=41;break}if(v^0==(0|k)){w=m=k;break}break e}Z=41}while(0);if(41==(0|Z)){if(Z=0,v)break e;m=k,w=0}if(k=(0|(k=0|ar[(h=d+12|0)>>2]))==(0|ar[(v=d+16|0)>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[k>>2]),!(0|xb[63&ar[12+(0|ar[l>>2])>>2]](l,8192,k)))break e;(0|(k=0|ar[h>>2]))!=(0|ar[v>>2])?(ar[h>>2]=k+4,gf(0|ar[k>>2]),k=m):(jb[127&ar[40+(0|ar[d>>2])>>2]](d),k=m)}}else if(54==(0|Z)){if(t=t+4|(Z=0),(0|(k=0|ar[h>>2]))==(0|ar[w>>2])){jb[127&ar[40+(0|ar[d>>2])>>2]](d);break}ar[h>>2]=k+4,gf(0|ar[k>>2]);break}}while(0);d=0|ar[f>>2]}58==(0|Z)&&(ar[f>>2]=4),h=d?0|Uf(t=(0|(t=0|ar[d+12>>2]))==(0|ar[d+16>>2])?0|jb[127&ar[36+(0|ar[d>>2])>>2]](d):0|gf(0|ar[t>>2]),-1)?(d=ar[e>>2]=0,1):0:(d=0,1),t=0|ar[r>>2];do{if(t){if(0|Uf(t=(0|(k=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|gf(0|ar[k>>2]),-1)){ar[r>>2]=0,Z=71;break}if(h)break;Z=73;break}Z=71}while(0);return 71==(0|Z)&&h&&(Z=73),73==(0|Z)&&(ar[f>>2]=2|ar[f>>2]),ur=s,0|d}function Or(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],((A=0|ii(r,A,f,n,2))+-1|0)>>>0<31&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function zr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,2)))<24&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function jr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],((A=0|ii(r,A,f,n,2))+-1|0)>>>0<12&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Hr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,3)))<366&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function xr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,2)))<13&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A+-1:ar[f>>2]=4|r,ur=t}function Pr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,2)))<60&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Lr(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0;A:for(;;){A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,t=1;break}t=0==(0|ar[e>>2]);break}t=1}while(0);n=0|ar[r>>2];do{if(n){if(0|Uf(A=(0|(A=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,o=15;break}if(t){t=n;break}t=n;break A}o=15}while(0);if(15==(0|o)){if(o=0,t){t=0;break}t=0}if(A=0|ar[e>>2],A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),!(0|xb[63&ar[12+(0|ar[f>>2])>>2]](f,8192,A)))break;A=0|ar[e>>2],(0|(t=0|ar[(n=A+12|0)>>2]))!=(0|ar[A+16>>2])?(ar[n>>2]=t+4,gf(0|ar[t>>2])):jb[127&ar[40+(0|ar[A>>2])>>2]](A)}A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,n=1;break}n=0==(0|ar[e>>2]);break}n=1}while(0);do{if(t){if(0|Uf(A=(0|(A=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,o=37;break}if(n)break;o=39;break}o=37}while(0);37==(0|o)&&n&&(o=39),39==(0|o)&&(ar[i>>2]=2|ar[i>>2])}function Kr(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c=0,l=0;o=ur=(a=ur)+31&-32,ur=ur+16|0,t=4+o|0,l=0|jb[127&ar[8+(0|ar[(l=(A|=0)+8|0)>>2])>>2]](l),c=(A=0|tr[l+8+3>>0])<<24>>24<0?0|ar[l+4>>2]:255&A,(A=0|tr[l+20+3>>0])<<24>>24<0?A=0|ar[l+16>>2]:A&=255;do{if((0|c)!=(0-A|0)){if(ar[o>>2]=ar[i>>2],ar[t>>2]=ar[o>>2],A=(0|ir(r,t,l,l+24|0,n,f,0))-l|0,12==(0|(c=0|ar[e>>2]))&0==(0|A)){ar[e>>2]=0;break}(0|c)<12&12==(0|A)&&(ar[e>>2]=c+12)}else ar[f>>2]=4|ar[f>>2]}while(0);ur=a}function qr(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,2)))<61&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function $r(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],(0|(A=0|ii(r,A,f,n,1)))<7&0==(4&(r=0|ar[f>>2])|0)?ar[e>>2]=A:ar[f>>2]=4|r,ur=t}function Ai(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],A=0|ii(r,A,f,n,4),4&ar[f>>2]||(A=(0|A)<69?A+2e3|0:(0|A)<100?A+1900|0:A,ar[e>>2]=A+-1900),ur=t}function ei(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o;o=ur=(t=ur)+31&-32,ur=ur+16|0,A=4+o|0,ar[o>>2]=ar[i>>2],ar[A>>2]=ar[o>>2],A=0|ii(r,A,f,n,4),4&ar[f>>2]||(ar[e>>2]=A+-1900),ur=t}function ri(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0;A=0|ar[(e|=0)>>2];do{if(A){if(0|Uf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,t=1;break}t=0==(0|ar[e>>2]);break}t=1}while(0);n=0|ar[r>>2];do{if(n){if(0|Uf(A=(0|(A=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,a=14;break}if(t){o=n,a=16;break}A=6,a=38;break}a=14}while(0);14==(0|a)&&(a=t?(A=6,38):(o=0,16));A:do{if(16==(0|a))if(A=0|ar[e>>2],A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),(0|xb[63&ar[52+(0|ar[f>>2])>>2]](f,A,0))<<24>>24==37){A=0|ar[e>>2],(0|(t=0|ar[(n=A+12|0)>>2]))==(0|ar[A+16>>2])?jb[127&ar[40+(0|ar[A>>2])>>2]](A):(ar[n>>2]=t+4,gf(0|ar[t>>2])),A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(n=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,n=1;break}n=0==(0|ar[e>>2]);break}n=1}while(0);do{if(0|o){if(0|Uf(A=(0|(A=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0;break}if(n)break A;A=2,a=38;break A}}while(0);n&&(A=2,a=38)}else A=4,a=38}while(0);38==(0|a)&&(ar[i>>2]=ar[i>>2]|A)}function ii(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;n=0|ar[(A|=0)>>2];do{if(n){if(0|Uf(n=(0|(t=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|gf(0|ar[t>>2]),-1)){ar[A>>2]=0,o=1;break}o=0==(0|ar[A>>2]);break}o=1}while(0);t=0|ar[e>>2];do{if(t){if(0|Uf(n=(0|(n=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|gf(0|ar[n>>2]),-1)){ar[e>>2]=0,d=14;break}if(o){d=17;break}d=16;break}d=14}while(0);14==(0|d)&&(d=o?16:(t=0,17));A:do{if(16==(0|d))ar[r>>2]=6|ar[r>>2],n=0;else if(17==(0|d)){if(n=0|ar[A>>2],n=(0|(o=0|ar[n+12>>2]))==(0|ar[n+16>>2])?0|jb[127&ar[36+(0|ar[n>>2])>>2]](n):0|gf(0|ar[o>>2]),!(0|xb[63&ar[12+(0|ar[i>>2])>>2]](i,2048,n))){ar[r>>2]=4|ar[r>>2],n=0;break}for(n=(0|xb[63&ar[52+(0|ar[i>>2])>>2]](i,n,0))<<24>>24,o=0|ar[A>>2],a=l=((0|(c=0|ar[(a=o+12|0)>>2]))==(0|ar[o+16>>2])?jb[127&ar[40+(0|ar[o>>2])>>2]](o):(ar[a>>2]=c+4,gf(0|ar[c>>2])),t);;){n=n+-48|0,s=f+-1|0,t=0|ar[A>>2];do{if(t){if(0|Uf(t=(0|(o=0|ar[t+12>>2]))==(0|ar[t+16>>2])?0|jb[127&ar[36+(0|ar[t>>2])>>2]](t):0|gf(0|ar[o>>2]),-1)){ar[A>>2]=0,c=1;break}c=0==(0|ar[A>>2]);break}c=1}while(0);do{if(a){if(0|Uf(t=(0|(t=0|ar[a+12>>2]))==(0|ar[a+16>>2])?0|jb[127&ar[36+(0|ar[a>>2])>>2]](a):0|gf(0|ar[t>>2]),-1)){t=1,u=b=ar[e>>2]=0;break}t=0==(0|(b=l)),u=l;break}b=l,t=1,u=0}while(0);if(o=0|ar[A>>2],!(1<(0|f)&(c^t)))break;if(t=(0|(t=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|gf(0|ar[t>>2]),!(0|xb[63&ar[12+(0|ar[i>>2])>>2]](i,2048,t)))break A;n=((0|xb[63&ar[52+(0|ar[i>>2])>>2]](i,t,0))<<24>>24)+(10*n|0)|0,t=0|ar[A>>2],(0|(a=0|ar[(o=t+12|0)>>2]))!=(0|ar[t+16>>2])?(ar[o>>2]=a+4,gf(0|ar[a>>2]),f=s,l=b,a=u):(jb[127&ar[40+(0|ar[t>>2])>>2]](t),f=s,l=b,a=u)}do{if(o){if(0|Uf(t=(0|(t=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|gf(0|ar[t>>2]),-1)){ar[A>>2]=0,o=1;break}o=0==(0|ar[A>>2]);break}o=1}while(0);do{if(b){if(0|Uf(t=(0|(t=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|gf(0|ar[t>>2]),-1)){ar[e>>2]=0,d=60;break}if(o)break A;break}d=60}while(0);if(60==(0|d)&&!o)break;ar[r>>2]=2|ar[r>>2]}}while(0);return 0|n}function fi(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u=0;t=ur=(a=ur)+31&-32,ur=ur+16|0,tr[t>>0]=37,tr[(o=1+t|0)>>0]=f,tr[(u=2+t|0)>>0]=n,tr[3+t>>0]=0,n<<24>>24&&(tr[o>>0]=n,tr[u>>0]=f),u=0|(c=e,l=0|ar[r>>2],(l|=0)-(c|=0)|0),u=e+(0|EA(0|e,0|u,0|t,0|i,0|ar[A>>2]))|0,ar[r>>2]=u,ur=a}function ni(A){(0|(0|ar[(A|=0)>>2]))!=(0|dn())&&of(0|ar[A>>2])}function ti(){lA()}function oi(A,e,r){return A|=0,r|=0,0|(e|=0)&&vb(0|A,255&(0|hf(r))|0,0|e),0|A}function ai(A,e,r,i,f,n,t,o,a,c,l){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0;for(V=ur=(J=ur)+31&-32,ur=ur+512|0,j=96+V|0,D=80+V|0,G=72+V|0,E=68+V|0,X=500+V|0,W=497+V|0,I=496+V|0,F=56+V|0,R=44+V|0,N=32+V|0,_=20+V|0,Y=8+V|0,C=4+V|0,ar[(B=88+V|0)>>2]=l,ar[D>>2]=j,ar[(Q=4+D|0)>>2]=444,ar[G>>2]=j,ar[E>>2]=j+400,ar[F>>2]=0,ar[4+F>>2]=0,l=ar[8+F>>2]=0;3!=(0|l);)l=l+1|(ar[F+(l<<2)>>2]=0);for(ar[R>>2]=0,ar[4+R>>2]=0,l=ar[8+R>>2]=0;3!=(0|l);)l=l+1|(ar[R+(l<<2)>>2]=0);for(ar[N>>2]=0,ar[4+N>>2]=0,l=ar[8+N>>2]=0;3!=(0|l);)l=l+1|(ar[N+(l<<2)>>2]=0);for(ar[_>>2]=0,ar[4+_>>2]=0,l=ar[8+_>>2]=0;3!=(0|l);)l=l+1|(ar[_+(l<<2)>>2]=0);for(ar[Y>>2]=0,ar[4+Y>>2]=0,l=ar[8+Y>>2]=0;3!=(0|l);)l=l+1|(ar[Y+(l<<2)>>2]=0);!function(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,l=12+u|0,A|=0){for(e=0|un(e,60952),fs[63&ar[44+(0|ar[e>>2])>>2]](l,e),A=0|ar[l>>2],tr[r>>0]=A,tr[r+1>>0]=A>>8,tr[r+2>>0]=A>>16,tr[r+3>>0]=A>>24,fs[63&ar[32+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[28+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=o+11|0)>>0])<0?(A=0|ar[o>>2],tr[l>>0]=0,Qf(A,l),ar[o+4>>2]=0):(tr[l>>0]=0,Qf(o,l),tr[A>>0]=0),o),Cu(o,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),A=0|jb[127&ar[12+(0|ar[e>>2])>>2]](e),tr[i>>0]=A,A=0|jb[127&ar[16+(0|ar[e>>2])>>2]](e),tr[f>>0]=A,fs[63&ar[20+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=n+11|0)>>0])<0?(A=0|ar[n>>2],tr[l>>0]=0,Qf(A,l),ar[n+4>>2]=0):(tr[l>>0]=0,Qf(n,l),tr[A>>0]=0),n),Cu(n,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[24+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;Bu(u),A=0|jb[127&ar[36+(0|ar[e>>2])>>2]](e)}else{for(e=0|un(e,60944),fs[63&ar[44+(0|ar[e>>2])>>2]](l,e),A=0|ar[l>>2],tr[r>>0]=A,tr[r+1>>0]=A>>8,tr[r+2>>0]=A>>16,tr[r+3>>0]=A>>24,fs[63&ar[32+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[28+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=o+11|0)>>0])<0?(A=0|ar[o>>2],tr[l>>0]=0,Qf(A,l),ar[o+4>>2]=0):(tr[l>>0]=0,Qf(o,l),tr[A>>0]=0),o),Cu(o,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),A=0|jb[127&ar[12+(0|ar[e>>2])>>2]](e),tr[i>>0]=A,A=0|jb[127&ar[16+(0|ar[e>>2])>>2]](e),tr[f>>0]=A,fs[63&ar[20+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=n+11|0)>>0])<0?(A=0|ar[n>>2],tr[l>>0]=0,Qf(A,l),ar[n+4>>2]=0):(tr[l>>0]=0,Qf(n,l),tr[A>>0]=0),n),Cu(n,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[24+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;Bu(u),A=0|jb[127&ar[36+(0|ar[e>>2])>>2]](e)}ar[c>>2]=A,ur=b}(r,i,X,W,I,F,R,N,_,C),ar[c>>2]=ar[a>>2],m=o+8|0,g=11+N|0,Z=4+N|0,p=11+_|0,y=4+_|0,u=0!=(512&f|0),b=11+R|0,s=4+R|0,d=11+Y|0,k=4+Y|0,h=3+X|0,w=11+F|0,v=4+F|0,z=j=0;A:for(;;){if(o=0!=(0|j),4<=z>>>0){H=234;break}l=0|ar[A>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);r=0|ar[e>>2];do{if(r){if(0|Mf(l=(0|(l=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[l>>0]),-1)){ar[e>>2]=0,H=31;break}if(i){O=r;break}H=234;break A}H=31}while(0);if(31==(0|H)){if(H=0,i){H=234;break}O=0}l=3!=(0|z);e:do{switch(0|tr[X+z>>0]){case 1:if(l){if(l=0|ar[A>>2],(255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24<=-1){H=44;break A}if(!(8192&or[(0|ar[m>>2])+(l<<24>>24<<1)>>1])){H=44;break A}l=0|ar[A>>2],_u(Y,255&(l=(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,0|hf(0|tr[i>>0])))),o=l=O,H=46}else l=j;break;case 0:l?(o=l=O,H=46):l=j;break;case 3:if((0|(l=(l=0|tr[g>>0])<<24>>24<0?0|ar[Z>>2]:255&l))==(0-(o=(o=0|tr[p>>0])<<24>>24<0?0|ar[y>>2]:255&o)|0))l=j;else{if(f=0==(0|l),l=0|ar[A>>2],i=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2]),f|0==(0|o)){if(l=i?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),l&=255,f){if(l<<24>>24!=(0|tr[((0|tr[p>>0])<0?0|ar[_>>2]:_)>>0])){l=j;break e}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,hf(0|tr[i>>0])),l=(tr[t>>0]=1)<((l=0|tr[p>>0])<<24>>24<0?0|ar[y>>2]:255&l)>>>0?_:j;break e}if(l<<24>>24!=(0|tr[((0|tr[g>>0])<0?0|ar[N>>2]:N)>>0])){tr[t>>0]=1,l=j;break e}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,hf(0|tr[i>>0])),l=1<((l=0|tr[g>>0])<<24>>24<0?0|ar[Z>>2]:255&l)>>>0?N:j;break e}if(l=i?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),r=0|ar[A>>2],f=(0|(o=0|ar[(i=r+12|0)>>2]))==(0|ar[r+16>>2]),(255&l)<<24>>24==(0|tr[((0|tr[g>>0])<0?0|ar[N>>2]:N)>>0])){f?jb[127&ar[40+(0|ar[r>>2])>>2]](r):(ar[i>>2]=o+1,hf(0|tr[o>>0])),l=1<((l=0|tr[g>>0])<<24>>24<0?0|ar[Z>>2]:255&l)>>>0?N:j;break e}if((255&(l=f?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[o>>0])))<<24>>24!=(0|tr[((0|tr[p>>0])<0?0|ar[_>>2]:_)>>0])){H=103;break A}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,hf(0|tr[i>>0])),l=(tr[t>>0]=1)<((l=0|tr[p>>0])<<24>>24<0?0|ar[y>>2]:255&l)>>>0?_:j}break;case 2:if(!(z>>>0<2|o)&&!(u|2==(0|z)&0!=(0|tr[h>>0]))){l=0;break e}l=(r=0|tr[b>>0])<<24>>24<0,U=0|ar[R>>2],T=i=l?U:R;r:do{if(0!=(0|z)&&(0|cr[X+(z+-1)>>0])<2){for(l=i+(l?0|ar[s>>2]:255&r)|0,M=T;(0|(o=M))!=(0|l)&&!((f=0|tr[o>>0])<<24>>24<=-1)&&8192&or[(0|ar[m>>2])+(f<<24>>24<<1)>>1];)M=o+1|0;if((f=M-T|0)>>>0<=(o=(l=(o=0|tr[d>>0])<<24>>24<0)?0|ar[k>>2]:255&o)>>>0)for(l=(o=(l?0|ar[Y>>2]:Y)+o|0)+(0-f)|0;;){if((0|l)==(0|o)){i=M,l=U,o=S=O;break r}if((0|tr[l>>0])!=(0|tr[i>>0])){i=T,l=U,o=S=O;break r}i=i+1|0,l=l+1|0}else i=T,l=U,o=S=O}else i=T,l=U,o=S=O}while(0);r:for(;l=((M=r<<24>>24<0)?l:R)+(M?0|ar[s>>2]:255&r)|0,(0|(M=i))!=(0|l);){l=0|ar[A>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[A>>2]=0,r=1;break}r=0==(0|ar[A>>2]);break}r=1}while(0);do{if(o){if(0|Mf(l=(0|(l=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[l>>0]),-1)){l=ar[e>>2]=0,H=132;break}if(r^0==(0|S)){f=l=S;break}l=M;break r}l=S,H=132}while(0);if(132==(0|H)){if(H=0,r){l=M;break}f=0}if(r=0|ar[A>>2],(255&(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[i>>0])))<<24>>24!=(0|tr[M>>0])){l=M;break}r=0|ar[A>>2],(0|(o=0|ar[(i=r+12|0)>>2]))==(0|ar[r+16>>2])?jb[127&ar[40+(0|ar[r>>2])>>2]](r):(ar[i>>2]=o+1,hf(0|tr[o>>0])),S=l,i=M+1|0,r=0|tr[b>>0],l=0|ar[R>>2],o=f}if(u&&(0|l)!=(((S=(O=0|tr[b>>0])<<24>>24<0)?0|ar[R>>2]:R)+(S?0|ar[s>>2]:255&O)|0)){H=144;break A}l=j;break;case 4:T=0,o=l=O;r:for(;;){r=0|ar[A>>2];do{if(r){if(0|Mf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[i>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(o){if(0|Mf(r=(0|(r=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[r>>0]),-1)){l=ar[e>>2]=0,H=158;break}if(i^0==(0|l)){M=f=l;break}o=l;break r}H=158}while(0);if(158==(0|H)){if(H=0,i){o=l;break}f=l,M=0}if(l=0|ar[A>>2],-1<(r=255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24&&0!=(2048&or[(0|ar[m>>2])+(l<<24>>24<<1)>>1]))(0|(l=0|ar[c>>2]))==(0|ar[B>>2])&&(li(a,c,B),l=0|ar[c>>2]),ar[c>>2]=l+1,tr[l>>0]=r,l=T+1|0;else{if(O=0|tr[w>>0],!(r<<24>>24==(0|tr[I>>0])&(0|T?0!=(0|(O<<24>>24<0?0|ar[v>>2]:255&O)):0))){o=f;break}(0|(l=0|ar[G>>2]))==(0|ar[E>>2])&&(ui(D,G,E),l=0|ar[G>>2]),ar[G>>2]=l+4,ar[l>>2]=T,l=0}r=0|ar[A>>2],(0|(o=0|ar[(i=r+12|0)>>2]))!=(0|ar[r+16>>2])?(ar[i>>2]=o+1,hf(0|tr[o>>0]),T=l,l=f,o=M):(jb[127&ar[40+(0|ar[r>>2])>>2]](r),T=l,l=f,o=M)}l=0|ar[G>>2],0|T&&(0|ar[D>>2])!=(0|l)&&((0|l)==(0|ar[E>>2])&&(ui(D,G,E),l=0|ar[G>>2]),ar[G>>2]=l+4,ar[l>>2]=T);r:do{if(0<(0|ar[C>>2])){l=0|ar[A>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[A>>2]=0,r=1;break}r=0==(0|ar[A>>2]);break}r=1}while(0);do{if(o){if(0|Mf(l=(0|(l=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[l>>0]),-1)){ar[e>>2]=0,H=193;break}if(r)break;H=232;break A}H=193}while(0);if(193==(0|H)){if(H=0,r){H=232;break A}o=0}if(l=0|ar[A>>2],(255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24!=(0|tr[W>>0])){H=232;break A}for(l=0|ar[A>>2],l=((0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,hf(0|tr[i>>0])),o);;){if((0|ar[C>>2])<=0)break r;r=0|ar[A>>2];do{if(r){if(0|Mf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[i>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(o){if(0|Mf(r=(0|(r=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[r>>0]),-1)){l=ar[e>>2]=0,H=216;break}if(i^0==(0|l)){o=f=l;break}H=232;break A}H=216}while(0);if(216==(0|H)){if(H=0,i){H=232;break A}f=l,o=0}if(l=0|ar[A>>2],(255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24<=-1){H=232;break A}if(!(2048&or[(0|ar[m>>2])+(l<<24>>24<<1)>>1])){H=232;break A}(0|ar[c>>2])==(0|ar[B>>2])&&li(a,c,B),l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),r=0|ar[c>>2],ar[c>>2]=r+1,tr[r>>0]=l,ar[C>>2]=(0|ar[C>>2])-1,l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))!=(0|ar[l+16>>2])?(ar[r>>2]=i+1,hf(0|tr[i>>0]),l=f):(jb[127&ar[40+(0|ar[l>>2])>>2]](l),l=f)}}}while(0);if((0|ar[c>>2])==(0|ar[a>>2])){H=232;break A}l=j;break;default:l=j}}while(0);e:do{if(46==(0|H))for(;;){r=(H=0)|ar[A>>2];do{if(r){if(0|Mf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|hf(0|tr[i>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(o){if(0|Mf(r=(0|(r=0|ar[o+12>>2]))==(0|ar[o+16>>2])?0|jb[127&ar[36+(0|ar[o>>2])>>2]](o):0|hf(0|tr[r>>0]),-1)){l=ar[e>>2]=0,H=59;break}if(i^0==(0|l)){o=f=l;break}l=j;break e}H=59}while(0);if(59==(0|H)){if(H=0,i){l=j;break e}f=l,o=0}if(l=0|ar[A>>2],(255&(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0])))<<24>>24<=-1){l=j;break e}if(!(8192&or[(0|ar[m>>2])+(l<<24>>24<<1)>>1])){l=j;break e}l=0|ar[A>>2],_u(Y,255&(l=(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+1,0|hf(0|tr[i>>0])))),l=f,H=46}}while(0);j=l,z=z+1|0}A:do{if(44==(0|H))ar[n>>2]=4|ar[n>>2],r=0;else if(103==(0|H))ar[n>>2]=4|ar[n>>2],r=0;else if(144==(0|H))ar[n>>2]=4|ar[n>>2],r=0;else if(232==(0|H))ar[n>>2]=4|ar[n>>2],r=0;else if(234==(0|H)){e:do{if(o){f=j+11|0,M=j+4|0,o=1;r:for(;;){if((l=0|tr[f>>0])<<24>>24<0?l=0|ar[M>>2]:l&=255,l>>>0<=o>>>0)break e;l=0|ar[A>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);l=0|ar[e>>2];do{if(l){if(0|Mf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),-1)){ar[e>>2]=0,H=253;break}if(i)break;break r}H=253}while(0);if(253==(0|H)&&(H=0,i))break;if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|hf(0|tr[r>>0]),r=(0|tr[f>>0])<0?0|ar[j>>2]:j,(255&l)<<24>>24!=(0|tr[r+o>>0]))break;l=o+1|0,r=0|ar[A>>2],(0|(o=0|ar[(i=r+12|0)>>2]))!=(0|ar[r+16>>2])?(ar[i>>2]=o+1,hf(0|tr[o>>0]),o=l):(jb[127&ar[40+(0|ar[r>>2])>>2]](r),o=l)}ar[n>>2]=4|ar[n>>2],r=0;break A}}while(0);if((0|(r=0|ar[D>>2]))!=(0|(l=0|ar[G>>2]))){if(ar[V>>2]=0,gn(F,r,l,V),0|ar[V>>2]){ar[n>>2]=4|ar[n>>2],r=0;break}r=1;break}r=1}}while(0);return Bu(Y),Bu(_),Bu(N),Bu(R),Bu(F),l=0|ar[D>>2],(ar[D>>2]=0)|l&&is[511&ar[Q>>2]](l),ur=J,0|r}function ci(A,e,r){return(e|=0)>>>0<=(A|=0)>>>0&A>>>0<(r|=0)>>>0|0}function li(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0;t=444!=(0|ar[(f=(A|=0)+4|0)>>2]),n=0|ar[A>>2],o=0==(0|(o=(o=(0|ar[r>>2])-n|0)>>>0<2147483647?o<<1:-1))?1:o,i=(0|ar[e>>2])-n|0,(n=0|Ec(t?n:0,o))||gu(),t?ar[A>>2]=n:(t=0|ar[A>>2],ar[A>>2]=n,t&&(is[511&ar[f>>2]](t),n=0|ar[A>>2])),ar[f>>2]=445,ar[e>>2]=n+i,ar[r>>2]=(0|ar[A>>2])+o}function ui(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0;t=444!=(0|ar[(f=(A|=0)+4|0)>>2]),n=0|ar[A>>2],o=0==(0|(o=(o=(0|ar[r>>2])-n|0)>>>0<2147483647?o<<1:-1))?4:o,i=(0|ar[e>>2])-n>>2,(n=0|Ec(t?n:0,o))||gu(),t?ar[A>>2]=n:(t=0|ar[A>>2],ar[A>>2]=n,t&&(is[511&ar[f>>2]](t),n=0|ar[A>>2])),ar[f>>2]=445,ar[e>>2]=n+(i<<2),ar[r>>2]=(0|ar[A>>2])+(o>>>2<<2)}function bi(A,e,r,i,f,n,t,o,a,c,l){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0;for(G=ur=(D=ur)+31&-32,ur=ur+512|0,z=104+G|0,Q=88+G|0,C=80+G|0,B=76+G|0,E=504+G|0,X=72+G|0,W=68+G|0,V=56+G|0,F=44+G|0,R=32+G|0,N=20+G|0,_=8+G|0,I=4+G|0,ar[(y=96+G|0)>>2]=l,ar[Q>>2]=z,ar[(Y=4+Q|0)>>2]=444,ar[C>>2]=z,ar[B>>2]=z+400,ar[V>>2]=0,ar[4+V>>2]=0,l=ar[8+V>>2]=0;3!=(0|l);)l=l+1|(ar[V+(l<<2)>>2]=0);for(ar[F>>2]=0,ar[4+F>>2]=0,l=ar[8+F>>2]=0;3!=(0|l);)l=l+1|(ar[F+(l<<2)>>2]=0);for(ar[R>>2]=0,ar[4+R>>2]=0,l=ar[8+R>>2]=0;3!=(0|l);)l=l+1|(ar[R+(l<<2)>>2]=0);for(ar[N>>2]=0,ar[4+N>>2]=0,l=ar[8+N>>2]=0;3!=(0|l);)l=l+1|(ar[N+(l<<2)>>2]=0);for(ar[_>>2]=0,ar[4+_>>2]=0,l=ar[8+_>>2]=0;3!=(0|l);)l=l+1|(ar[_+(l<<2)>>2]=0);!function(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,l=12+u|0,A|=0){for(e=0|un(e,60968),fs[63&ar[44+(0|ar[e>>2])>>2]](l,e),A=0|ar[l>>2],tr[r>>0]=A,tr[r+1>>0]=A>>8,tr[r+2>>0]=A>>16,tr[r+3>>0]=A>>24,fs[63&ar[32+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=a+8+3|0)>>0])<0?(r=0|ar[a>>2],ar[l>>2]=0,ln(r,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Qu(u),fs[63&ar[28+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=o+8+3|0)>>0])<0?(a=0|ar[o>>2],ar[l>>2]=0,ln(a,l),ar[o+4>>2]=0):(ar[l>>2]=0,ln(o,l),tr[A>>0]=0),Mu(o,0),ar[o>>2]=ar[u>>2],ar[o+4>>2]=ar[4+u>>2],ar[o+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Qu(u),A=0|jb[127&ar[12+(0|ar[e>>2])>>2]](e),ar[i>>2]=A,A=0|jb[127&ar[16+(0|ar[e>>2])>>2]](e),ar[f>>2]=A,fs[63&ar[20+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=n+11|0)>>0])<0?(A=0|ar[n>>2],tr[l>>0]=0,Qf(A,l),ar[n+4>>2]=0):(tr[l>>0]=0,Qf(n,l),tr[A>>0]=0),n),Cu(n,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[24+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=t+8+3|0)>>0])<0?(n=0|ar[t>>2],ar[l>>2]=0,ln(n,l),ar[t+4>>2]=0):(ar[l>>2]=0,ln(t,l),tr[A>>0]=0),Mu(t,0),ar[t>>2]=ar[u>>2],ar[t+4>>2]=ar[4+u>>2],ar[t+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;Qu(u),A=0|jb[127&ar[36+(0|ar[e>>2])>>2]](e)}else{for(e=0|un(e,60960),fs[63&ar[44+(0|ar[e>>2])>>2]](l,e),A=0|ar[l>>2],tr[r>>0]=A,tr[r+1>>0]=A>>8,tr[r+2>>0]=A>>16,tr[r+3>>0]=A>>24,fs[63&ar[32+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=a+8+3|0)>>0])<0?(r=0|ar[a>>2],ar[l>>2]=0,ln(r,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Qu(u),fs[63&ar[28+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=o+8+3|0)>>0])<0?(a=0|ar[o>>2],ar[l>>2]=0,ln(a,l),ar[o+4>>2]=0):(ar[l>>2]=0,ln(o,l),tr[A>>0]=0),Mu(o,0),ar[o>>2]=ar[u>>2],ar[o+4>>2]=ar[4+u>>2],ar[o+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Qu(u),A=0|jb[127&ar[12+(0|ar[e>>2])>>2]](e),ar[i>>2]=A,A=0|jb[127&ar[16+(0|ar[e>>2])>>2]](e),ar[f>>2]=A,fs[63&ar[20+(0|ar[e>>2])>>2]](u,e),A=((0|tr[(A=n+11|0)>>0])<0?(A=0|ar[n>>2],tr[l>>0]=0,Qf(A,l),ar[n+4>>2]=0):(tr[l>>0]=0,Qf(n,l),tr[A>>0]=0),n),Cu(n,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;for(Bu(u),fs[63&ar[24+(0|ar[e>>2])>>2]](u,e),(0|tr[(A=t+8+3|0)>>0])<0?(n=0|ar[t>>2],ar[l>>2]=0,ln(n,l),ar[t+4>>2]=0):(ar[l>>2]=0,ln(t,l),tr[A>>0]=0),Mu(t,0),ar[t>>2]=ar[u>>2],ar[t+4>>2]=ar[4+u>>2],ar[t+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)ar[u+(A<<2)>>2]=0,A=A+1|0;Qu(u),A=0|jb[127&ar[36+(0|ar[e>>2])>>2]](e)}ar[c>>2]=A,ur=b}(r,i,E,X,W,V,F,R,N,I),ar[c>>2]=ar[a>>2],m=8+R+3|0,g=4+R|0,Z=8+N+3|0,p=4+N|0,u=0!=(512&f|0),b=8+F+3|0,s=4+F|0,d=8+_+3|0,k=4+_|0,h=3+E|0,w=11+V|0,v=4+V|0,O=z=0;A:for(;;){if(f=0!=(0|z),4<=O>>>0){j=229;break}l=0|ar[A>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);r=0|ar[e>>2];do{if(r){if(0|Uf(l=(0|(l=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[l>>2]),-1)){ar[e>>2]=0,j=31;break}if(i){S=r;break}j=229;break A}j=31}while(0);if(31==(0|j)){if(j=0,i){j=229;break}S=0}l=3!=(0|O);e:do{switch(0|tr[E+O>>0]){case 1:if(l){if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),!(0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,8192,l))){j=43;break A}l=0|ar[A>>2],Ou(_,l=(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,0|gf(0|ar[i>>2]))),f=l=S,j=45}else l=z;break;case 0:l?(f=l=S,j=45):l=z;break;case 3:if((0|(l=(l=0|tr[m>>0])<<24>>24<0?0|ar[g>>2]:255&l))==(0-(f=(f=0|tr[Z>>0])<<24>>24<0?0|ar[p>>2]:255&f)|0))l=z;else{if(J=0==(0|l),l=0|ar[A>>2],i=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2]),J|0==(0|f)){if(l=i?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),J){if((0|l)!=(0|ar[((0|tr[Z>>0])<0?0|ar[N>>2]:N)>>2])){l=z;break e}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,gf(0|ar[i>>2])),l=(tr[t>>0]=1)<((l=0|tr[Z>>0])<<24>>24<0?0|ar[p>>2]:255&l)>>>0?N:z;break e}if((0|l)!=(0|ar[((0|tr[m>>0])<0?0|ar[R>>2]:R)>>2])){tr[t>>0]=1,l=z;break e}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,gf(0|ar[i>>2])),l=1<((l=0|tr[m>>0])<<24>>24<0?0|ar[g>>2]:255&l)>>>0?R:z;break e}if(l=i?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),r=0|ar[A>>2],J=(0|(f=0|ar[(i=r+12|0)>>2]))==(0|ar[r+16>>2]),(0|l)==(0|ar[((0|tr[m>>0])<0?0|ar[R>>2]:R)>>2])){J?jb[127&ar[40+(0|ar[r>>2])>>2]](r):(ar[i>>2]=f+4,gf(0|ar[f>>2])),l=1<((l=0|tr[m>>0])<<24>>24<0?0|ar[g>>2]:255&l)>>>0?R:z;break e}if((0|(l=J?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[f>>2])))!=(0|ar[((0|tr[Z>>0])<0?0|ar[N>>2]:N)>>2])){j=101;break A}l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,gf(0|ar[i>>2])),l=(tr[t>>0]=1)<((l=0|tr[Z>>0])<<24>>24<0?0|ar[p>>2]:255&l)>>>0?N:z}break;case 2:if(!(O>>>0<2|f)&&!(u|2==(0|O)&0!=(0|tr[h>>0]))){l=0;break e}i=0|tr[b>>0],f=0|ar[F>>2],l=i<<24>>24<0?f:F;r:do{if(0!=(0|O)&&(0|cr[E+(O+-1)>>0])<2){for(;(0|(r=l))!=(((U=i<<24>>24<0)?f:F)+((U?0|ar[s>>2]:255&i)<<2)|0);){if(!(0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,8192,0|ar[r>>2]))){j=108;break}l=r+4|0,i=0|tr[b>>0],f=0|ar[F>>2]}if(108==(0|j)&&(i=(j=0)|tr[b>>0],f=0|ar[F>>2]),T=l-(U=J=i<<24>>24<0?f:F)>>2,(M=(r=(M=0|tr[d>>0])<<24>>24<0)?0|ar[k>>2]:255&M)>>>0>>0)r=U,J=T=S;else for(r=(M=(r?0|ar[_>>2]:_)+(M<<2)|0)+(0-T<<2)|0;;){if((0|r)==(0|M)){r=l,J=T=S;break r}if((0|ar[r>>2])!=(0|ar[J>>2])){r=U,J=T=S;break r}J=J+4|0,r=r+4|0}}else r=l,J=T=S}while(0);r:for(;(0|(M=r))!=(0|(l=((l=i<<24>>24<0)?f:F)+((l?0|ar[s>>2]:255&i)<<2)|0));){l=0|ar[A>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[A>>2]=0,r=1;break}r=0==(0|ar[A>>2]);break}r=1}while(0);do{if(J){if(0|Uf(l=(0|(l=0|ar[J+12>>2]))==(0|ar[J+16>>2])?0|jb[127&ar[36+(0|ar[J>>2])>>2]](J):0|gf(0|ar[l>>2]),-1)){l=ar[e>>2]=0,j=129;break}if(r^0==(0|T)){J=l=T;break}l=M;break r}l=T,j=129}while(0);if(129==(0|j)){if(j=0,r){l=M;break}J=0}if(r=0|ar[A>>2],(0|(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[i>>2])))!=(0|ar[M>>2])){l=M;break}r=0|ar[A>>2],(0|(f=0|ar[(i=r+12|0)>>2]))==(0|ar[r+16>>2])?jb[127&ar[40+(0|ar[r>>2])>>2]](r):(ar[i>>2]=f+4,gf(0|ar[f>>2])),T=l,r=M+4|0,i=0|tr[b>>0],f=0|ar[F>>2]}if(u&&(0|l)!=(((U=(S=0|tr[b>>0])<<24>>24<0)?0|ar[F>>2]:F)+((U?0|ar[s>>2]:255&S)<<2)|0)){j=141;break A}l=z;break;case 4:T=0,f=l=S;r:for(;;){r=0|ar[A>>2];do{if(r){if(0|Uf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[i>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(f){if(0|Uf(r=(0|(r=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|gf(0|ar[r>>2]),-1)){l=ar[e>>2]=0,j=155;break}if(i^0==(0|l)){M=J=l;break}f=l;break r}j=155}while(0);if(155==(0|j)){if(j=0,i){f=l;break}J=l,M=0}if(l=0|ar[A>>2],r=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,2048,r))(0|(l=0|ar[c>>2]))==(0|ar[y>>2])&&(di(a,c,y),l=0|ar[c>>2]),ar[c>>2]=l+4,ar[l>>2]=r,l=T+1|0;else{if(S=0|tr[w>>0],!((0|r)==(0|ar[W>>2])&(0|T?0!=(0|(S<<24>>24<0?0|ar[v>>2]:255&S)):0))){f=J;break}(0|(l=0|ar[C>>2]))==(0|ar[B>>2])&&(ui(Q,C,B),l=0|ar[C>>2]),ar[C>>2]=l+4,ar[l>>2]=T,l=0}r=0|ar[A>>2],(0|(f=0|ar[(i=r+12|0)>>2]))!=(0|ar[r+16>>2])?(ar[i>>2]=f+4,gf(0|ar[f>>2]),T=l,l=J,f=M):(jb[127&ar[40+(0|ar[r>>2])>>2]](r),T=l,l=J,f=M)}l=0|ar[C>>2],0|T&&(0|ar[Q>>2])!=(0|l)&&((0|l)==(0|ar[B>>2])&&(ui(Q,C,B),l=0|ar[C>>2]),ar[C>>2]=l+4,ar[l>>2]=T);r:do{if(0<(0|ar[I>>2])){l=0|ar[A>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[A>>2]=0,r=1;break}r=0==(0|ar[A>>2]);break}r=1}while(0);do{if(f){if(0|Uf(l=(0|(l=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|gf(0|ar[l>>2]),-1)){ar[e>>2]=0,j=189;break}if(r)break;j=227;break A}j=189}while(0);if(189==(0|j)){if(j=0,r){j=227;break A}f=0}if(l=0|ar[A>>2],(0|(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2])))!=(0|ar[X>>2])){j=227;break A}for(l=0|ar[A>>2],l=((0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,gf(0|ar[i>>2])),f);;){if((0|ar[I>>2])<=0)break r;r=0|ar[A>>2];do{if(r){if(0|Uf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[i>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(f){if(0|Uf(r=(0|(r=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|gf(0|ar[r>>2]),-1)){l=ar[e>>2]=0,j=212;break}if(i^0==(0|l)){f=J=l;break}j=227;break A}j=212}while(0);if(212==(0|j)){if(j=0,i){j=227;break A}J=l,f=0}if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),!(0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,2048,l))){j=227;break A}(0|ar[c>>2])==(0|ar[y>>2])&&di(a,c,y),l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),r=0|ar[c>>2],ar[c>>2]=r+4,ar[r>>2]=l,ar[I>>2]=(0|ar[I>>2])-1,l=0|ar[A>>2],(0|(i=0|ar[(r=l+12|0)>>2]))!=(0|ar[l+16>>2])?(ar[r>>2]=i+4,gf(0|ar[i>>2]),l=J):(jb[127&ar[40+(0|ar[l>>2])>>2]](l),l=J)}}}while(0);if((0|ar[c>>2])==(0|ar[a>>2])){j=227;break A}l=z;break;default:l=z}}while(0);e:do{if(45==(0|j))for(;;){r=(j=0)|ar[A>>2];do{if(r){if(0|Uf(r=(0|(i=0|ar[r+12>>2]))==(0|ar[r+16>>2])?0|jb[127&ar[36+(0|ar[r>>2])>>2]](r):0|gf(0|ar[i>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);do{if(f){if(0|Uf(r=(0|(r=0|ar[f+12>>2]))==(0|ar[f+16>>2])?0|jb[127&ar[36+(0|ar[f>>2])>>2]](f):0|gf(0|ar[r>>2]),-1)){l=ar[e>>2]=0,j=58;break}if(i^0==(0|l)){f=J=l;break}l=z;break e}j=58}while(0);if(58==(0|j)){if(j=0,i){l=z;break e}J=l,f=0}if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),!(0|xb[63&ar[12+(0|ar[o>>2])>>2]](o,8192,l))){l=z;break e}l=0|ar[A>>2],Ou(_,l=(0|(i=0|ar[(r=l+12|0)>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[40+(0|ar[l>>2])>>2]](l):(ar[r>>2]=i+4,0|gf(0|ar[i>>2]))),l=J,j=45}}while(0);z=l,O=O+1|0}A:do{if(43==(0|j))ar[n>>2]=4|ar[n>>2],r=0;else if(101==(0|j))ar[n>>2]=4|ar[n>>2],r=0;else if(141==(0|j))ar[n>>2]=4|ar[n>>2],r=0;else if(227==(0|j))ar[n>>2]=4|ar[n>>2],r=0;else if(229==(0|j)){e:do{if(f){J=z+8+3|0,M=z+4|0,f=1;r:for(;;){if((l=0|tr[J>>0])<<24>>24<0?l=0|ar[M>>2]:l&=255,l>>>0<=f>>>0)break e;l=0|ar[A>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[A>>2]=0,i=1;break}i=0==(0|ar[A>>2]);break}i=1}while(0);l=0|ar[e>>2];do{if(l){if(0|Uf(l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),-1)){ar[e>>2]=0,j=248;break}if(i)break;break r}j=248}while(0);if(248==(0|j)&&(j=0,i))break;if(l=0|ar[A>>2],l=(0|(r=0|ar[l+12>>2]))==(0|ar[l+16>>2])?0|jb[127&ar[36+(0|ar[l>>2])>>2]](l):0|gf(0|ar[r>>2]),r=(0|tr[J>>0])<0?0|ar[z>>2]:z,(0|l)!=(0|ar[r+(f<<2)>>2]))break;l=f+1|0,r=0|ar[A>>2],(0|(f=0|ar[(i=r+12|0)>>2]))!=(0|ar[r+16>>2])?(ar[i>>2]=f+4,gf(0|ar[f>>2]),f=l):(jb[127&ar[40+(0|ar[r>>2])>>2]](r),f=l)}ar[n>>2]=4|ar[n>>2],r=0;break A}}while(0);if((0|(r=0|ar[Q>>2]))!=(0|(l=0|ar[C>>2]))){if(ar[G>>2]=0,gn(V,r,l,G),0|ar[G>>2]){ar[n>>2]=4|ar[n>>2],r=0;break}r=1;break}r=1}}while(0);return Qu(_),Qu(N),Qu(R),Qu(F),Bu(V),l=0|ar[Q>>2],(ar[Q>>2]=0)|l&&is[511&ar[Y>>2]](l),ur=D,0|r}function si(A,e,r){return(e|=0)>>>0<=(A|=0)>>>0&A>>>0<(r|=0)>>>0|0}function di(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0;t=444!=(0|ar[(f=(A|=0)+4|0)>>2]),n=0|ar[A>>2],o=0==(0|(o=(o=(0|ar[r>>2])-n|0)>>>0<2147483647?o<<1:-1))?4:o,i=(0|ar[e>>2])-n>>2,(n=0|Ec(t?n:0,o))||gu(),t?ar[A>>2]=n:(t=0|ar[A>>2],ar[A>>2]=n,t&&(is[511&ar[f>>2]](t),n=0|ar[A>>2])),ar[f>>2]=445,ar[e>>2]=n+(i<<2),ar[r>>2]=(0|ar[A>>2])+(o>>>2<<2)}function ki(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b,s=0;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,l=12+u|0,A|=0){if(s=0|un(r,60952),e){for(fs[63&ar[44+(0|ar[s>>2])>>2]](l,s),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[32+(0|ar[s>>2])>>2]](u,s),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),r=s}else{for(fs[63&ar[40+(0|ar[s>>2])>>2]](l,s),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[28+(0|ar[s>>2])>>2]](u,s),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),r=s}for(A=0|jb[127&ar[12+(0|ar[s>>2])>>2]](s),tr[f>>0]=A,A=0|jb[127&ar[16+(0|ar[s>>2])>>2]](s),tr[n>>0]=A,fs[63&ar[20+(0|ar[r>>2])>>2]](u,s),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);for(Bu(u),fs[63&ar[24+(0|ar[r>>2])>>2]](u,s),A=((0|tr[(A=o+11|0)>>0])<0?(A=0|ar[o>>2],tr[l>>0]=0,Qf(A,l),ar[o+4>>2]=0):(tr[l>>0]=0,Qf(o,l),tr[A>>0]=0),o),Cu(o,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),A=0|jb[127&ar[36+(0|ar[s>>2])>>2]](s)}else{if(s=0|un(r,60944),e){for(fs[63&ar[44+(0|ar[s>>2])>>2]](l,s),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[32+(0|ar[s>>2])>>2]](u,s),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),r=s}else{for(fs[63&ar[40+(0|ar[s>>2])>>2]](l,s),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[28+(0|ar[s>>2])>>2]](u,s),A=((0|tr[(A=a+11|0)>>0])<0?(A=0|ar[a>>2],tr[l>>0]=0,Qf(A,l),ar[a+4>>2]=0):(tr[l>>0]=0,Qf(a,l),tr[A>>0]=0),a),Cu(a,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),r=s}for(A=0|jb[127&ar[12+(0|ar[s>>2])>>2]](s),tr[f>>0]=A,A=0|jb[127&ar[16+(0|ar[s>>2])>>2]](s),tr[n>>0]=A,fs[63&ar[20+(0|ar[r>>2])>>2]](u,s),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);for(Bu(u),fs[63&ar[24+(0|ar[r>>2])>>2]](u,s),A=((0|tr[(A=o+11|0)>>0])<0?(A=0|ar[o>>2],tr[l>>0]=0,Qf(A,l),ar[o+4>>2]=0):(tr[l>>0]=0,Qf(o,l),tr[A>>0]=0),o),Cu(o,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Bu(u),A=0|jb[127&ar[36+(0|ar[s>>2])>>2]](s)}ar[c>>2]=A,ur=b}function hi(A,e,r,i,f,n,t,o,a,c,l,u,b,s,d){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0,s|=0,d|=0;var k,h,w,v,m,g,Z,p,y,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0;for(ar[(r|=0)>>2]=A,k=s+11|0,y=s+4|0,h=b+11|0,w=b+4|0,v=0==(512&i|0),m=t+8|0,g=0<(0|d),Z=u+11|0,p=u+4|0,G=0;4!=(0|G);){A:do{switch(0|tr[a+G>>0]){case 0:ar[e>>2]=ar[r>>2];break;case 1:ar[e>>2]=ar[r>>2],I=0|Hb[31&ar[28+(0|ar[t>>2])>>2]](t,32),C=0|ar[r>>2],ar[r>>2]=C+1,tr[C>>0]=I;break;case 3:0|((B=(C=0|tr[k>>0])<<24>>24<0)?0|ar[y>>2]:255&C)&&(I=0|tr[(B?0|ar[s>>2]:s)>>0],C=0|ar[r>>2],ar[r>>2]=C+1,tr[C>>0]=I);break;case 2:if(!(v|0==(0|(E=(B=(E=0|tr[h>>0])<<24>>24<0)?0|ar[w>>2]:255&E)))){for(X=(C=B?0|ar[b>>2]:b)+E|0,B=0|ar[r>>2],E=C;(0|E)!=(0|X);)tr[B>>0]=0|tr[E>>0],B=B+1|0,E=E+1|0;ar[r>>2]=B}break;case 4:for(E=0|ar[r>>2],X=f=o?f+1|0:f;!(n>>>0<=X>>>0)&&!((B=0|tr[X>>0])<<24>>24<=-1)&&2048&or[(0|ar[m>>2])+(B<<24>>24<<1)>>1];)X=X+1|0;if(g){for(W=d;f>>>0>>0&(B=0<(0|W));)B=0|tr[(C=X+-1|0)>>0],I=0|ar[r>>2],ar[r>>2]=I+1,tr[I>>0]=B,W=W+-1|0,X=C;for(I=B?0|Hb[31&ar[28+(0|ar[t>>2])>>2]](t,48):0,B=W;W=0|ar[r>>2],ar[r>>2]=W+1,!((0|B)<=0);)tr[W>>0]=I,B=B+-1|0;tr[W>>0]=c}e:do{if((0|X)==(0|f))I=0|Hb[31&ar[28+(0|ar[t>>2])>>2]](t,48),C=0|ar[r>>2],ar[r>>2]=C+1,tr[C>>0]=I;else for(C=W=(I=0|((B=(C=0|tr[Z>>0])<<24>>24<0)?0|ar[p>>2]:255&C)?0|tr[(B?0|ar[u>>2]:u)>>0]:-1,0);;){if((0|X)==(0|f))break e;B=(0|C)==(0|I)?(I=0|ar[r>>2],ar[r>>2]=I+1,tr[I>>0]=l,I=(W=W+1|0)>>>0<((B=(I=0|tr[Z>>0])<<24>>24<0)?0|ar[p>>2]:255&I)>>>0?(I=0|tr[(B?0|ar[u>>2]:u)+W>>0])<<24>>24==127?-1:I<<24>>24:C,0):C,F=0|tr[(V=X+-1|0)>>0],C=0|ar[r>>2],ar[r>>2]=C+1,tr[C>>0]=F,C=B+1|0,X=V}}while(0);if((0|E)!=(0|(B=0|ar[r>>2])))for(;;){if((B=B+-1|0)>>>0<=E>>>0)break A;F=0|tr[E>>0],tr[E>>0]=0|tr[B>>0],tr[B>>0]=F,E=E+1|0}}}while(0);G=G+1|0}if(1<(f=(B=(f=0|tr[k>>0])<<24>>24<0)?0|ar[y>>2]:255&f)>>>0){for(E=(F=B?0|ar[s>>2]:s)+f|0,B=0|ar[r>>2],f=F;(0|(f=f+1|0))!=(0|E);)tr[B>>0]=0|tr[f>>0],B=B+1|0;ar[r>>2]=B}switch((176&i)<<24>>24){case 32:ar[e>>2]=ar[r>>2];break;case 16:break;default:ar[e>>2]=A}}function wi(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;A:do{if(36>>0)ar[(f=10364)>>2]=22,i=f=0;else{for(d=A+4|0,s=A+100|0;0!=(0|mi(n=(n=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=n+1,0|cr[n>>0]):0|vi(A))););e:do{switch(0|n){case 43:case 45:if(n=(45==(0|n))<<31>>31,(t=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0){ar[d>>2]=t+1,b=n,n=0|cr[t>>0];break e}b=n,n=0|vi(A);break e;default:b=0}}while(0);t=0==(0|e);do{if(16==(16|e)&48==(0|n)){if(120!=(32|(n=(n=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=n+1,0|cr[n>>0]):0|vi(A)))){if(t){e=8,l=46;break}l=32;break}if(n=(n=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=n+1,0|cr[n>>0]):0|vi(A),15<(0|cr[52625+n>>0])){if((i=0!=(0|ar[s>>2]))&&(ar[d>>2]=(0|ar[d>>2])-1),!r){nl(A,0),i=f=0;break A}if(!i){i=f=0;break A}ar[d>>2]=(0|ar[d>>2])-1,i=f=0;break A}e=16,l=46}else{if(e=t?10:e,!((0|cr[52625+n>>0])>>>0>>0)){0|ar[s>>2]&&(ar[d>>2]=(0|ar[d>>2])-1),nl(A,0),ar[(f=10364)>>2]=22,i=f=0;break A}l=32}}while(0);e:do{if(32==(0|l))if(10==(0|e)){if((e=n+-48|0)>>>0<10){for(n=0,t=e;n=(10*n|0)+t|0,(t=(e=(e=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=e+1,0|cr[e>>0]):0|vi(A))+-48|0)>>>0<10&n>>>0<429496729;);r=0}else e=n,r=n=0;if((o=e+-48|0)>>>0<10){t=e;do{if(e=0|nb(0|n,0|r,10,0),(u=~(c=((0|o)<0)<<31>>31))>>>0<(a=D)>>>0|(0|a)==(0|u)&~o>>>0>>0){e=10,l=72;break e}n=0|tb(0|e,0|a,0|o,0|c),r=D,o=(t=(e=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=e+1,0|cr[e>>0]):0|vi(A))+-48|0}while(o>>>0<10&(r>>>0<429496729|429496729==(0|r)&n>>>0<2576980378));9>>0?(t=b,e=r):(e=10,l=72)}else t=b,e=r}else l=46}while(0);e:do{if(46==(0|l)){if(!(e+-1&e)){if(l=0|tr[52881+((23*e|0)>>>5&7)>>0],(t=255&(r=0|tr[52625+n>>0]))>>>0>>0){for(n=0,o=t;n=o|n<>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=t+1,0|cr[t>>0]):0|vi(A),n>>>0<134217728&(o=255&(r=0|tr[52625+t>>0]))>>>0>>0;);o=0}else t=n,n=o=0;if(a=0|sb(-1,-1,0|l),e>>>0<=(255&r)>>>0|(c=D)>>>0>>0|(0|o)==(0|c)&a>>>0>>0){r=o,l=72;break}for(t=o;;){if(n=0|db(0|n,0|t,0|l),o=D,n|=255&r,t=(t=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=t+1,0|cr[t>>0]):0|vi(A),e>>>0<=(255&(r=0|tr[52625+t>>0]))>>>0|c>>>0>>0|(0|o)==(0|c)&a>>>0>>0){r=o,l=72;break e}t=o}}if((t=255&(r=0|tr[52625+n>>0]))>>>0>>0){for(n=0,o=t;n=o+(0|br(n,e))|0,t=(t=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=t+1,0|cr[t>>0]):0|vi(A),n>>>0<119304647&(o=255&(r=0|tr[52625+t>>0]))>>>0>>0;);o=0}else t=n,o=n=0;if((255&r)>>>0>>0)for(l=0|lb(-1,-1,0|e,0),u=D,c=o;;){if(u>>>0>>0|(0|c)==(0|u)&l>>>0>>0){r=c,l=72;break e}if(o=0|nb(0|n,0|c,0|e,0),4294967295<(a=D)>>>0|-1==(0|a)&~(r&=255)>>>0>>0){r=c,l=72;break e}if(n=0|tb(0|r,0,0|o,0|a),o=D,t=(t=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=t+1,0|cr[t>>0]):0|vi(A),e>>>0<=(255&(r=0|tr[52625+t>>0]))>>>0){r=o,l=72;break}c=o}else r=o,l=72}}while(0);if(72==(0|l))if((0|cr[52625+t>>0])>>>0>>0){for(;n=(n=0|ar[d>>2])>>>0<(0|ar[s>>2])>>>0?(ar[d>>2]=n+1,0|cr[n>>0]):0|vi(A),(0|cr[52625+n>>0])>>>0>>0;);ar[(t=10364)>>2]=34,t=0==(1&i|0)&!0?b:0,e=f,n=i}else t=b,e=r;if(0|ar[s>>2]&&(ar[d>>2]=(0|ar[d>>2])-1),!(e>>>0>>0|(0|e)==(0|f)&n>>>0>>0)){if(!(0!=(1&i|0)|!1|0!=(0|t))){ar[(d=10364)>>2]=34,i=0|tb(0|i,0|f,-1,-1),f=D;break}if(f>>>0>>0|(0|e)==(0|f)&i>>>0>>0){ar[(d=10364)>>2]=34;break}}i=0|ob(n^t|0,e^(i=((0|t)<0)<<31>>31)|0,0|t,0|i),f=D}}while(0);return D=f,0|i}function vi(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0;return!(0!=(0|(t=0|ar[(r=(A|=0)+104|0)>>2]))&&(0|ar[A+108>>2])>=(0|t))&&0<=(0|(e=0|gi(A)))?(i=0|ar[r>>2],r=A+8|0,i?i=((t=n=0|ar[r>>2])-(r=0|ar[A+4>>2])|0)<(0|(i=i-(0|ar[(f=A+108|0)>>2])|0))?n=t:(n=r+(i+-1)|0,t):(f=A+108|0,n=i=0|ar[r>>2],r=0|ar[A+4>>2]),ar[A+100>>2]=n,0|i&&(ar[f>>2]=i+1-r+(0|ar[f>>2])),(0|cr[(r=r+-1|0)>>0])!=(0|e)&&(tr[r>>0]=e)):o=4,4==(0|o)&&(ar[A+100>>2]=0,e=-1),0|e}function mi(A){return 1&(32==(0|(A|=0))|(A+-9|0)>>>0<5)|0}function gi(A){var e,r;return e=ur=(r=ur)+31&-32,ur=ur+16|0,A=0==(0|Zi(A|=0))&&1==(0|xb[63&ar[A+32>>2]](A,e,1))?0|cr[e>>0]:-1,ur=r,0|A}function Zi(A){var e=0,r=0;return r=0|tr[(e=(A|=0)+74|0)>>0],tr[e>>0]=r+255|r,r=A+28|0,(0|ar[(e=A+20|0)>>2])>>>0>(0|ar[r>>2])>>>0&&xb[63&ar[A+36>>2]](A,0,0),ar[A+16>>2]=0,ar[r>>2]=0,(ar[e>>2]=0)|(e=4&(e=0|ar[A>>2])?(ar[A>>2]=32|e,-1):(r=(0|ar[A+44>>2])+(0|ar[A+48>>2])|0,ar[A+8>>2]=r,ar[A+4>>2]=r,e<<27>>31))}function pi(A,e,r){var i,f,n;return 0|(0|(i=A|=0,f=e|=0,n=r|=0,0|(n=0|fl(i|=0,f|=0,n|=0,0,-2147483648))))}function yi(){return 0|(0|ar[ar[2622]>>2]?4:1)}function Bi(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o;return f=ur=(i=ur)+31&-32,ur=ur+16|0,ar[f>>2]=r,r=0|(n=A,t=e,o=f,0|Yc(n|=0,2147483647,t|=0,o|=0)),ur=i,0|r}function Ei(A,e){A|=0,e|=0;var r,i;return i=ur=(r=ur)+31&-32,ur=ur+16|0,ar[i>>2]=A,ar[4+i>>2]=e,e=0|Ic(0|M(91,0|i)),ur=r,0|e}function Xi(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0;f=0|ar[(e|=0)>>2],a=0!=(0|i)&&0!=(0|(n=0|ar[i>>2]))?A?(ar[i>>2]=0,o=r,t=f,43):(t=f,i=r,25):5;A:do{if(5==(0|a)){if(i=0!=(0|A),0|ar[ar[(a=10488)>>2]>>2]){if(i){i=r,a=15;break}i=r,a=14;break}if(!i){r=0|Vc(f),a=59;break}e:do{if(r){for(i=r;(n=0|tr[f>>0])<<24>>24;){if(f=f+1|0,ar[A>>2]=n<<24>>24&57343,!(i=i+-1|0))break e;A=A+4|0}ar[A>>2]=0,r=r-i|(ar[e>>2]=0),a=59;break A}}while(0);ar[e>>2]=f,a=59}}while(0);A:for(;;){e:do{if(14==(0|a)){for(;;){if(((255&(n=0|tr[f>>0]))-1|0)>>>0<127&&0==(3&f|0)&&(n=255&(a=0|ar[f>>2]),!(-2139062144&(a+-16843009|a)))){for(;i=i+-4|0,!(-2139062144&((n=0|ar[(f=f+4|0)>>2])+-16843009|n)|0););n&=255}if(127<=((n&=255)+-1|0)>>>0)break;f=f+1|0,i=i+-1|0}if(!(50<(n=n+-194|0)>>>0)){n=0|ar[9896+(n<<2)>>2],t=f+1|0,a=25;continue A}a=53}else{if(15==(0|a)){r:do{if(i){for(;;){n=0|tr[f>>0];do{if(((255&n)-1|0)>>>0<127&&4>>0&0==(3&f|0)){for(;;){if(-2139062144&((n=0|ar[f>>2])+-16843009|n)|0){a=38;break}if(ar[A>>2]=255&n,ar[A+4>>2]=cr[f+1>>0],ar[A+8>>2]=cr[f+2>>0],t=f+4|0,n=A+16|0,ar[A+12>>2]=cr[f+3>>0],!(4<(i=i+-4|0)>>>0)){a=37;break}A=n,f=t}if(37==(0|a)){A=n,n=0|tr[(f=t)>>0];break}if(38==(0|a)){n&=255;break}}}while(0);if(127<=((n&=255)+-1|0)>>>0)break;if(f=f+1|0,ar[A>>2]=n,!(i=i+-1|0))break r;A=A+4|0}if(50<(n=n+-194|0)>>>0){a=53;break e}n=0|ar[9896+(n<<2)>>2],o=i,t=f+1|0,a=43;continue A}}while(0);ar[e>>2]=f,a=59;continue A}if(25==(0|a)){if(!(7<((a=(0|cr[t>>0])>>>3)+-16|a+(n>>26))>>>0)){if(f=t+1|0,33554432&n){if((-64&tr[f>>0])<<24>>24!=-128){f=t,a=52;break}if(f=t+2|0,524288&n){if((-64&tr[f>>0])<<24>>24!=-128){f=t,a=52;break}f=t+3|0}}i=i+-1|0,a=14;continue A}f=t,a=52}else if(43==(0|a)){if(!(7<((f=(i=(a=0)|cr[t>>0])>>>3)+-16|f+(n>>26))>>>0)){f=t+1|0,i=i+-128|n<<6;do{if((0|i)<0){if(63<(n=(0|cr[f>>0])-128|0)>>>0){f=t+-1|0,r=A;break e}if(f=t+2|0,(0|(i=n|i<<6))<0){if(63<(n=(0|cr[f>>0])-128|0)>>>0){f=t+-1|0,r=A;break e}f=t+3|0,i=n|i<<6;break}}}while(0);ar[A>>2]=i,A=A+4|0,i=o+-1|0,a=15;continue A}f=t,i=o,a=52}else if(59==(0|a))return 0|r}}while(0);if(52==(0|a)&&(f=f+-1|(a=0),n?r=A:a=53),53==(0|a)){if(!(0|tr[f>>0])){0|A&&(ar[A>>2]=0,ar[e>>2]=0),r=r-i|0,a=59;continue}r=A}ar[(a=10364)>>2]=84,r?(ar[e>>2]=f,r=-1,a=59):(r=-1,a=59)}return 0}function Wi(A){var e=0,r=0,i=0;0<=(0|ar[(A|=0)+76>>2])&&0!=(0|Jc())?e=(r=0|ar[(e=A+4|0)>>2])>>>0<(0|ar[A+8>>2])>>>0?(ar[e>>2]=r+1,0|cr[r>>0]):0|gi(A):i=3;do{if(3==(0|i)){if((r=0|ar[(e=A+4|0)>>2])>>>0<(0|ar[A+8>>2])>>>0){ar[e>>2]=r+1,e=0|cr[r>>0];break}e=0|gi(A);break}}while(0);return 0|e}function Ii(A,e,r){A|=0,e|=0,r|=0;var i,f;return f=ur=(i=ur)+31&-32,ur=ur+16|0,ar[f>>2]=r,r=0|Qc(A,e,f),ur=i,0|r}function Ci(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;A:do{if(A){e:do{if(3>>0){for(i=r,t=0|ar[e>>2];;){if(126<((o=0|ar[t>>2])+-1|0)>>>0){if(!o)break;if(-1==(0|(o=0|$c(A,o)))){r=-1;break A}A=A+o|0,i=i-o|0}else tr[A>>0]=o,A=A+1|0,i=i+-1|0,t=0|ar[e>>2];if(t=t+4|0,ar[e>>2]=t,i>>>0<=3)break e}tr[A>>0]=0,r=r-i|(ar[e>>2]=0);break A}i=r}while(0);if(i){for(t=0|ar[e>>2];;){if(126<((o=0|ar[t>>2])+-1|0)>>>0){if(!o){t=19;break}if(-1==(0|(o=0|$c(f,o)))){r=-1;break A}if(i>>>0>>0){t=22;break}$c(A,0|ar[t>>2]),A=A+o|0,i=i-o|0}else tr[A>>0]=o,A=A+1|0,i=i+-1|0,t=0|ar[e>>2];if(t=t+4|0,ar[e>>2]=t,!i)break A}if(19==(0|t)){tr[A>>0]=0,r=r-i|(ar[e>>2]=0);break}if(22==(0|t)){r=r-i|0;break}}}else if(r=0|ar[e>>2],i=0|ar[r>>2]){A=r,r=0;do{if(127>>0){if(-1==(0|(i=0|$c(f,i)))){r=-1;break A}}else i=1;r=i+r|0,i=0|ar[(A=A+4|0)>>2]}while(0!=(0|i))}else r=0}while(0);return ur=n,0|r}function Gi(A,e,r,i){A|=0,e|=0,r|=0;var f,n,t=0,o=0,a=0,c=0;t=ur=(n=ur)+31&-32,ur=ur+16|0,i=0|ar[(f=0==(0|(i|=0))?58152:i)>>2];A:do{if(e)if(o=0==(0|A)?t:A,r){if(i)t=r,a=11;else{if(-1<(i=0|tr[e>>0])<<24>>24){ar[o>>2]=255&i,i=i<<24>>24!=0&1;break}if(t=10488,i=0|tr[e>>0],!(0|ar[ar[t>>2]>>2])){ar[o>>2]=i<<24>>24&57343,i=1;break}if(50<(i=(255&i)-194|0)>>>0){a=17;break}i=0|ar[9896+(i<<2)>>2],(t=r+-1|0)&&(e=e+1|0,a=11)}e:do{if(11==(0|a)){if(7<((c=(255&(A=0|tr[e>>0]))>>>3)+-16|c+(i>>26))>>>0){a=17;break A}for(;e=e+1|0,t=t+-1|0,!(0<=(0|(i=(255&A)-128|i<<6)));){if(!t)break e;if((-64&(A=0|tr[e>>0]))<<24>>24!=-128){a=17;break A}}ar[f>>2]=0,ar[o>>2]=i,i=r-t|0;break A}}while(0);ar[f>>2]=i,i=-2}else i=-2;else i?a=17:i=0}while(0);return 17==(0|a)&&(ar[f>>2]=0,ar[(i=10364)>>2]=84,i=-1),ur=n,0|i}function Vi(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0;t=ur=(a=ur)+31&-32,ur=ur+1040|0,n=8+t|0,b=0|ar[(e|=0)>>2],l=(o=0!=(0|A))?i:256,A=o?A:n,c=ar[t>>2]=b;A:do{if(0!=(0|l)&0!=(0|b)){for(i=0,b=r;;){if(!(131>>0|(r=l>>>0<=(u=b>>>2)>>>0))){r=b;break A}if(r=b-(c=r?l:u)|0,-1==(0|(c=0|Xi(A,t,c,f))))break;if(A=(b=(0|A)==(0|n))?A:A+(c<<2)|0,i=c+i|0,!(0!=(0|(l=l-(b?0:c)|0))&0!=(0|(c=0|ar[t>>2]))))break A;b=r}i=-1,c=(l=0)|ar[t>>2]}else i=0}while(0);A:do{if(0!=(0|c)&&0!=(0|l)&0!=(0|r)){for(u=A;!(((A=0|Gi(u,c,r,f))+2|0)>>>0<3);){if(c=(0|ar[t>>2])+A|0,ar[t>>2]=c,i=i+1|0,!(0!=(0|(l=l+-1|0))&0!=(0|(r=r-A|0))))break A;u=u+4|0}switch(0|A){case-1:i=-1;break A;case 0:ar[t>>2]=0;break A;default:ar[f>>2]=0;break A}}}while(0);return o&&(ar[e>>2]=ar[t>>2]),ur=a,0|i}function Fi(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0;t=ur=(a=ur)+31&-32,ur=ur+272|0,n=8+t|0,l=0|ar[(e|=0)>>2],c=(o=0!=(0|A))?i:256,A=o?A:n,i=ar[t>>2]=l;A:do{if(0!=(0|c)&0!=(0|l)){for(f=0,l=i;;){if(!((i=c>>>0<=r>>>0)|32>>0)){i=l;break A}if(r=r-(i=i?c:r)|0,-1==(0|(i=0|Ci(A,t,i,0))))break;if(A=(l=(0|A)==(0|n))?A:A+i|0,f=i+f|0,!(0!=(0|(c=c-(l?0:i)|0))&0!=(0|(i=0|ar[t>>2]))))break A;l=i}f=-1,i=(c=0)|ar[t>>2]}else f=0}while(0);A:do{if(0!=(0|i)&&0!=(0|c)&0!=(0|r)){for(l=A;!(((A=0|$c(l,0|ar[i>>2]))+1|0)>>>0<2);){if(i=4+(0|ar[t>>2])|0,ar[t>>2]=i,f=A+f|0,!(0!=(0|(c=c-A|0))&0!=(0|(r=r+-1|0))))break A;l=l+A|0}A?f=-1:ar[t>>2]=0}}while(0);return o&&(ar[e>>2]=ar[t>>2]),ur=a,0|f}function Ri(A,e,r){A|=0,r|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;switch(0|(e|=0)){case 0:a=-149,c=24,t=4;break;case 1:case 2:a=-1074,c=53,t=4;break;default:i=0}A:do{if(4==(0|t)){for(u=A+4|0,l=A+100|0;0!=(0|mi(e=(e=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0?(ar[u>>2]=e+1,0|cr[e>>0]):0|vi(A))););e:do{switch(0|e){case 43:case 45:if(n=1-((45==(0|e)&1)<<1)|0,(e=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0){ar[u>>2]=e+1,f=0|cr[e>>0];break e}f=0|vi(A);break e;default:f=e,n=1}}while(0);e=0;do{if((32|f)!=(0|tr[52890+e>>0]))break;do{if(e>>>0<7){if((f=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0){ar[u>>2]=f+1,f=0|cr[f>>0];break}f=0|vi(A);break}}while(0);e=e+1|0}while(e>>>0<8);e:do{switch(0|e){case 8:break;case 3:t=23;break;default:if((o=0!=(0|r))&3>>0){if(8==(0|e))break e;t=23;break e}r:do{if(!e){e=0;do{if((32|f)!=(0|tr[52899+e>>0]))break r;do{if(e>>>0<2){if((f=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0){ar[u>>2]=f+1,f=0|cr[f>>0];break}f=0|vi(A);break}}while(0);e=e+1|0}while(e>>>0<3)}}while(0);switch(0|e){case 3:if(40!=(0|(e=(e=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0?(ar[u>>2]=e+1,0|cr[e>>0]):0|vi(A)))){if(!(0|ar[l>>2])){i=h;break A}ar[u>>2]=(0|ar[u>>2])-1,i=h;break A}for(e=1;((f=(f=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0?(ar[u>>2]=f+1,0|cr[f>>0]):0|vi(A))+-48|0)>>>0<10|(f+-65|0)>>>0<26||95==(0|f)|(f+-97|0)>>>0<26;)e=e+1|0;if(41==(0|f)){i=h;break A}if((f=0==(0|ar[l>>2]))||(ar[u>>2]=(0|ar[u>>2])-1),!o){ar[(u=10364)>>2]=22,nl(A,0),i=0;break A}if(!e){i=h;break A}for(;;)if(e=e+-1|0,f||(ar[u>>2]=(0|ar[u>>2])-1),!e){i=h;break A}case 0:if(48==(0|f)){if(120==(32|(e=(e=0|ar[u>>2])>>>0<(0|ar[l>>2])>>>0?(ar[u>>2]=e+1,0|cr[e>>0]):0|vi(A)))){i=+Ni(A,c,a,n,r);break A}e=(0|ar[l>>2]&&(ar[u>>2]=(0|ar[u>>2])-1),48)}else e=f;i=+_i(A,e,c,a,n,r);break A;default:0|ar[l>>2]&&(ar[u>>2]=(0|ar[u>>2])-1),ar[(u=10364)>>2]=22,nl(A,0),i=0;break A}}}while(0);if(23==(0|t)&&((f=0==(0|ar[l>>2]))||(ar[u>>2]=(0|ar[u>>2])-1),0!=(0|r)&3>>0))for(;f||(ar[u>>2]=(0|ar[u>>2])-1),3<(e=e+-1|0)>>>0;);i=(0|n)*w}}while(0);return+i}function Ni(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;a=(o=(o=0|ar[(g=(A|=0)+4|0)>>2])>>>0<(0|ar[(n=A+100|0)>>2])>>>0?(ar[g>>2]=o+1,0|cr[o>>0]):0|vi(A),0);A:for(;;){switch(0|o){case 46:b=8;break A;case 48:break;default:d=1,h=a,l=u=k=a=m=t=v=w=0;break A}(o=0|ar[g>>2])>>>0<(0|ar[n>>2])>>>0?(ar[g>>2]=o+1,o=0|cr[o>>0],a=1):(o=0|vi(A),a=1)}if(8==(0|b))if(48==(0|(o=(o=0|ar[g>>2])>>>0<(0|ar[n>>2])>>>0?(ar[g>>2]=o+1,0|cr[o>>0]):0|vi(A)))){for(a=l=0;o=(o=0|ar[g>>2])>>>0<(0|ar[n>>2])>>>0?(ar[g>>2]=o+1,0|cr[o>>0]):0|vi(A),l=0|tb(0|l,0|a,-1,-1),a=D,48==(0|o););h=d=w=1,u=k=m=t=v=0}else d=w=1,h=a,l=u=k=a=m=t=v=0;for(;s=46==(0|o),!(10<=(b=o+-48|0)>>>0)||s|((32|o)-97|0)>>>0<6;){if(s){if(w){o=46;break}w=1,b=v,c=d,o=m,l=u,a=k}else{o=57<(0|o)?(32|o)-87|0:b;do{if(!((0|k)<0|0==(0|k)&u>>>0<8)){if((0|k)<0|0==(0|k)&u>>>0<14){b=v,t+=(c=d*=.0625)*(0|o),o=m;break}b=(o=0!=(0|v)|0==(0|o))?v:1,c=d,t=o?t:t+.5*d,o=m;break}b=v,c=d,o=o+(m<<4)|0}while(0);u=0|tb(0|u,0|k,1,0),h=1,k=D}o=(s=0|ar[g>>2])>>>0<(0|ar[n>>2])>>>0?(ar[g>>2]=s+1,v=b,d=c,m=o,0|cr[s>>0]):(v=b,d=c,m=o,0|vi(A))}do{if(h){if(s=(b=0==(0|w))?u:l,b=b?k:a,(0|k)<0|0==(0|k)&u>>>0<8){for(a=m,l=k;a<<=4,u=0|tb(0|u,0|l,1,0),(0|(l=D))<0|0==(0|l)&u>>>0<8;);u=a}else u=m;if(112==(32|o)){if(0==(0|(a=0|Yi(A,f)))&-2147483648==(0|(o=D))){if(!f){nl(A,0),t=0;break}o=a=(0|ar[n>>2]&&(ar[g>>2]=(0|ar[g>>2])-1),0)}}else o=a=(0|ar[n>>2]&&(ar[g>>2]=(0|ar[g>>2])-1),0);if(l=0|tb(0|(l=0|db(0|s,0|b,2)),0|D,-32,-1),l=0|tb(0|l,0|D,0|a,0|o),o=D,!u){t=0*(0|i);break}if((0|(f=((0|(g=0-r|0))<0)<<31>>31))<(0|o)|(0|o)==(0|f)&g>>>0>>0){ar[(e=10364)>>2]=34,t=17976931348623157e292*(0|i)*17976931348623157e292;break}if((0|o)<(0|(f=((0|(g=r+-106|0))<0)<<31>>31))|(0|o)==(0|f)&l>>>0>>0){ar[(e=10364)>>2]=34,t=22250738585072014e-324*(0|i)*22250738585072014e-324;break}if(-1<(0|u)){for(a=u;a=a<<1|1&(1^(g=!(.5<=t))),t+=g?t:t+-1,l=0|tb(0|l,0|o,-1,-1),o=D,-1<(0|a););d=t,u=a}else d=t;o=0|tb(0|(r=0|ob(32,0,0|r,((0|r)<0)<<31>>31|0)),0|D,0|l,0|o),59==(0|(b=(0|(r=D))<(0|(g=((0|e)<0)<<31>>31))|(0|g)==(0|r)&o>>>0>>0?0<(0|o)?59:(a=0,o=84,61):(o=e,59)))&&((0|o)<53?(o=84-(a=o)|0,b=61):t=+((c=0)|i)),61==(0|b)&&(t=+(0|i),c=+Di(+Qi(1,o),t),o=a),0==(t=t*((i=0==(1&u|0)&0!=d&(0|o)<32)?0:d)+(c+t*(((1&i)+u|0)>>>0))-c)&&(ar[(i=10364)>>2]=34),t=+Mi(t,l)}else(a=0!=(0|(o=0|ar[n>>2])))&&(ar[g>>2]=(0|ar[g>>2])-1),f?(a&&(ar[g>>2]=(0|ar[g>>2])-1),0==(0|w)|0==(0|o)||(ar[g>>2]=(0|ar[g>>2])-1)):nl(A,0),t=0*(0|i)}while(0);return+t}function _i(A,e,r,i,f,n){e|=0,f|=0,n|=0;var t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0;t=ur=(o=ur)+31&-32,ur=ur+512|0,G=0-(C=(i|=0)+(r|=0)|0)|0,X=(A|=0)+4|0,W=A+100|0,l=0;A:for(;;){switch(0|e){case 46:B=6;break A;case 48:break;default:d=l,s=k=g=0;break A}(e=0|ar[X>>2])>>>0<(0|ar[W>>2])>>>0?(ar[X>>2]=e+1,e=0|cr[e>>0],l=1):(e=0|vi(A),l=1)}if(6==(0|B))if(48==(0|(e=(e=0|ar[X>>2])>>>0<(0|ar[W>>2])>>>0?(ar[X>>2]=e+1,0|cr[e>>0]):0|vi(A))))for(e=l=0;;){if(l=0|tb(0|l,0|e,-1,-1),s=D,48!=(0|(e=(e=0|ar[X>>2])>>>0<(0|ar[W>>2])>>>0?(ar[X>>2]=e+1,0|cr[e>>0]):0|vi(A)))){d=g=1,k=l;break}e=s}else g=1,d=l,s=k=0;b=e+-48|(ar[t>>2]=0),u=46==(0|e);A:do{if(u|b>>>0<10){E=496+t|0,p=g,y=d,B=b,b=d=m=l=Z=0;e:for(;;){do{if(u){if(p)break e;p=1,k=d,s=b}else{if(d=0|tb(0|d,0|b,1,0),b=D,g=48!=(0|e),125<=(0|l)){if(!g)break;ar[E>>2]=1|ar[E>>2];break}u=t+(l<<2)|0,e=Z?e+-48+(10*(0|ar[u>>2])|0)|0:B,ar[u>>2]=e,Z=(y=9==(0|(Z=Z+1|0)))?0:Z,l=(1&y)+l|0,m=g?d:m,y=1}}while(0);if(!((u=46==(0|(e=(e=0|ar[X>>2])>>>0<(0|ar[W>>2])>>>0?(ar[X>>2]=e+1,0|cr[e>>0]):0|vi(A))))|(B=e+-48|0)>>>0<10)){g=p,u=y,B=29;break A}}e=Z,u=0!=(0|y),B=37}else u=d,b=d=m=l=Z=0,B=29}while(0);do{if(29==(0|B)){if(k=(E=0==(0|g))?d:k,s=E?b:s,!((u=0!=(0|u))&101==(32|e))){if(-1<(0|e)){e=Z,B=37;break}e=Z,B=39;break}if(0==(0|(u=0|Yi(A,n)))&-2147483648==(0|(e=D))){if(!n){nl(A,0),a=0;break}e=u=(0|ar[W>>2]&&(ar[X>>2]=(0|ar[X>>2])-1),0)}y=0|tb(0|u,0|e,0|k,0|s),e=Z,s=D,B=41}}while(0);37==(0|B)&&(B=0|ar[W>>2]?(ar[X>>2]=(0|ar[X>>2])-1,u?(y=k,41):40):39),39==(0|B)&&(B=u?(y=k,41):40);do{if(40==(0|B))ar[(G=10364)>>2]=22,nl(A,0),a=0;else if(41==(0|B)){if(!(u=0|ar[t>>2])){a=0*(0|f);break}if((0|y)==(0|d)&(0|s)==(0|b)&((0|b)<0|0==(0|b)&d>>>0<10)&&30<(0|r)|0==(u>>>r|0)){a=(0|f)*(u>>>0);break}if((0|(W=((0|(A=(0|i)/-2|0))<0)<<31>>31))<(0|s)|(0|s)==(0|W)&A>>>0>>0){ar[(G=10364)>>2]=34,a=17976931348623157e292*(0|f)*17976931348623157e292;break}if((0|s)<(0|(W=((0|(A=i+-106|0))<0)<<31>>31))|(0|s)==(0|W)&y>>>0>>0){ar[(G=10364)>>2]=34,a=22250738585072014e-324*(0|f)*22250738585072014e-324;break}if(e){if((0|e)<9){for(u=0|ar[(b=t+(l<<2)|0)>>2];u=10*u|0,9!=(0|(e=e+1|0)););ar[b>>2]=u}l=l+1|0}if((0|m)<9&&(0|m)<=(0|y)&(0|y)<18){if(e=0|ar[t>>2],9==(0|y)){a=(0|f)*(e>>>0);break}if((0|y)<9){a=(0|f)*(e>>>0)/(0|ar[14012+(8-y<<2)>>2]);break}if(30<(0|(A=r+27+(0|br(y,-3))|0))|0==(e>>>A|0)){a=(0|f)*(e>>>0)*(0|ar[14012+(y+-10<<2)>>2]);break}}if(e=(0|y)%9|0){if(d=0|ar[14012+(8-(m=-1<(0|y)?e:e+9|0)<<2)>>2],l){for(k=1e9/(0|d)|0,u=y,e=s=b=0;A=(((W=0|ar[(X=t+(e<<2)|0)>>2])>>>0)/(d>>>0)|0)+b|0,ar[X>>2]=A,b=0|br(k,(W>>>0)%(d>>>0)|0),u=(A=(0|e)==(0|s)&0==(0|A))?u+-9|0:u,s=A?s+1&127:s,(0|(e=e+1|0))!=(0|l););b?(ar[t+(l<<2)>>2]=b,b=s,l=l+1|0):b=s}else l=b=0,u=y;y=9-m+u|(e=0)}else b=e=0;A:for(;;){for(m=(0|y)<18,g=18==(0|y),Z=t+(b<<2)|0;;){if(!m){if(!g){u=y;break A}if(9007199<=(0|ar[Z>>2])>>>0){u=18;break A}}for(l=(p=l)+127|(u=0);l=0|tb(0|(l=0|db(0|ar[(d=t+((s=127&l)<<2)|0)>>2],0,29)),0|D,0|u,0),0<(u=D)>>>0|0==(0|u)&1e9>>0?(k=0|lb(0|l,0|u,1e9,0),l=0|ub(0|l,0|u,1e9,0)):k=0,p=0==(0|(ar[d>>2]=l))&(1^((0|s)!=(p+127&127|0)|(A=(0|s)==(0|b))))?s:p,!A;)u=k,l=s+-1|0;if(e=e+-29|0,0|k)break;l=p}l=p+127&127,u=t+((p+126&127)<<2)|0,(0|(b=b+127&127))==(0|p)?ar[u>>2]=ar[u>>2]|ar[t+(l<<2)>>2]:l=p,ar[t+(b<<2)>>2]=k,y=y+9|0}A:for(;;){for(Z=l+1&127,p=t+((l+127&127)<<2)|0;;){for(k=18==(0|u),g=27<(0|u)?9:1,y=b;;){for(b=0;;){if((0|(s=b+y&127))==(0|l)){I=2,B=88;break}if((s=0|ar[t+(s<<2)>>2])>>>0<(d=0|ar[14044+(b<<2)>>2])>>>0){I=2,B=88;break}if(d>>>0>>0)break;if(2<=(0|(b=b+1|0))){I=b,B=88;break}}if(88==(0|B)&&k&2==((B=0)|I)){s=a=0;break A}if(e=g+e|0,(0|y)!=(0|l))break;y=l}for(k=(1<>>g,d=0,s=b=y;A=((W=0|ar[(X=t+(s<<2)|0)>>2])>>>g)+d|0,ar[X>>2]=A,d=0|br(W&k,m),u=(A=(0|s)==(0|b)&0==(0|A))?u+-9|0:u,b=A?b+1&127:b,(0|(s=s+1&127))!=(0|l););if(d){if((0|Z)!=(0|b))break;ar[p>>2]=1|ar[p>>2]}}ar[t+(l<<2)>>2]=d,l=Z}for(;u=l+1&127,(0|(b=s+y&127))==(0|l)&&(ar[t+(u+-1<<2)>>2]=0,l=u),a=1e9*a+ +((0|ar[t+(b<<2)>>2])>>>0),2!=(0|(s=s+1|0)););if(c=(v=+(0|f))*a,h=(0|(b=(k=(0|(d=(s=e+53|0)-i|0))<(0|r))?0<(0|d)?d:0:r))<53?(w=+Di(+Qi(1,105-b|0),c))+(c-(a=h=+Ji(c,+Qi(1,53-b|0)))):(a=w=0,c),(0|(u=y+2&127))!=(0|l)){u=0|ar[t+(u<<2)>>2];do{if(5e8<=u>>>0){if(5e8!=(0|u)){a=.75*v+a;break}if((y+3&127|0)==(0|l)){a=.5*v+a;break}a=.75*v+a;break}if(0==(0|u)&&(y+3&127|0)==(0|l))break;a=.25*v+a}while(0);c=1<(53-b|0)&&0==+Ji(a,1)?a+1:a}else c=a;a=h+c-w;do{if((-2-C|0)<(2147483647&s|0)){if(a=(C=!(9007199254740992<=+V(+a)))?a:.5*a,((e=(1&(1^C))+e|0)+50|0)<=(0|G)&&!(0!=c&k&((0|b)!=(0|d)|C)))break;ar[(G=10364)>>2]=34}}while(0);a=+Mi(a,e)}}while(0);return ur=o,+a}function Yi(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0;switch(0|(i=(i=0|ar[(a=(A|=0)+4|0)>>2])>>>0<(0|ar[(r=A+100|0)>>2])>>>0?(ar[a>>2]=i+1,0|cr[i>>0]):0|vi(A))){case 43:case 45:f=45==(0|i)&1,0!=(0|e)&9<((i=(i=0|ar[a>>2])>>>0<(0|ar[r>>2])>>>0?(ar[a>>2]=i+1,0|cr[i>>0]):0|vi(A))+-48|0)>>>0&&0!=(0|ar[r>>2])&&(ar[a>>2]=(0|ar[a>>2])-1);break;default:f=0}if(9<(i+-48|0)>>>0)i=(f=(0|ar[r>>2]&&(ar[a>>2]=(0|ar[a>>2])-1),-2147483648),0);else{for(n=0;n=i+-48+(10*n|0)|0,((i=(i=0|ar[a>>2])>>>0<(0|ar[r>>2])>>>0?(ar[a>>2]=i+1,0|cr[i>>0]):0|vi(A))+-48|0)>>>0<10&(0|n)<214748364;);if(e=((0|n)<0)<<31>>31,(i+-48|0)>>>0<10){for(;e=0|nb(0|n,0|e,10,0),n=D,i=0|tb(0|i,((0|i)<0)<<31>>31|0,-48,-1),n=0|tb(0|i,0|D,0|e,0|n),e=D,((i=(i=0|ar[a>>2])>>>0<(0|ar[r>>2])>>>0?(ar[a>>2]=i+1,0|cr[i>>0]):0|vi(A))+-48|0)>>>0<10&((0|e)<21474836|21474836==(0|e)&n>>>0<2061584302););t=i,o=n}else t=i,o=n;if(i=0|ar[r>>2],(t+-48|0)>>>0<10)for(;(n=0|ar[a>>2])>>>0>>0?(ar[a>>2]=n+1,n=0|cr[n>>0]):(n=0|vi(A),i=0|ar[r>>2]),(n+-48|0)>>>0<10;);0|i&&(ar[a>>2]=(0|ar[a>>2])-1),i=0|ob(0,0,0|o,0|e),f=(a=0!=(0|f))?D:e,i=a?i:o}return D=f,0|i}function Qi(A,e){A=+A;var r=0,i=0;return(0|(e|=0))<=1023?(0|e)<-1022&&(A*=22250738585072014e-324,r=e+1022|0,e=e+2044|0,A=(i=(0|r)<-1022)?22250738585072014e-324*A:A,e=i?-1022<(0|e)?e:-1022:r):(A*=898846567431158e293,i=e+-1023|0,e=e+-2046|0,A=(r=1023<(0|i))?898846567431158e293*A:A,e=r?(0|e)<1023?e:1023:i),r=0|db(e+1023|0,0,52),i=D,ar[d>>2]=r,ar[d+4>>2]=i,+(A*Q[d>>3])}function Di(A,e){return+ +function(A,e){A=+A,e=+e;var r,i=0;return Q[d>>3]=A,r=0|ar[d>>2],i=0|ar[d+4>>2],Q[d>>3]=e,i=-2147483648&ar[d+4>>2]|2147483647&i,ar[d>>2]=r,ar[d+4>>2]=i,+ +Q[d>>3]}(A=+A,e=+e)}function Ji(A,e){return+ +function(A,e){A=+A,e=+e;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;Q[d>>3]=A,o=0|ar[d>>2],c=0|ar[d+4>>2],Q[d>>3]=e,u=0|ar[d>>2],b=0|ar[d+4>>2],f=2047&(f=0|sb(0|o,0|c,52)),l=2047&(l=0|sb(0|u,0|b,52)),r=-2147483648&c,t=0|db(0|u,0|b,1),a=D;A:do{if(0==(0|t)&0==(0|a)||(n=0|Ti(e),i=2147483647&D,2047==(0|f)|2146435072>>0|2146435072==(0|i)&0>>0))s=3;else{if(i=0|db(0|o,0|c,1),!(a>>>0<(n=D)>>>0|(0|n)==(0|a)&t>>>0>>0))return+((0|i)==(0|t)&(0|n)==(0|a)?0*A:A);if(f)t=1048575&c|1048576;else{if(i=0|db(0|o,0|c,12),-1<(0|(n=D))|-1==(0|n)&4294967295>>0)for(f=0;f=f+-1|0,i=0|db(0|i,0|n,1),-1<(0|(n=D))|-1==(0|n)&4294967295>>0;);else f=0;o=0|db(0|o,0|c,1-f|0),t=D}if(l)c=1048575&b|1048576;else{if(n=0|db(0|u,0|b,12),-1<(0|(a=D))|-1==(0|a)&4294967295>>0)for(i=0;i=i+-1|0,n=0|db(0|n,0|a,1),-1<(0|(a=D))|-1==(0|a)&4294967295>>0;);else i=0;u=0|db(0|u,0|b,1-i|0),l=i,c=D}n=0|ob(0|o,0|t,0|u,0|c),a=-1<(0|(i=D))|-1==(0|i)&4294967295>>0;e:do{if((0|l)<(0|f)){for(;;){if(a){if(0==(0|n)&0==(0|i))break}else n=o,i=t;if(o=0|db(0|n,0|i,1),n=0|ob(0|o,0|(t=D),0|u,0|c),a=-1<(0|(i=D))|-1==(0|i)&4294967295>>0,(0|(f=f+-1|0))<=(0|l))break e}e=0*A;break A}}while(0);if(a){if(0==(0|n)&0==(0|i)){e=0*A;break}}else i=t,n=o;if(i>>>0<1048576|1048576==(0|i)&n>>>0<0)for(;n=0|db(0|n,0|i,1),f=f+-1|0,(i=D)>>>0<1048576|1048576==(0|i)&n>>>0<0;);0<(0|f)?(b=0|tb(0|n,0|i,0,-1048576),i=D,f=0|db(0|f,0,52),i|=D,f|=b):(f=0|sb(0|n,0|i,1-f|0),i=D),ar[d>>2]=f,ar[d+4>>2]=i|r,e=+Q[d>>3]}}while(0);3==(0|s)&&(e*=A,e/=e);return+e}(A=+A,e=+e)}function Mi(A,e){return+ +Qi(A=+A,e|=0)}function Ti(A){A=+A;var e;return Q[d>>3]=A,e=0|ar[d>>2],D=0|ar[d+4>>2],0|e}function Ui(A,e,r,i){A|=0,i|=0;var f,n=0;return f=0|br(r|=0,e|=0),r=0==(0|e)?0:r,-1<(0|ar[i+76>>2])?(n=0==(0|Jc()),A=0|el(A,f,i),n||Mc()):A=0|el(A,f,i),(0|A)!=(0|f)&&(r=(A>>>0)/(e>>>0)|0),0|r}function Si(A,e){A|=0;var r,i,f,n=0,t=0,o=0,a=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,i=255&(e|=0),tr[r>>0]=i,(o=0|ar[(t=A+16|0)>>2])?a=4:0|rl(A)?n=-1:(o=0|ar[t>>2],a=4);do{if(4==(0|a)){if((t=0|ar[(a=A+20|0)>>2])>>>0>>0&&(0|(n=255&e))!=(0|tr[A+75>>0])){ar[a>>2]=t+1,tr[t>>0]=i;break}n=1==(0|xb[63&ar[A+36>>2]](A,r,1))?0|cr[r>>0]:-1}}while(0);return ur=f,0|n}function Oi(A){A|=0;var e=0,r=0;do{if(A){if((0|ar[A+76>>2])<=-1){e=0|zi(A);break}r=0==(0|Jc()),e=0|zi(A),r||Mc()}else{if(e=0|ar[2636]?0|Oi(0|ar[2636]):0,A=0|(C(58160),58168),A=0|ar[A>>2])for(;r=-1<(0|ar[A+76>>2])?0|Jc():0,(0|ar[A+20>>2])>>>0>(0|ar[A+28>>2])>>>0&&(e=0|zi(A)|e),0|r&&Mc(),0!=(0|(A=0|ar[A+56>>2])););T(58160)}}while(0);return 0|e}function zi(A){var e,r,i=0,f=0,n=0,t=0;return r=(A|=0)+28|0,0|(A=(0|ar[(e=A+20|0)>>2])>>>0>(0|ar[r>>2])>>>0&&(xb[63&ar[A+36>>2]](A,0,0),0==(0|ar[e>>2]))?-1:((f=0|ar[(i=A+4|0)>>2])>>>0<(t=0|ar[(n=A+8|0)>>2])>>>0&&xb[63&ar[A+40>>2]](A,f-t|0,1),ar[A+16>>2]=0,ar[r>>2]=0,ar[e>>2]=0,ar[n>>2]=0,ar[i>>2]=0))}function ji(A,e,r){A|=0,e|=0,r|=0;var i,f;return f=ur=(i=ur)+31&-32,ur=ur+16|0,ar[f>>2]=r,r=0|Hi(A,e,f),ur=i,0|r}function Hi(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0;for(i=ur=(f=ur)+31&-32,ur=ur+128|0,t=(n=i)+124|0;(0|(n=n+4|(ar[n>>2]=0)))<(0|t););return ar[32+i>>2]=34,ar[44+i>>2]=A,ar[76+i>>2]=-1,ar[84+i>>2]=A,t=0|function(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0;R=ur=(t=ur)+31&-32,ur=ur+288|0,i=R+8|0,f=R+17|0,R=(n=R)+16|0,_=-1<(0|ar[76+(A|=0)>>2])?0|Jc():0;o=0|tr[e>>0];A:do{if(o<<24>>24){y=A+4|0,B=A+100|0,E=A+108|0,X=A+8|0,W=10+f|0,I=33+f|0,p=4+i|0,C=46+f|0,G=94+f|0,F=V=1+f|0,l=e,a=c=e=v=0;e:for(;;){r:do{if(0|mi(255&o)){for(;0|mi(0|cr[(o=l+1|0)>>0]);)l=o;for(nl(A,0);0!=(0|mi(o=(o=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=o+1,0|cr[o>>0]):0|vi(A))););0|ar[B>>2]?(o=(0|ar[y>>2])-1|0,ar[y>>2]=o):o=0|ar[y>>2],u=(0|ar[E>>2])+v+o-(0|ar[X>>2])|0}else{o=o<<24>>24==37;i:do{if(o){u=0|tr[(s=l+1|0)>>0];f:do{switch(u<<24>>24){case 37:break i;case 42:l=l+2|(Z=0);break;default:if((o=(255&u)-48|0)>>>0<10&&36==(0|tr[l+2>>0])){Z=0|xi(r,o),l=l+3|0;break f}l=3+(0|ar[r>>2])&-4,Z=0|ar[l>>2],ar[r>>2]=l+4,l=s}}while(0);if(o=0|tr[l>>0],((u=255&o)+-48|0)>>>0<10)for(s=0;s=(10*s|0)-48+u|0,o=0|tr[(l=l+1|0)>>0],((u=255&o)+-48|0)>>>0<10;);else s=0;switch(c=(o=o<<24>>24==109)?0:c,a=o?0:a,l=o?l+1|0:l,o&=g=0!=(0|Z),u=l+1|0,0|tr[l>>0]){case 104:m=104==(0|tr[u>>0]),d=m?-2:-1,l=m?l+2|0:u;break;case 108:m=108==(0|tr[u>>0]),d=m?3:1,l=m?l+2|0:u;break;case 106:d=3,l=u;break;case 116:case 122:d=1,l=u;break;case 76:d=2,l=u;break;case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:d=0;break;default:N=137;break e}switch(h=0|cr[l>>0],h=(w=3==(47&h|0))?32|h:h,w=w?1:d,(k=255&h)<<24>>24){case 99:s=1<(0|s)?s:1;break;case 91:break;case 110:Pi(Z,w,v,((0|v)<0)<<31>>31),u=v;break r;default:for(nl(A,0);0!=(0|mi(u=(u=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=u+1,0|cr[u>>0]):0|vi(A))););0|ar[B>>2]?(u=(0|ar[y>>2])-1|0,ar[y>>2]=u):u=0|ar[y>>2],v=(0|ar[E>>2])+v+u-(0|ar[X>>2])|0}if(nl(A,s),u=0|ar[y>>2],d=0|ar[B>>2],u>>>0>>0)ar[y>>2]=u+1;else{if((0|vi(A))<0){N=137;break e}d=0|ar[B>>2]}0|d&&(ar[y>>2]=(0|ar[y>>2])-1);f:do{switch(k<<24>>24){case 91:case 99:case 115:m=99==(0|h);n:do{if(115==(16|h))vb(0|V,-1,256),115==((tr[f>>0]=0)|h)&&(tr[I>>0]=0,tr[W>>0]=0,tr[W+1>>0]=0,tr[W+2>>0]=0,tr[W+3>>0]=0,tr[W+4>>0]=0);else{switch(h=94==(0|tr[(u=l+1|0)>>0]),l=h?l+2|0:u,vb(0|F,(k=1&h)|0,256),(tr[f>>0]=0)|tr[l>>0]){case 45:u=C,N=64;break;case 93:u=G,N=64;break;default:h=255&(1^k)}for(64==(0|N)&&(h=255&(1^k),tr[u>>(N=0)]=h,l=l+1|0);;){u=0|tr[l>>0];t:do{switch(u<<24>>24){case 0:N=137;break e;case 93:break n;case 45:switch((u=0|tr[(k=l+1|0)>>0])<<24>>24){case 93:case 0:u=45;break t}if((255&(l=0|tr[l+-1>>0]))<(255&u)){for(l&=255;tr[f+(l=l+1|0)>>0]=h,u=0|tr[k>>0],(0|l)<(255&u|0););l=k}else l=k}}while(0);tr[1+(255&u)+f>>0]=h,l=l+1|0}}}while(0);u=m?s+1|0:31,h=1==(0|w);n:do{if(h){if(o){if(!(a=0|yc(u<<2))){a=c=0,o=1,N=137;break e}}else a=Z;ar[i>>2]=0,ar[p>>2]=0,k=u,c=0;t:for(;;){d=0==(0|a);do{o:for(;;){if(u=(u=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=u+1,0|cr[u>>0]):0|vi(A),!(0|tr[f+(u+1)>>0]))break t;switch(tr[R>>0]=u,0|Gi(n,R,1,i)){case-1:c=0,N=137;break e;case-2:break;default:break o}}d||(ar[a+(c<<2)>>2]=ar[n>>2],c=c+1|0)}while(!(o&(0|c)==(0|k)));if(!(u=0|Ec(a,(c=k<<1|1)<<2))){c=0,o=1,N=137;break e}w=k,k=c,a=u,c=w}if(!(0|(Y=i,1&(Y=(Y|=0)?0==(0|ar[Y>>2]):1)|0))){c=0,N=137;break e}u=c,c=0,k=a}else{if(o){if(!(c=0|yc(u))){a=c=0,o=1,N=137;break e}for(d=u,a=0;;){do{if(u=(u=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=u+1,0|cr[u>>0]):0|vi(A),!(0|tr[f+(u+1)>>0])){u=a,a=k=0;break n}tr[c+a>>0]=u,a=a+1|0}while((0|a)!=(0|d));if(!(u=0|Ec(c,a=d<<1|1))){a=0,o=1,N=137;break e}w=d,d=a,c=u,a=w}}if(Z)for(u=0,c=d;;){if(a=(a=0|ar[y>>2])>>>0>>0?(ar[y>>2]=a+1,0|cr[a>>0]):0|vi(A),!(0|tr[f+(a+1)>>0])){c=Z,a=k=0;break n}tr[Z+u>>0]=a,u=u+1|0,c=0|ar[B>>2]}else for(c=d;;){if(a=(a=0|ar[y>>2])>>>0>>0?(ar[y>>2]=a+1,0|cr[a>>0]):0|vi(A),!(0|tr[f+(a+1)>>0])){a=k=c=u=0;break n}c=0|ar[B>>2]}}}while(0);if(0|ar[B>>2]?(d=(0|ar[y>>2])-1|0,ar[y>>2]=d):d=0|ar[y>>2],!(d=d-(0|ar[X>>2])+(0|ar[E>>2])|0)){N=139;break e}if(!((0|d)==(0|s)|1^m)){N=139;break e}do{if(o){if(h){ar[Z>>2]=k;break}ar[Z>>2]=c;break}}while(0);if(!m){if(0|k&&(ar[k+(u<<2)>>2]=0),!c){c=0;break f}tr[c+u>>0]=0}break;case 120:case 88:case 112:u=16,N=125;break;case 111:u=8,N=125;break;case 117:case 100:u=10,N=125;break;case 105:u=0,N=125;break;case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:if(b=+Ri(A,w,0),(0|ar[E>>2])==((0|ar[X>>2])-(0|ar[y>>2])|0)){N=139;break e}if(Z)switch(0|w){case 0:gA[Z>>2]=b;break f;case 1:case 2:Q[Z>>3]=b;break f;default:break f}}}while(0);do{if(125==(0|N)){if(u=(N=0)|wi(A,u,0,-1,-1),(0|ar[E>>2])==((0|ar[X>>2])-(0|ar[y>>2])|0)){N=139;break e}if(g&112==(0|h)){ar[Z>>2]=u;break}Pi(Z,w,u,D);break}}while(0);e=(1&g)+e|0,u=(0|ar[E>>2])+v+(0|ar[y>>2])-(0|ar[X>>2])|0;break r}}while(0);if(l=l+(1&o)|0,nl(A,0),(0|(o=(o=0|ar[y>>2])>>>0<(0|ar[B>>2])>>>0?(ar[y>>2]=o+1,0|cr[o>>0]):0|vi(A)))!=(0|cr[l>>0])){N=22;break e}u=v+1|0}}while(0);if(!((o=0|tr[(l=l+1|0)>>0])<<24>>24))break A;v=u}if(22==(0|N)){if(0|ar[B>>2]&&(ar[y>>2]=(0|ar[y>>2])-1),0!=(0|e)|-1<(0|o))break;o=0,N=138}else 137==(0|N)?(o&=1,e||(N=138)):139==(0|N)&&(o&=1);138==(0|N)&&(e=-1),o&&(Bc(c),Bc(a))}else e=0}while(0);var Y;0|_&&Mc();return ur=t,0|e}(i,e,r),ur=f,0|t}function xi(A,e){A|=0,e|=0;var r,i,f=0;for(r=ur=(i=ur)+31&-32,ur=ur+16|0,ar[r>>2]=ar[A>>2];f=3+(0|ar[r>>2])&-4,A=0|ar[f>>2],ar[r>>2]=f+4,1>>0;)e=e+-1|0;return ur=i,0|A}function Pi(A,e,r,i){A|=0,e|=0,r|=0,i|=0;A:do{if(0|A)switch(0|e){case-2:tr[A>>0]=r;break A;case-1:or[A>>1]=r;break A;case 0:case 1:ar[A>>2]=r;break A;case 3:ar[(e=A)>>2]=r,ar[e+4>>2]=i;break A;default:break A}}while(0)}function Li(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t=0,o=0;for(f=ur=(n=ur)+31&-32,ur=ur+128|0,o=(t=f)+124|0;(0|(t=t+4|(ar[t>>2]=0)))<(0|o););return ar[(t=4+f|0)>>2]=A,ar[(o=8+f|0)>>2]=-1,ar[44+f>>2]=A,ar[76+f>>2]=-1,nl(f,0),i=+Ri(f,r,1),r=(0|ar[t>>2])-(0|ar[o>>2])+(0|ar[108+f>>2])|0,0|e&&(ar[e>>2]=0|r?A+r|0:A),ur=n,+i}function Ki(A,e){return r=A|=0,i=e|=0,+ + + +Li(r|=0,i|=0,0);var r,i}function qi(A,e){return r=A|=0,i=e|=0,+ + + +Li(r|=0,i|=0,1);var r,i}function $i(A,e){return r=A|=0,i=e|=0,+ + + +Li(r|=0,i|=0,2);var r,i}function Af(A,e){return+ +Qi(A=+A,e|=0)}function ef(A){return 0|~~+pb(+(A=+A))}function rf(A){A|=0;var e;return e=0|ar[2622],0|A&&(ar[2622]=-1==(0|A)?58104:A),0|(58104==(0|e)?-1:e)}function ff(A,e){A|=0,e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;b=ur=(i=ur)+31&-32,ur=ur+272|0,r=b+8|0;do{if(!(0|tr[e>>0])){if(0|(e=0|bA(52903))&&0|tr[e>>0])break;if(0|(e=0|bA(52910+(12*A|0)|0))&&0|tr[e>>0])break;if(0|(e=0|bA(52982))&&0|tr[e>>0])break;e=52987}}while(0);f=0;A:do{switch(0|tr[e+f>>0]){case 47:case 0:break A}f=f+1|0}while(f>>>0<15);15==(0|(u=(n=0|tr[e>>0])<<24>>24!=46&&0==(0|tr[e+f>>0])?n<<24>>24==67?15:(l=e,16):(e=52987,15)))&&(u=0|tr[e+1>>0]?(l=e,16):18);A:do{if(16==(0|u))if(0!=(0|Fc(l,52987))&&0!=(0|Fc(l,52995))){if(0|(e=0|ar[14543]))do{if(!(0|Fc(l,e+8|0)))break A;e=0|ar[e+24>>2]}while(0!=(0|e));C(58176),e=0|ar[14543];e:do{if(0|e){for(;0|Fc(l,e+8|0);)if(!(e=0|ar[e+24>>2]))break e;T(58176);break A}}while(0);e:do{if(0==(0|ar[14518])&&0!=(0|(t=0|bA(53001)))&&0!=(0|tr[t>>0])){for(a=254-f|0,c=f+1|0,n=t;;){if((t=(o=0|Nc(n,58))-n+(((e=0|tr[o>>0])<<24>>24!=0)<<31>>31)|0)>>>0>>0){if(hb(0|r,0|n,0|t),tr[(n=r+t|0)>>0]=47,hb(n+1|0,0|l,0|f),(tr[r+(c+t)>>0]=0)|(t=0|G(0|r,0|b)))break;e=0|tr[o>>0]}if(!(0|tr[(n=o+(e<<24>>24!=0&1)|0)>>0])){u=41;break e}}if(e=0|yc(28),n=0|ar[b>>2],e){ar[e>>2]=t,ar[e+4>>2]=n,hb(0|(b=e+8|0),0|l,0|f),tr[b+f>>0]=0,ar[e+24>>2]=ar[14543],ar[14543]=e;break}Ei(t,n),u=41;break}u=41}while(0);41==(0|u)&&(e=0|yc(28))&&(ar[e>>2]=ar[2525],ar[e+4>>2]=ar[2526],hb(0|(b=e+8|0),0|l,0|f),tr[b+f>>0]=0,ar[e+24>>2]=ar[14543],ar[14543]=e),T(58176),e=0==(0|A)&0==(0|e)?10100:e}else e=l,u=18}while(0);do{if(18==(0|u)){if(0==(0|A)&&46==(0|tr[e+1>>0])){e=10100;break}e=0}}while(0);return ur=i,0|e}function nf(A){return 10148!=(0|(A|=0))&0!=(0|A)&58128!=(0|A)&1|0}function tf(A,e,r,i){return 0|(i|=0)}function of(A){0|nf(A|=0)&&Bc(A)}function af(A){return((A|=0)+-48|0)>>>0<10|0}function cf(){return-1}function lf(A){return 0|(e=A|=0,1&(((e|=0)-48|0)>>>0<10|((32|e)-97|0)>>>0<6)|0);var e}function uf(A,e){A|=0,e|=0;var r=0,i=0,f=0,n=0,t=0;do{if(-1!=(0|A)){if(f=-1<(0|ar[e+76>>2])?0|Jc():0,(r=0|ar[(n=e+4|0)>>2])?(i=r,r=0!=(0|f),t=7):(Zi(e),r=0!=(0|f),(i=0|ar[n>>2])?t=7:A=r),7==(0|t)){if(i>>>0>((0|ar[e+44>>2])-8|0)>>>0){if(t=i+-1|0,ar[n>>2]=t,tr[t>>0]=A,ar[e>>2]=-17&ar[e>>2],!r)break;Mc();break}A=r}A=(A&&Mc(),-1)}else A=-1}while(0);return 0|A}function bf(A){sf(A|=0)}function sf(A){ar[(A|=0)>>2]=14060,function(A,e){e|=0;var r,i,f=0,n=0;r=32+(A|=0)|0,i=A+36|0,f=0|ar[A+40>>2];for(;f;)n=f+-1|0,ns[127&ar[(0|ar[r>>2])+(n<<2)>>2]](e,A,0|ar[(0|ar[i>>2])+(n<<2)>>2]),f=n}(A,0),bn(A+28|0),Bc(0|ar[A+32>>2]),Bc(0|ar[A+36>>2]),Bc(0|ar[A+48>>2]),Bc(0|ar[A+60>>2])}function df(A){sf(A|=0)}function kf(A){ar[(A|=0)>>2]=14076,bn(A+4|0)}function hf(A){return 255&(A|=0)|0}function wf(A,e,r){return A|=0,e|=0,0|(r|=0)&&hb(0|A,0|e,0|r),0|A}function vf(A){return 255&(A|=0)|0}function mf(A){ar[(A|=0)>>2]=14140,bn(A+4|0)}function gf(A){return 0|(A|=0)}function Zf(A,e,r){return A|=0,e|=0,(r|=0)&&function(A,e,r){A|=0,e|=0;var i=0;if(0|(r|=0))for(i=A;r=r+-1|0,ar[i>>2]=ar[e>>2],r;)e=e+4|0,i=i+4|0}(A,e,r),0|A}function pf(A){return 0|(A|=0)}function yf(A){Ef(A|=0),bf(A+8|0)}function Bf(A){yf(A|=0),vu(A)}function Ef(){}function Xf(A){df((A|=0)+8|0)}function Wf(A){Xf(A|=0),vu(A)}function If(A){Gf(A|=0),bf(A+4|0)}function Cf(A){If(A|=0),vu(A)}function Gf(){}function Vf(A){df((A|=0)+4|0)}function Ff(A){Vf(A|=0),vu(A)}function Rf(A){_f(A|=0),bf(A+12|0)}function Nf(A){Rf(A|=0),vu(A)}function _f(){}function Yf(A){return 0|Vc(A|=0)}function Qf(A,e){e|=0,tr[(A|=0)>>0]=0|tr[e>>0]}function Df(A,e){e|=0,ar[(A|=0)+16>>2]=0==(0|ar[A+24>>2])|e}function Jf(A,e){e|=0;var r;for(ar[(A|=0)+24>>2]=e,ar[A+16>>2]=0==(0|e)&1,ar[A+20>>2]=0,ar[A+4>>2]=4098,ar[A+12>>2]=0,ar[A+8>>2]=6,r=A+28|0,A=(e=A+32|0)+40|0;(0|(e=e+4|(ar[e>>2]=0)))<(0|A););fu(r)}function Mf(A,e){return(0|(A|=0))==(0|(e|=0))|0}function Tf(A,e){ru(A|=0,(e|=0)+28|0)}function Uf(A,e){return(0|(A|=0))==(0|(e|=0))|0}function Sf(A){ar[(A|=0)>>2]=14076,fu(A+4|0),ar[(A=A+8|0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ar[A+12>>2]=0,ar[A+16>>2]=0,ar[A+20>>2]=0}function Of(A){ar[(A|=0)>>2]=14140,fu(A+4|0),ar[(A=A+8|0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ar[A+12>>2]=0,ar[A+16>>2]=0,ar[A+20>>2]=0}function zf(A,e){var r,i,f,n;e|=0,tr[(A|=0)>>0]=0,e=(ar[A+4>>2]=e)+(0|ar[(0|ar[e>>2])-12>>2])|0,0|ar[e+16>>2]||(0|(e=0|ar[e+72>>2])&&(r=e,i=ur=(f=ur)+31&-32,ur=ur+16|(n=0),0|ar[(r|=0)+(0|ar[(0|ar[r>>2])-12>>2])+24>>2]&&(zf(i,r),0|tr[i>>0]&&(n=0|ar[r+(0|ar[(0|ar[r>>2])-12>>2])+24>>2],-1==(0|jb[127&ar[24+(0|ar[n>>2])>>2]](n)))&&Df(n=r+(0|ar[(0|ar[r>>2])-12>>2])|0,1|ar[n+16>>2]),jf(i)),ur=f),tr[A>>0]=1)}function jf(A){var e=0;e=(e=0|ar[(A=(A|=0)+4|0)>>2])+(0|ar[(0|ar[e>>2])-12>>2])|0,0|ar[e+24>>2]&&0==(0|ar[e+16>>2])&&8192&ar[e+4>>2]|0&&!(0|E())&&(e=0|ar[A>>2],e=0|ar[e+(0|ar[(0|ar[e>>2])-12>>2])+24>>2],-1==(0|jb[127&ar[24+(0|ar[e>>2])>>2]](e)))&&Df(e=(e=0|ar[A>>2])+(0|ar[(0|ar[e>>2])-12>>2])|0,1|ar[e+16>>2])}function Hf(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,r=12+f|0,i=8+f|0,zf(f,A|=0),0|tr[f>>0]&&(Tf(r,A+(0|ar[(0|ar[A>>2])-12>>2])|0),o=0|un(r,59288),bn(r),a=A+(0|ar[(0|ar[A>>2])-12>>2])|0,c=0|ar[a+24>>2],t=0|Mf(l=-1,0|ar[(t=a+76|0)>>2])?(Tf(r,a),l=0|un(r,59232),l=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,32),bn(r),l=l<<24>>24,ar[t>>2]=l):0|ar[t>>2],l=0|ar[12+(0|ar[o>>2])>>2],ar[i>>2]=c,ar[r>>2]=ar[i>>2],0|Kb[31&l](o,r,a,255&t,e)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2])),jf(f),ur=n,0|A}function xf(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,r=12+f|0,i=8+f|0,zf(f,A|=0),0|tr[f>>0]&&(Tf(r,A+(0|ar[(0|ar[A>>2])-12>>2])|0),o=0|un(r,59288),bn(r),a=A+(0|ar[(0|ar[A>>2])-12>>2])|0,c=0|ar[a+24>>2],t=0|Mf(l=-1,0|ar[(t=a+76|0)>>2])?(Tf(r,a),l=0|un(r,59232),l=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,32),bn(r),l=l<<24>>24,ar[t>>2]=l):0|ar[t>>2],l=0|ar[24+(0|ar[o>>2])>>2],ar[i>>2]=c,ar[r>>2]=ar[i>>2],0|Kb[31&l](o,r,a,255&t,65535&e)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2])),jf(f),ur=n,0|A}function Pf(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,r=12+f|0,i=8+f|0,zf(f,A|=0),0|tr[f>>0]&&(Tf(r,A+(0|ar[(0|ar[A>>2])-12>>2])|0),o=0|un(r,59288),bn(r),a=A+(0|ar[(0|ar[A>>2])-12>>2])|0,c=0|ar[a+24>>2],t=0|Mf(l=-1,0|ar[(t=a+76|0)>>2])?(Tf(r,a),l=0|un(r,59232),l=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,32),bn(r),l=l<<24>>24,ar[t>>2]=l):0|ar[t>>2],l=0|ar[16+(0|ar[o>>2])>>2],ar[i>>2]=c,ar[r>>2]=ar[i>>2],0|Kb[31&l](o,r,a,255&t,e)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2])),jf(f),ur=n,0|A}function Lf(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,r=12+f|0,i=8+f|0,zf(f,A|=0),0|tr[f>>0]&&(Tf(r,A+(0|ar[(0|ar[A>>2])-12>>2])|0),o=0|un(r,59288),bn(r),a=A+(0|ar[(0|ar[A>>2])-12>>2])|0,c=0|ar[a+24>>2],t=0|Mf(l=-1,0|ar[(t=a+76|0)>>2])?(Tf(r,a),l=0|un(r,59232),l=0|Hb[31&ar[28+(0|ar[l>>2])>>2]](l,32),bn(r),l=l<<24>>24,ar[t>>2]=l):0|ar[t>>2],l=0|ar[24+(0|ar[o>>2])>>2],ar[i>>2]=c,ar[r>>2]=ar[i>>2],0|Kb[31&l](o,r,a,255&t,e)||Df(l=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[l+16>>2])),jf(f),ur=n,0|A}function Kf(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0;return n=ur=(t=ur)+31&-32,ur=ur+16|0,i=12+n|0,f=8+n|0,zf(n,A|=0),0|tr[n>>0]&&(Tf(i,A+(0|ar[(0|ar[A>>2])-12>>2])|0),a=0|un(i,59288),bn(i),c=A+(0|ar[(0|ar[A>>2])-12>>2])|0,l=0|ar[c+24>>2],o=0|Mf(u=-1,0|ar[(o=c+76|0)>>2])?(Tf(i,c),u=0|un(i,59232),u=0|Hb[31&ar[28+(0|ar[u>>2])>>2]](u,32),bn(i),u=u<<24>>24,ar[o>>2]=u):0|ar[o>>2],u=0|ar[28+(0|ar[a>>2])>>2],ar[f>>2]=l,ar[i>>2]=ar[f>>2],0|$b[63&u](a,i,c,255&o,e,r)||Df(u=A+(0|ar[(0|ar[A>>2])-12>>2])|0,5|ar[u+16>>2])),jf(n),ur=t,0|A}function qf(A,e,r){e|=0,r|=0;var i,f;f=ur=(i=ur)+31&-32,ur=ur+16|0,Sf(A|=0),ar[A>>2]=14508,ar[A+32>>2]=e,ru(f,A+4|0),e=0|un(f,61024),bn(f),ar[A+36>>2]=e,ar[A+40>>2]=r,r=1&(0|jb[127&ar[28+(0|ar[e>>2])>>2]](e)),tr[A+44>>0]=r,ur=i}function $f(A,e,r){e|=0,r|=0;var i,f;f=ur=(i=ur)+31&-32,ur=ur+16|0,Of(A|=0),ar[A>>2]=14444,ar[A+32>>2]=e,ru(f,A+4|0),e=0|un(f,61032),bn(f),ar[A+36>>2]=e,ar[A+40>>2]=r,r=1&(0|jb[127&ar[28+(0|ar[e>>2])>>2]](e)),tr[A+44>>0]=r,ur=i}function An(A){mf(A|=0)}function en(A){kf(A|=0)}function rn(A){mf(A|=0)}function fn(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(i=ur=(t=ur)+31&-32,ur=ur+32|0,f=16+i|0,k=8+i|0,r=4+i|0,n=(A|=0)+48|0,0|tr[(a=A+52|0)>>0])o=0|ar[n>>2],e&&(k=-1,ar[n>>2]=k,tr[a>>0]=0);else{for(o=1<(0|(o=0|ar[A+44>>2]))?o:1,d=A+32|0,a=0;;){if((0|o)<=(0|a)){s=9;break}if(-1==(0|(c=0|Wi(0|ar[d>>2])))){s=8;break}tr[f+a>>0]=c,a=a+1|0}if(8==(0|s))o=-1;else if(9==(0|s)){do{if(0|tr[A+53>>0])ar[k>>2]=tr[f>>0],s=19;else{b=A+40|0,l=A+36|0,u=k+4|0;A:for(;;){switch(h=0|ar[b>>2],a=0|ar[(c=h)>>2],c=0|ar[c+4>>2],w=0|ar[l>>2],A=f+o|0,0|es[15&ar[16+(0|ar[w>>2])>>2]](w,h,f,A,r,k,u,i)){case 3:s=16;break A;case 2:s=18;break A;case 1:break;default:break A}if(w=0|ar[b>>2],ar[w>>2]=a,ar[w+4>>2]=c,8==(0|o)){s=18;break}if(-1==(0|(a=0|Wi(0|ar[d>>2])))){s=18;break}tr[A>>0]=a,o=o+1|0}if(16==(0|s))ar[k>>2]=tr[f>>0];else if(18==(0|s)){o=-1;break}s=19}}while(0);A:do{if(19==(0|s)){e:do{if(!e){do{if((0|o)<=0)break e;w=0|gf(0|tr[f+(o=o+-1|0)>>0])}while(-1!=(0|uf(w,0|ar[d>>2])));o=-1;break A}w=0|gf(0|ar[k>>2]),ar[n>>2]=w}while(0);o=0|gf(0|ar[k>>2])}}while(0)}}return ur=t,0|o}function nn(A){kf(A|=0)}function tn(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(i=ur=(t=ur)+31&-32,ur=ur+32|0,f=16+i|0,k=8+i|0,r=4+i|0,n=(A|=0)+48|0,0|tr[(a=A+52|0)>>0])o=0|ar[n>>2],e&&(k=-1,ar[n>>2]=k,tr[a>>0]=0);else{for(o=1<(0|(o=0|ar[A+44>>2]))?o:1,d=A+32|0,a=0;;){if((0|o)<=(0|a)){s=9;break}if(-1==(0|(c=0|Wi(0|ar[d>>2])))){s=8;break}tr[f+a>>0]=c,a=a+1|0}if(8==(0|s))o=-1;else if(9==(0|s)){do{if(0|tr[A+53>>0])tr[k>>0]=0|tr[f>>0],s=19;else{b=A+40|0,l=A+36|0,u=k+1|0;A:for(;;){switch(h=0|ar[b>>2],a=0|ar[(c=h)>>2],c=0|ar[c+4>>2],w=0|ar[l>>2],A=f+o|0,0|es[15&ar[16+(0|ar[w>>2])>>2]](w,h,f,A,r,k,u,i)){case 3:s=16;break A;case 2:s=18;break A;case 1:break;default:break A}if(w=0|ar[b>>2],ar[w>>2]=a,ar[w+4>>2]=c,8==(0|o)){s=18;break}if(-1==(0|(a=0|Wi(0|ar[d>>2])))){s=18;break}tr[A>>0]=a,o=o+1|0}if(16==(0|s))tr[k>>0]=0|tr[f>>0];else if(18==(0|s)){o=-1;break}s=19}}while(0);A:do{if(19==(0|s)){e:do{if(!e){do{if((0|o)<=0)break e;w=0|hf(0|tr[f+(o=o+-1|0)>>0])}while(-1!=(0|uf(w,0|ar[d>>2])));o=-1;break A}w=0|hf(0|tr[k>>0]),ar[n>>2]=w}while(0);o=0|hf(0|tr[k>>0])}}while(0)}}return ur=t,0|o}function on(A){an(A|=0)}function an(A){0}function cn(A){an()}function ln(A,e){e|=0,ar[(A|=0)>>2]=ar[e>>2]}function un(A,e){return e|=0,A=0|ar[(A|=0)>>2],0|(r=A,i=0|hn(e),i|=0,0|ar[(0|ar[8+(r|=0)>>2])+(i<<2)>>2]);var r,i}function bn(A){lu(0|ar[(A|=0)>>2])}function sn(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b=0,s=0;u=(0|(l=0|ar[(i|=0)>>2]))==(0|r);do{if(u){if(!(b=(0|tr[c+24>>0])==A<<24>>24)&&(0|tr[c+25>>0])!=A<<24>>24){s=5;break}ar[i>>2]=r+1,tr[r>>0]=b?43:45,b=ar[f>>2]=0}else s=5}while(0);A:do{if(5==(0|s)){if(s=0|tr[t+11>>0],A<<24>>24==n<<24>>24&&0!=(0|(s<<24>>24<0?0|ar[t+4>>2]:255&s))){if(160<=((b=0|ar[a>>2])-o|0)){b=0;break}i=0|ar[f>>2],ar[a>>2]=b+4,ar[b>>2]=i,b=ar[f>>2]=0;break}for(t=c+26|0,n=0;;){if(b=c+n|0,26==(0|n)){b=t;break}if((0|tr[b>>0])==A<<24>>24)break;n=n+1|0}if(23<(0|(b=b-c|0)))b=-1;else{switch(n=53648+b|0,0|e){case 10:case 8:if((0|e)<=(0|b)){b=-1;break A}break;case 16:if(22<=(0|b)){if(u){b=-1;break A}if(3<=(l-r|0)){b=-1;break A}if(48!=(0|tr[l-1>>0])){b=-1;break A}b=(ar[f>>2]=0)|tr[n>>0],ar[i>>2]=1+l,tr[l>>0]=b,b=0;break A}}b=0|tr[n>>0],ar[i>>2]=1+l,tr[l>>0]=b,ar[f>>2]=1+(0|ar[f>>2]),b=0}}}while(0);return 0|b}function dn(){var A=0;return 0==(0|tr[56624])&&0|ib(56624)&&(A=0|function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;i=ur=(f=ur)+31&-32,ur=ur+32|0;A:do{if(0|nf(r))for(n=0;1<>2]=a),6!=(0|(n=n+1|0)););else{for(a=0==(0|r),o=t=0;t=(0!=(0|(n=a|(n=0!=(1<>2]))&1)+t|0,ar[i+(o<<2)>>2]=n,6!=(0|(o=o+1|0)););switch(0|t){case 0:r=58128;break A;case 1:if(10100!=(0|ar[i>>2]))break;r=10148;break A}}}while(0);return ur=f,0|r}(2147483647,53684,0),ar[14810]=A),0|ar[14810]}function kn(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n;return n=ur=(f=ur)+31&-32,ur=ur+16|0,ar[n>>2]=i,i=0|rf(e),e=0|Hi(A,r,n),0|i&&rf(i),ur=f,0|e}function hn(A){A|=0;var e,r,i,f,n=0;return n=ur=(f=ur)+31&-32,ur=ur+48|0,e=n+32|0,r=n+24|0,ar[(n=(i=n)+16|0)>>2]=442,ar[n+4>>2]=0,ar[e>>2]=ar[n>>2],ar[4+e>>2]=ar[n+4>>2],function(A,e,r){A|=0,r|=0;var i;i=0|ar[(e=e|0)>>2],e=0|ar[e+4>>2],ar[A>>2]=r,ar[A+4>>2]=i,ar[A+8>>2]=e}(i,e,A),-1!=(0|ar[A>>2])&&(ar[e>>2]=i,ar[r>>2]=e,function(A,e,r){A|=0,e|=0,r|=0,gb();for(;1==(0|ar[A>>2]);)hA(61100,61072);0|ar[A>>2]?Zb():(ar[A>>2]=1,Zb(),is[511&r](e),gb(),ar[A>>2]=-1,Zb(),mb())}(A,r,443)),ur=f,(0|ar[A+4>>2])-1|0}function wn(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t;t=ur=(n=ur)+31&-32,ur=ur+16|0,Tf(t,e|=0),e=0|un(t,59232),Pb[7&ar[32+(0|ar[e>>2])>>2]](e,53648,53680,r),r=0|un(t,59248),e=0|jb[127&ar[12+(0|ar[r>>2])>>2]](r),tr[i>>0]=e,i=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),tr[f>>0]=i,fs[63&ar[20+(0|ar[r>>2])>>2]](A,r),bn(t),ur=n}function vn(A,e,r,i,f,n,t,o,a,c,l,u){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,c|=0,l|=0,u|=0;var b,s=0,d=0;b=a|=0;A:do{if(A<<24>>24==n<<24>>24)a=0|tr[e>>0]?(r=(tr[e>>0]=0)|ar[f>>2],ar[f>>2]=r+1,tr[r>>0]=46,0!=(0|((f=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&f))&&((s=0|ar[c>>2])-b|0)<160&&(a=0|ar[l>>2],ar[c>>2]=s+4,ar[s>>2]=a),0):-1;else{if(A<<24>>24==t<<24>>24&&0|((t=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&t)){if(!(0|tr[e>>0])){a=-1;break}if(160<=((a=0|ar[c>>2])-b|0)){a=0;break}f=0|ar[l>>2],ar[c>>2]=a+4,ar[a>>2]=f,a=ar[l>>2]=0;break}for(n=u+32|0,s=0;;){if(a=u+s|0,32==(0|s)){a=n;break}if((0|tr[a>>0])==A<<24>>24)break;s=s+1|0}if(31<(0|(s=a-u|0)))a=-1;else switch(n=0|tr[53648+s>>0],0|s){case 24:case 25:if((0|(a=0|ar[f>>2]))!=(0|i)&&(95&tr[a+-1>>0])!=(127&tr[r>>0])){a=-1;break A}ar[f>>2]=a+1,tr[a>>0]=n,a=0;break A;case 23:case 22:tr[r>>0]=80,a=0|ar[f>>2],ar[f>>2]=a+1,tr[a>>0]=n,a=0;break A;default:if((0|(a=95&n))==(0|tr[r>>0])&&(tr[r>>0]=128|a,0|tr[e>>0])&&(tr[e>>0]=0)|((r=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&r)&&((d=0|ar[c>>2])-b|0)<160&&(r=0|ar[l>>2],ar[c>>2]=d+4,ar[d>>2]=r),c=0|ar[f>>2],ar[f>>2]=c+1,tr[c>>0]=n,21<(0|s)){a=0;break A}ar[l>>2]=1+(0|ar[l>>2]),a=0;break A}}}while(0);return 0|a}function mn(A,e,r){r|=0;var i,f,n=0,t=0,o=0;return i=ur=(f=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0))?(ar[r>>2]=4,n=0):(t=0|ar[(t=10364)>>2],ar[10364>>2]=0,n=+$i(A,i,dn()),(A=0|ar[(A=10364)>>2])||(ar[10364>>2]=t),(0|ar[i>>2])==(0|e)?34==(0|A)&&(o=6):(n=0,o=6),6==(0|o)&&(ar[r>>2]=4)),ur=f,+n}function gn(A,e,r,i){e|=0,r|=0,i|=0;var f,n=0,t=0,o=0,a=0,c=0,l=0;f=(a=0|tr[(A|=0)+11>>0])<<24>>24<0,n=0|ar[(o=A+4|0)>>2],a&=255;do{if(0|(f?n:a)){if((0|e)!=(0|r)){for(n=r,t=e;!((n=n+-4|0)>>>0<=t>>>0);)l=0|ar[t>>2],ar[t>>2]=ar[n>>2],ar[n>>2]=l,t=t+4|0;n=0|ar[o>>2]}for(r=r+-4|0,A=(l=f?0|ar[A>>2]:A)+(f?n:a)|0,n=l;o=0<(t=0|tr[n>>0])<<24>>24&t<<24>>24!=127,!(r>>>0<=e>>>0);){if(o&&(t<<24>>24|0)!=(0|ar[e>>2])){c=10;break}e=e+4|0,n=1<(A-n|0)?n+1|0:n}if(10==(0|c)){ar[i>>2]=4;break}o&&((0|ar[r>>2])-1|0)>>>0>=t<<24>>24>>>0&&(ar[i>>2]=4)}}while(0)}function Zn(A,e,r){r|=0;var i,f,n=0,t=0,o=0;return i=ur=(f=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0))?(ar[r>>2]=4,n=0):(t=0|ar[(t=10364)>>2],ar[10364>>2]=0,n=+qi(A,i,dn()),(A=0|ar[(A=10364)>>2])||(ar[10364>>2]=t),(0|ar[i>>2])==(0|e)?34==(0|A)&&(o=6):(n=0,o=6),6==(0|o)&&(ar[r>>2]=4)),ur=f,+n}function pn(A,e,r){r|=0;var i,f,n=0,t=0,o=0;return i=ur=(f=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0))?(ar[r>>2]=4,n=0):(t=0|ar[(t=10364)>>2],ar[10364>>2]=0,n=+Ki(A,i,dn()),(A=0|ar[(A=10364)>>2])||(ar[10364>>2]=t),(0|ar[i>>2])==(0|e)?34==(0|A)&&(o=6):(n=0,o=6),6==(0|o)&&(ar[r>>2]=4)),ur=f,+n}function yn(A){switch(74&ar[(A|=0)+4>>2]){case 64:A=8;break;case 8:A=16;break;case 0:A=0;break;default:A=10}return 0|A}function Bn(A,e,r,i){A|=0,r|=0,i|=0;var f,n;n=ur=(f=ur)+31&-32,ur=ur+16|0,Tf(n,e|=0),e=0|un(n,59232),Pb[7&ar[32+(0|ar[e>>2])>>2]](e,53648,53674,r),r=0|un(n,59248),e=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),tr[i>>0]=e,fs[63&ar[20+(0|ar[r>>2])>>2]](A,r),bn(n),ur=f}function En(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;do{if((0|A)==(0|e))ar[r>>2]=4,A=i=0;else{if(45==(0|tr[A>>0])){ar[r>>2]=4,A=i=0;break}o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|il(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o),(0|ar[f>>2])==(0|e)?34==(0|t)&&(i=A=-1,a=8):(i=A=0,a=8),8==(0|a)&&(ar[r>>2]=4)}}while(0);return D=i,ur=n,0|A}function Xn(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;do{if((0|A)==(0|e))ar[r>>2]=4,A=0;else{if(45==(0|tr[A>>0])){ar[r>>2]=4,A=0;break}o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|il(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o);do{if((0|ar[f>>2])==(0|e)){if(0>>0|0==(0|i)&4294967295>>0|34==(0|t)){ar[r>>2]=4,A=-1;break}break}ar[r>>2]=4,A=0}while(0)}}while(0);return ur=n,0|A}function Wn(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;do{if((0|A)==(0|e))ar[r>>2]=4,A=0;else{if(45==(0|tr[A>>0])){ar[r>>2]=4,A=0;break}o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|il(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o);do{if((0|ar[f>>2])==(0|e)){if(0>>0|0==(0|i)&4294967295>>0|34==(0|t)){ar[r>>2]=4,A=-1;break}break}ar[r>>2]=4,A=0}while(0)}}while(0);return ur=n,0|A}function In(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0;f=ur=(n=ur)+31&-32,ur=ur+16|0;do{if((0|A)==(0|e))ar[r>>2]=4,A=0;else{if(45==(0|tr[A>>0])){ar[r>>2]=4,A=0;break}o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|il(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o);do{if((0|ar[f>>2])==(0|e)){if(0>>0|0==(0|i)&65535>>0|34==(0|t)){ar[r>>2]=4,A=-1;break}A&=65535;break}ar[r>>2]=4,A=0}while(0)}}while(0);return ur=n,0|A}function Cn(A,e,r,i){r|=0,i|=0;var f,n,t=0,o=0;return f=ur=(n=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0))?(ar[r>>2]=4,A=i=0):(o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|pi(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o),(0|ar[f>>2])==(0|e)?34==(0|t)&&(ar[r>>2]=4,A=(i=0<(0|i)|0==(0|i)&0>>0)?-1:0,i=i?2147483647:-2147483648):(ar[r>>2]=4,i=A=0)),D=i,ur=n,0|A}function Gn(A,e,r,i){r|=0,i|=0;var f,n,t=0,o=0;if(f=ur=(n=ur)+31&-32,ur=ur+16|0,(0|(A|=0))==(0|(e|=0)))ar[r>>2]=4,A=0;else{o=0|ar[(o=10364)>>2],A=(ar[(t=10364)>>2]=0)|pi(A,f,i,dn()),i=D,(t=0|ar[(t=10364)>>2])||(ar[10364>>2]=o);A:do{if((0|ar[f>>2])==(0|e)){do{if(34!=(0|t)){if((0|i)<-1|-1==(0|i)&A>>>0<2147483648){ar[r>>2]=4;break}if(0<(0|i)|0==(0|i)&2147483647>>0){ar[r>>2]=4,A=2147483647;break A}break A}if(ar[r>>2]=4,0<(0|i)|0==(0|i)&0>>0){A=2147483647;break A}}while(0);A=-2147483648}else ar[r>>2]=4,A=0}while(0)}return ur=n,0|A}function Vn(A,e,r,i,f,n,t){A|=0,e|=0,f|=0,n|=0,t|=0;var o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;for(c=ur=(o=ur)+31&-32,ur=ur+112|0,100<(l=((i|=0)-(r|=0)|0)/12|0)>>>0?(c=0|yc(l))?g=a=c:gu():(a=c,g=0),b=r,s=a,c=0;(0|b)!=(0|i);)(u=0|tr[b+11>>0])<<24>>24<0?u=0|ar[b+4>>2]:u&=255,u?tr[s>>0]=1:(tr[s>>0]=2,l=l+-1|0,c=c+1|0),b=b+12|0,s=s+1|0;m=0,w=c;A:for(;;){c=0|ar[A>>2];do{if(c){if(0|Mf(c=(0|(u=0|ar[c+12>>2]))==(0|ar[c+16>>2])?0|jb[127&ar[36+(0|ar[c>>2])>>2]](c):0|hf(0|tr[u>>0]),-1)){ar[A>>2]=0,s=1;break}s=0==(0|ar[A>>2]);break}s=1}while(0);if(c=(u=0|ar[e>>2])?0|Mf(c=(0|(c=0|ar[u+12>>2]))==(0|ar[u+16>>2])?0|jb[127&ar[36+(0|ar[u>>2])>>2]](u):0|hf(0|tr[c>>0]),-1)?(u=ar[e>>2]=0,1):0:(u=0,1),b=0|ar[A>>2],!(0!=(0|l)&(s^c)))break;for(c=(0|(c=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|hf(0|tr[c>>0]),c&=255,t||(c=0|Hb[31&ar[12+(0|ar[f>>2])>>2]](f,c)),v=m+1|0,k=r,d=0,h=a;(0|k)!=(0|i);){do{if(1==(0|tr[h>>0])){if(u=(0|tr[(b=k+11|0)>>0])<0?0|ar[k>>2]:k,u=0|tr[u+m>>0],t||(u=0|Hb[31&ar[12+(0|ar[f>>2])>>2]](f,u)),s=l+-1|0,c<<24>>24!=u<<24>>24){tr[h>>0]=0,u=d,b=w,l=s;break}(u=0|tr[b>>0])<<24>>24<0?u=0|ar[k+4>>2]:u&=255,(0|u)==(0|v)?(tr[h>>0]=2,b=w+(u=1)|0,l=s):(u=1,b=w)}else u=d,b=w}while(0);k=k+12|0,d=u,h=h+1|0,w=b}if(d)if(c=0|ar[A>>2],(0|(b=0|ar[(u=c+12|0)>>2]))==(0|ar[c+16>>2])?jb[127&ar[40+(0|ar[c>>2])>>2]](c):(ar[u>>2]=b+1,hf(0|tr[b>>0])),1<(w+l|0)>>>0)for(b=r,s=a,c=w;;){if((0|b)==(0|i)){m=v,w=c;continue A}2==(0|tr[s>>0])&&((u=0|tr[b+11>>0])<<24>>24<0?u=0|ar[b+4>>2]:u&=255,(0|u)!=(0|v)&&(c=c+-1|(tr[s>>0]=0))),b=b+12|0,s=s+1|0}else m=v;else m=v}do{if(b){if(0|Mf(c=(0|(c=0|ar[b+12>>2]))==(0|ar[b+16>>2])?0|jb[127&ar[36+(0|ar[b>>2])>>2]](b):0|hf(0|tr[c>>0]),-1)){ar[A>>2]=0,l=1;break}l=0==(0|ar[A>>2]);break}l=1}while(0);do{if(u){if(0|Mf(c=(0|(c=0|ar[u+12>>2]))==(0|ar[u+16>>2])?0|jb[127&ar[36+(0|ar[u>>2])>>2]](u):0|hf(0|tr[c>>0]),-1)){ar[e>>2]=0,Z=41;break}if(l)break;Z=77;break}Z=41}while(0);for(41==(0|Z)&&l&&(Z=77),77==(0|Z)&&(ar[n>>2]=2|ar[n>>2]);;){if((0|r)==(0|i)){Z=81;break}if(2==(0|tr[a>>0]))break;r=r+12|0,a=a+1|0}return 81==(0|Z)&&(ar[n>>2]=4|ar[n>>2],r=i),Bc(g),ur=o,0|r}function Fn(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b=0,s=0;u=(0|(l=0|ar[(i|=0)>>2]))==(0|r);do{if(u){if(!(b=(0|ar[c+96>>2])==(0|A))&&(0|ar[c+100>>2])!=(0|A)){s=5;break}ar[i>>2]=r+1,tr[r>>0]=b?43:45,b=ar[f>>2]=0}else s=5}while(0);A:do{if(5==(0|s)){if(s=0|tr[t+11>>0],(0|A)==(0|n)&&0!=(0|(s<<24>>24<0?0|ar[t+4>>2]:255&s))){if(160<=((b=0|ar[a>>2])-o|0)){b=0;break}i=0|ar[f>>2],ar[a>>2]=b+4,ar[b>>2]=i,b=ar[f>>2]=0;break}for(t=c+104|0,n=0;;){if(b=c+(n<<2)|0,26==(0|n)){b=t;break}if((0|ar[b>>2])==(0|A))break;n=n+1|0}if(n=(b=b-c|0)>>2,92<(0|b))b=-1;else{switch(t=53648+n|0,0|e){case 10:case 8:if((0|e)<=(0|n)){b=-1;break A}break;case 16:if(88<=(0|b)){if(u){b=-1;break A}if(3<=(l-r|0)){b=-1;break A}if(48!=(0|tr[l-1>>0])){b=-1;break A}b=(ar[f>>2]=0)|tr[t>>0],ar[i>>2]=1+l,tr[l>>0]=b,b=0;break A}}b=0|tr[t>>0],ar[i>>2]=1+l,tr[l>>0]=b,ar[f>>2]=1+(0|ar[f>>2]),b=0}}}while(0);return 0|b}function Rn(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t;t=ur=(n=ur)+31&-32,ur=ur+16|0,Tf(t,e|=0),e=0|un(t,59264),Pb[7&ar[48+(0|ar[e>>2])>>2]](e,53648,53680,r),r=0|un(t,59272),e=0|jb[127&ar[12+(0|ar[r>>2])>>2]](r),ar[i>>2]=e,i=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),ar[f>>2]=i,fs[63&ar[20+(0|ar[r>>2])>>2]](A,r),bn(t),ur=n}function Nn(A,e,r,i,f,n,t,o,a,c,l,u){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,c|=0,l|=0,u|=0;var b,s=0,d=0;b=a|=0;A:do{if((0|A)==(0|n))a=0|tr[e>>0]?(r=(tr[e>>0]=0)|ar[f>>2],ar[f>>2]=r+1,tr[r>>0]=46,0!=(0|((f=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&f))&&((s=0|ar[c>>2])-b|0)<160&&(a=0|ar[l>>2],ar[c>>2]=s+4,ar[s>>2]=a),0):-1;else{if((0|A)==(0|t)&&0|((t=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&t)){if(!(0|tr[e>>0])){a=-1;break}if(160<=((a=0|ar[c>>2])-b|0)){a=0;break}f=0|ar[l>>2],ar[c>>2]=a+4,ar[a>>2]=f,a=ar[l>>2]=0;break}for(n=u+128|0,s=0;;){if(a=u+(s<<2)|0,32==(0|s)){a=n;break}if((0|ar[a>>2])==(0|A))break;s=s+1|0}if(a=(s=a-u|0)>>2,(0|s)<=124){switch(n=0|tr[53648+a>>0],0|a){case 24:case 25:if((0|(a=0|ar[f>>2]))!=(0|i)&&(95&tr[a+-1>>0])!=(127&tr[r>>0])){a=-1;break A}ar[f>>2]=a+1,tr[a>>0]=n,a=0;break A;case 23:case 22:tr[r>>0]=80;break;default:(0|(a=95&n))==(0|tr[r>>0])&&(tr[r>>0]=128|a,0|tr[e>>0])&&(tr[e>>0]=0)|((r=0|tr[o+11>>0])<<24>>24<0?0|ar[o+4>>2]:255&r)&&((d=0|ar[c>>2])-b|0)<160&&(r=0|ar[l>>2],ar[c>>2]=d+4,ar[d>>2]=r)}c=0|ar[f>>2],ar[f>>2]=c+1,tr[c>>0]=n,a=(84<(0|s)||(ar[l>>2]=1+(0|ar[l>>2])),0)}else a=-1}}while(0);return 0|a}function _n(A,e,r,i){A|=0,r|=0,i|=0;var f,n;n=ur=(f=ur)+31&-32,ur=ur+16|0,Tf(n,e|=0),e=0|un(n,59264),Pb[7&ar[48+(0|ar[e>>2])>>2]](e,53648,53674,r),r=0|un(n,59272),e=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),ar[i>>2]=e,fs[63&ar[20+(0|ar[r>>2])>>2]](A,r),bn(n),ur=f}function Yn(A){gb(A|=0)}function Qn(A){Zb(A|=0)}function Dn(A){ar[(A|=0)>>2]=0,pA(A+4|0,0),dA(A+32|0,0)}function Jn(A){ZA((A|=0)+4|0),sA(A+32|0)}function Mn(A,e){e|=0;var r,i=0;if(!((0|ar[(A|=0)>>2])>=(0|e))){if(gb(r=A+4|0),(0|ar[A>>2])<(0|e))for(i=A+32|0;hA(0|i,0|r),(0|ar[A>>2])<(0|e););Zb()}}function Tn(A,e){e|=0;var r;gb(r=(A|=0)+4|0),(0|ar[A>>2])>=(0|e)||(ar[A>>2]=e,mb()),Zb()}function Un(A,e){e|=0;var r;gb(r=(A|=0)+4|0),ar[A>>2]=(0|ar[A>>2])+e,mb(),Zb()}function Sn(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0;gb(n=(A|=0)+420|0),0|tr[A>>0]||(t=0|ar[(i=A+8|0)>>2],c=(0|ar[A+12>>2])-t|0,a=0|ar[(o=A+20|0)>>2],(0|(0==(0|c)?0:(c<<8)-1|0))==((r=0|ar[(f=A+24|0)>>2])+a|0)?(function(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(s=ur)+32|0,c=s+4|0,a=s,1023<(r=0|ar[(e=16+(A|=0)|0)>>2])>>>0){ar[e>>2]=r+-1024,c=0|ar[(l=A+4|0)>>2],b=0|ar[c>>2],c=c+4|0,ar[l>>2]=c,o=0|ar[(u=A+8|0)>>2],t=0|ar[(a=A+12|0)>>2],e=t,n=o;do{if((0|o)==(0|t)){if(r=0|ar[A>>2],(i=r)>>>0>>0){f=(e=c)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|c,0|e),0|ar[l>>2]):c,A=f+(r<<2)|0,ar[u>>2]=A,ar[l>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),f=0|hu(e<<2),t=i=(n=f)+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|c)==(0|o))e=t;else{for(e=t,r=c;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[l>>2]=t,ar[u>>2]=e,ar[a>>2]=f,r&&(vu(r),e=0|ar[u>>2])}else e=o}while(0);return ar[e>>2]=b,ar[u>>2]=4+(0|ar[u>>2]),ur=s}if(e=0|ar[(b=A+8|0)>>2],f=e-(0|ar[(u=A+4|0)>>2])|0,r=0|ar[(l=A+12|0)>>2],i=r-(0|ar[A>>2])|0,i>>>0<=f>>>0){for(e=0==(0|(e=i>>1))?1:e,ar[c+12>>2]=0,ar[c+16>>2]=A+12,1073741823>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),i=0|hu(e<<2),ar[c>>2]=i,t=i+(f>>2<<2)|0,ar[(o=c+8|0)>>2]=t,ar[(n=c+4|0)>>2]=t,ar[(t=c+12|0)>>2]=i+(e<<2),f=0|hu(4096),ar[a>>2]=f,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(c,a),f=0|ar[b>>2];e=0|ar[u>>2],(0|f)!=(0|e);)On(c,a=f+-4|0),f=a;return r=e,i=0|ar[A>>2],ar[A>>2]=ar[c>>2],ar[c>>2]=i,ar[u>>2]=ar[n>>2],ar[n>>2]=r,e=0|ar[b>>2],ar[b>>2]=ar[o>>2],ar[o>>2]=e,A=0|ar[l>>2],ar[l>>2]=ar[t>>2],ar[t>>2]=A,(0|e)!=(0|f)&&(ar[o>>2]=e+(~((e+-4-r|0)>>>2)<<2)),0|i&&vu(i),ur=s}if((0|r)!=(0|e))return b=0|hu(4096),ar[c>>2]=b,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(A,c),ur=s;a=0|hu(4096),ar[c>>2]=a,function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=4+(A|=0)|0)>>2],b=0|ar[A>>2],n=b;do{if((0|r)==(0|b)){if(f=0|ar[(b=A+8|0)>>2],l=0|ar[(u=A+12|0)>>2],f>>>0<(i=l)>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),a=0|hu(n<<2),l=i=(c=a)+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}(A,c),a=0|ar[u>>2],c=0|ar[a>>2],a=a+4|0,ar[u>>2]=a,o=0|ar[b>>2],t=0|ar[l>>2],e=t,n=o;do{if((0|o)==(0|t)){if(r=0|ar[A>>2],(i=r)>>>0>>0){f=(e=a)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|a,0|e),0|ar[u>>2]):a,A=f+(r<<2)|0,ar[b>>2]=A,ar[u>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),f=0|hu(e<<2),t=i=(n=f)+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|a)==(0|o))e=t;else{for(e=t,r=a;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[u>>2]=t,ar[b>>2]=e,ar[l>>2]=f,r&&(vu(r),e=0|ar[b>>2])}else e=o}while(0);ar[e>>2]=c,ar[b>>2]=4+(0|ar[b>>2]),ur=s}(A+4|0),a=0|ar[o>>2],o=0|ar[f>>2],t=0|ar[i>>2]):o=r,ar[(0|ar[t+((c=o+a|0)>>>10<<2)>>2])+((1023&c)<<2)>>2]=e,ar[f>>2]=o+1,kA(A+448|0)),Zb()}function On(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=(A|=0)+4|0)>>2],n=b=0|ar[A>>2];do{if((0|r)==(0|b)){if((f=0|ar[(b=A+8|0)>>2])>>>0<(i=l=0|ar[(u=A+12|0)>>2])>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),l=i=(c=a=0|hu(n<<2))+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}function zn(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;u=5932+(o=0|ar[(a=(A|=0)+18596|0)>>2])|0,t=0|ar[(b=A+18600|0)>>2],n=(h=-1<>2])&i,h&=f,r=A+18536|0,(0|n)==(0|ar[(e=A+18532|0)>>2])&&(0|h)==(0|ar[r>>2])||(ar[A+18540>>2]=ar[A+18528>>2],ar[e>>2]=n,ar[r>>2]=h),k=5804+o|0,l=n?0:0==((1<>2])-1&h|0),e=0|ar[800+t>>2],r=0|ar[5820+o>>2],c=0|ar[5812+o>>2],r=(0|br(c,(0|e)%(0|r)|0))==(0|n)?(0|br((0|e)/(0|r)|0,c))==(0|h):0,e=0!=(0|tr[5966+o>>0])&&0==((1<<(s=0|ar[k>>2]))-1&(n|h)|0)?0|Fa(u,n>>s,h>>s):0;do{if(r|e)d=14;else{if(l&&0|tr[5965+o>>0]){d=14;break}e=A+18540|0}}while(0);14==(0|d)&&(e=792+(0|ar[b>>2])|0),u=0|ar[e>>2],e=n-1|0;do{if(0|da(0|ar[a>>2],n,h,e,h)&&(d=0|ar[5864+o>>2],s=(0|br(h>>d,0|ar[5852+o>>2]))+(e>>d)|0,(ar[(0|ar[10320+o>>2])+(s<<2)>>2]>>((0|ar[k>>2])-d<<1)|0)==(0|ar[A+4>>2]))){if(l=0|ar[a>>2],e>>=r=0|ar[l+10368>>2],r=h>>r,(0|e)<=-1&&sr(48482,48519,118,48539),(0|(c=0|ar[l+10372>>2]))<=(0|e)&&sr(48482,48519,118,48539),(0|r)<=-1&&sr(48543,48519,119,48539),(0|r)<(0|ar[l+10376>>2])){w=(0|ar[l+10360>>2])+(3*((0|br(c,r))+e|0)|0)+2|0,w=0|tr[w>>0];break}sr(48543,48519,119,48539)}else w=u}while(0);e=h+-1|0;do{if(0|da(0|ar[a>>2],n,h,n,e)&&(h=0|ar[5864+o>>2],d=(0|br(e>>h,0|ar[5852+o>>2]))+(n>>h)|0,(ar[(0|ar[10320+o>>2])+(d<<2)>>2]>>((0|ar[k>>2])-h<<1)|0)==(0|ar[A+4>>2]))){if(l=0|ar[a>>2],e>>=h=0|ar[l+10368>>2],(0|(c=n>>h))<=-1&&sr(48482,48519,118,48539),(0|(r=0|ar[l+10372>>2]))<=(0|c)&&sr(48482,48519,118,48539),(0|e)<=-1&&sr(48543,48519,119,48539),(0|e)<(0|ar[l+10376>>2])){v=(0|ar[l+10360>>2])+(3*((0|br(r,e))+c|0)|0)+2|0,v=0|tr[v>>0];break}sr(48543,48519,119,48539)}else v=u}while(0);h=0|ar[5764+o>>2],h=(e=(52+(0|ar[A+18512>>2])+(w+1+v>>1)+(h<<1)|0)%(h+52|0)|0)-h|0,ar[A+18544>>2]=e,e=(0|(e=(0|ar[5952+o>>2])+h+(0|ar[744+t>>2])+(0|ar[A+18520>>2])|0))<(0|(v=0-(c=0|ar[5772+o>>2])|0))?v:(0|e)<57?e:57,r=(0|(r=(0|ar[5956+o>>2])+h+(0|ar[748+t>>2])+(0|ar[A+18524>>2])|0))<(0|v)?v:(0|r)<57?r:57;do{if(1==(0|ar[5776+o>>2])){do{if(30<=(0|e)){if(42<(0|e)){e=e+-6|0;break}e=0|ar[8020+(e+-30<<2)>>2];break}}while(0);if(30<=(0|r)){if(42<(0|r)){r=r+-6|0;break}r=0|ar[8020+(r+-30<<2)>>2];break}}}while(0);if(ar[A+18548>>2]=c+e,ar[A+18552>>2]=c+r,e=0|ar[a>>2],c=f>>(r=0|ar[e+10368>>2]),(0|(k=i>>r))<=-1&&sr(48482,48519,118,48539),(0|(d=0|ar[e+10372>>2]))<=(0|k)&&sr(48482,48519,118,48539),(0|c)<=-1&&sr(48543,48519,119,48539),(0|c)>=(0|ar[e+10376>>2])&&sr(48543,48519,119,48539),f=(s=0|ar[e+10360>>2])+(3*((0|br(d,c))+k|0)|0)|0,b=(e=1<<(f=(3<(f=7&(cr[f>>0]|cr[f+1>>0]<<8))>>>0?f:3)-r|0))+c|0,31!=(0|f)){l=e+k|0,u=255&h,e=c;do{for(c=0|br(e,d),r=k;tr[s+(3*(r+c|0)|0)+2>>0]=u,(0|(r=r+1|0))<(0|l););e=e+1|0}while((0|e)<(0|b));ar[(A=A+18528|0)>>2]=h}else ar[(A=A+18528|0)>>2]=h}function jn(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l;return l=0|ar[(A|=0)+18596>>2],8<(0|ar[(0==(0|t)?5760+l|0:5768+l|0)>>2])?void function(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b,s,d,k,h,w,v,m,g,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0;switch(ur=(g=ur)+4096|0,s=g,b=0|ar[(k=18596+(A|=0)|0)>>2],0|t){case 0:Z=A+18544|0;break;case 1:Z=A+18548|0;break;case 2:Z=A+18552|0;break;default:sr(44456,44443,367,44458)}X=0|ar[Z>>2],i=0|ar[(m=A+2112|0)>>2],h=0|ar[((d=0==(0|t))?40+b|0:44+b|0)>>2],v=(0|ar[4+b+(t<<2)>>2])+((0|br(h,r))+e<<1)|0,w=0|ar[(d?5760+b|0:5768+b|0)>>2],f=0|ar[10368+b>>2],e>>=f,f=r>>f,(0|e)<=-1&&sr(48482,48519,118,48539);Z=0|ar[10372+b>>2],(0|Z)<=(0|e)&&sr(48482,48519,118,48539);(0|f)<=-1&&sr(48543,48519,119,48539);(0|f)>=(0|ar[10376+b>>2])&&sr(48543,48519,119,48539);I=(0|ar[10360+b>>2])+(3*((0|br(Z,f))+e|0)|0)|0,I=(65535&(cr[I>>0]|cr[I+1>>0]<<8))>>>8&3,l=65535&I,I=(u=4==(0|n))&0!=(0|tr[5748+b>>0])&I<<16>>16==0;A:do{if(0|tr[A+32>>0]){if(r=d?A+14412|0:s,0<(0|or[(Z=A+14404+(t<<1)|0)>>1]))for(f=0;or[i+(or[A+8260+(t<<11)+(f<<1)>>1]<<1)>>1]=0|or[A+2116+(t<<11)+(f<<1)>>1],(0|(f=f+1|0))<(0|or[Z>>1]););I&&fs[63&ar[432+(0|ar[A+18592>>2])>>2]](i,4);do{if(c){if(f=0|ar[A+18592>>2],2==(0|c)){ns[127&ar[f+368>>2]](r,i,n);break}ns[127&ar[f+372>>2]](r,i,n);break}ns[127&ar[364+(0|ar[A+18592>>2])>>2]](r,i,n)}while(0);if(!d&&0|ar[(p=A+28|0)>>2]&&(B=0|ar[k>>2],y=0|ar[B+5768>>2],B=0|ar[B+5760>>2],0<(0|n))){f=0;do{for(e=0|br(f,n),Z=0;R=(0|br(ar[A+14412+((N=Z+e|0)<<2)>>2]<>B,0|ar[p>>2]))>>3,ar[(N=r+(N<<2)|0)>>2]=R+(0|ar[N>>2]),(0|(Z=Z+1|0))!=(0|n););f=f+1|0}while((0|f)!=(0|n))}if(os[63&ar[460+(0|ar[A+18592>>2])>>2]](v,h,r,n,w),I)for(f=i+32|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););}else{if(E=1<(0|n))for(Z=n,f=0;f=f+1|0,3>>0;)Z>>>=1;else f=0;if(B=(f=f+w|0)+-5|0,0|tr[1400+b>>0]){y=1<>>2|a<<30|0){case 0:W=5993+b+(f<<4)|0;break;case 1:W=6089+b+(f<<6)|0;break;case 3:W=6473+b+(f<<8)|0;break;case 7:W=8009+b+(f<<10)|0;break;default:sr(44456,44443,492,44458)}if(0<(0|or[(r=A+14404+(t<<1)|0)>>1]))for(p=0|ar[8072+(((0|X)%6|0)<<2)>>2],Z=(0|X)/6|0,e=((0|y)<0)<<31>>31,f=0;X=0|or[A+8260+(t<<11)+(f<<1)>>1],R=(0|br(0|cr[W+X>>0],p))<>1],a=0|bb(0|(a=0|tb(0|(a=0|nb(0|R,((0|R)<0)<<31>>31|0,0|a,((0|a)<0)<<31>>31|0)),0|D,0|y,0|e)),0|D,0|B),F=(0|(R=D))<-1|-1==(0|R)&a>>>0<4294934528,a=(N=(0|R)<0|0==(0|R)&a>>>0<32767)?a:32767,or[i+(X<<1)>>1]=F?-32768:65535&a,(0|(f=f+1|0))<(0|or[r>>1]););}else if(p=f+-9|0,r=1<>2]<<((0|X)/6|0),0<(0|or[(e=A+14404+(t<<1)|0)>>1]))for(f=0;W=(0|br(0|or[A+2116+(t<<11)+(f<<1)>>1],Z))+r>>p,or[i+(or[A+8260+(t<<11)+(f<<1)>>1]<<1)>>1]=(0|W)<-32768?-32768:65535&((0|W)<32767?W:32767),(0|(f=f+1|0))<(0|or[e>>1]););if(p=0<(0|n),!o){if(Z=u&0==(l|t|0),0|c&&sr(44486,44443,591,44458),0|tr[10071+b>>0]){xn(A,i,n,n,1&Z,v,h,w,t);break}if(f=0|ar[A+18592>>2],Z){ts[31&ar[f+412>>2]](v,i,h,w);break}switch(0|n){case 4:ts[31&ar[f+416>>2]](v,i,h,w);break A;case 8:ts[31&ar[f+420>>2]](v,i,h,w);break A;case 16:ts[31&ar[f+424>>2]](v,i,h,w);break A;default:ts[31&ar[f+428>>2]](v,i,h,w);break A}}if(E){for(f=n,Z=0;3>>0;)f>>>=1,Z=Z+1|0;Z=Z+6|0}else Z=5;e=0<(0|(e=20-w|0))?e:0,I&&fs[63&ar[432+(0|ar[A+18592>>2])>>2]](i,4),r=d?A+14412|0:s;do{if(c){if(f=0|ar[A+18592>>2],2==(0|c)){os[63&ar[f+464>>2]](r,i,n,Z,e);break}os[63&ar[f+468>>2]](r,i,n,Z,e);break}os[63&ar[472+(0|ar[A+18592>>2])>>2]](r,i,n,Z,e)}while(0);if(!d&&0|ar[(C=A+28|0)>>2]&&(V=0|ar[k>>2],G=0|ar[V+5768>>2],V=0|ar[V+5760>>2],p)){f=0;do{for(e=0|br(f,n),Z=0;R=(0|br(ar[A+14412+((N=Z+e|0)<<2)>>2]<>V,0|ar[C>>2]))>>3,ar[(N=r+(N<<2)|0)>>2]=R+(0|ar[N>>2]),(0|(Z=Z+1|0))!=(0|n););f=f+1|0}while((0|f)!=(0|n))}if(os[63&ar[460+(0|ar[A+18592>>2])>>2]](v,h,r,n,w),I)for(f=i+32|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););}}while(0);if((0|or[(Z=A+14404+(t<<1)|0)>>1])<=0)return ur=g;f=0|ar[m>>2],i=0;for(;or[f+(or[A+8260+(t<<11)+(i<<1)>>1]<<1)>>1]=0,i=i+1|0,(0|i)<(0|or[Z>>1]););ur=g}(A,e,r,i,f,n,t,o,a,c):void function(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b,s,d,k,h,w,v,m,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0;switch(ur=(m=ur)+4096|0,s=m,b=0|ar[(k=18596+(A|=0)|0)>>2],0|t){case 0:g=A+18544|0;break;case 1:g=A+18548|0;break;case 2:g=A+18552|0;break;default:sr(44456,44443,367,44458)}E=0|ar[g>>2],i=0|ar[(v=A+2112|0)>>2],h=0|ar[((d=0==(0|t))?40+b|0:44+b|0)>>2],w=(0|ar[4+b+(t<<2)>>2])+((0|br(h,r))+e)|0,f=0|ar[10368+b>>2],e>>=f,f=r>>f,(0|e)<=-1&&sr(48482,48519,118,48539);g=0|ar[10372+b>>2],(0|g)<=(0|e)&&sr(48482,48519,118,48539);(0|f)<=-1&&sr(48543,48519,119,48539);(0|f)>=(0|ar[10376+b>>2])&&sr(48543,48519,119,48539);W=(0|ar[10360+b>>2])+(3*((0|br(g,f))+e|0)|0)|0,W=(65535&(cr[W>>0]|cr[W+1>>0]<<8))>>>8&3,l=65535&W,W=(u=4==(0|n))&0!=(0|tr[5748+b>>0])&W<<16>>16==0;A:do{if(0|tr[A+32>>0]){if(r=d?A+14412|0:s,0<(0|or[(g=A+14404+(t<<1)|0)>>1]))for(f=0;or[i+(or[A+8260+(t<<11)+(f<<1)>>1]<<1)>>1]=0|or[A+2116+(t<<11)+(f<<1)>>1],(0|(f=f+1|0))<(0|or[g>>1]););W&&fs[63&ar[432+(0|ar[A+18592>>2])>>2]](i,4);do{if(c){if(f=0|ar[A+18592>>2],2==(0|c)){ns[127&ar[f+368>>2]](r,i,n);break}ns[127&ar[f+372>>2]](r,i,n);break}ns[127&ar[364+(0|ar[A+18592>>2])>>2]](r,i,n)}while(0);if(!d&&0|ar[(Z=A+28|0)>>2]&&(y=0|ar[k>>2],p=0|ar[y+5768>>2],y=0|ar[y+5760>>2],0<(0|n))){f=0;do{for(e=0|br(f,n),g=0;F=(0|br(ar[A+14412+((R=g+e|0)<<2)>>2]<

>y,0|ar[Z>>2]))>>3,ar[(R=r+(R<<2)|0)>>2]=F+(0|ar[R>>2]),(0|(g=g+1|0))!=(0|n););f=f+1|0}while((0|f)!=(0|n))}if(os[63&ar[456+(0|ar[A+18592>>2])>>2]](w,h,r,n,8),W)for(f=i+32|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););}else{if(e=0|ar[(d?5760+b|0:5768+b|0)>>2],B=1<(0|n))for(g=n,f=0;f=f+1|0,3>>0;)g>>>=1;else f=0;if(y=(f=f+e|0)+-5|0,0|tr[1400+b>>0]){p=1<>>2|a<<30|0){case 0:X=5993+b+(f<<4)|0;break;case 1:X=6089+b+(f<<6)|0;break;case 3:X=6473+b+(f<<8)|0;break;case 7:X=8009+b+(f<<10)|0;break;default:sr(44456,44443,492,44458)}if(0<(0|or[(r=A+14404+(t<<1)|0)>>1]))for(Z=0|ar[8072+(((0|E)%6|0)<<2)>>2],g=(0|E)/6|0,e=((0|p)<0)<<31>>31,f=0;E=0|or[A+8260+(t<<11)+(f<<1)>>1],F=(0|br(0|cr[X+E>>0],Z))<>1],a=0|bb(0|(a=0|tb(0|(a=0|nb(0|F,((0|F)<0)<<31>>31|0,0|a,((0|a)<0)<<31>>31|0)),0|D,0|p,0|e)),0|D,0|y),V=(0|(F=D))<-1|-1==(0|F)&a>>>0<4294934528,a=(R=(0|F)<0|0==(0|F)&a>>>0<32767)?a:32767,or[i+(E<<1)>>1]=V?-32768:65535&a,(0|(f=f+1|0))<(0|or[r>>1]););}else if(Z=f+-9|0,r=1<>2]<<((0|E)/6|0),0<(0|or[(e=A+14404+(t<<1)|0)>>1]))for(f=0;X=(0|br(0|or[A+2116+(t<<11)+(f<<1)>>1],g))+r>>Z,or[i+(or[A+8260+(t<<11)+(f<<1)>>1]<<1)>>1]=(0|X)<-32768?-32768:65535&((0|X)<32767?X:32767),(0|(f=f+1|0))<(0|or[e>>1]););if(e=0<(0|n),!o){if(g=u&0==(l|t|0),0|c&&sr(44486,44443,591,44458),0|tr[10071+b>>0]){Hn(A,i,n,n,1&g,w,h,8,t);break}if(f=0|ar[A+18592>>2],g){ns[127&ar[f+388>>2]](w,i,h);break}switch(0|n){case 4:ns[127&ar[f+392>>2]](w,i,h);break A;case 8:ns[127&ar[f+396>>2]](w,i,h);break A;case 16:ns[127&ar[f+400>>2]](w,i,h);break A;default:ns[127&ar[f+404>>2]](w,i,h);break A}}if(B){for(f=n,g=0;3>>0;)f>>>=1,g=g+1|0;g=g+6|0}else g=5;W&&fs[63&ar[432+(0|ar[A+18592>>2])>>2]](i,4),r=d?A+14412|0:s;do{if(c){if(f=0|ar[A+18592>>2],2==(0|c)){os[63&ar[f+464>>2]](r,i,n,g,12);break}os[63&ar[f+468>>2]](r,i,n,g,12);break}os[63&ar[472+(0|ar[A+18592>>2])>>2]](r,i,n,g,12)}while(0);if(!d&&0|ar[(I=A+28|0)>>2]&&(G=0|ar[k>>2],C=0|ar[G+5768>>2],G=0|ar[G+5760>>2],e)){f=0;do{for(e=0|br(f,n),g=0;F=(0|br(ar[A+14412+((R=g+e|0)<<2)>>2]<>G,0|ar[I>>2]))>>3,ar[(R=r+(R<<2)|0)>>2]=F+(0|ar[R>>2]),(0|(g=g+1|0))!=(0|n););f=f+1|0}while((0|f)!=(0|n))}if(os[63&ar[456+(0|ar[A+18592>>2])>>2]](w,h,r,n,8),W)for(f=i+32|0;((or[i>>1]=0)|(i=i+2|0))<(0|f););}}while(0);if((0|or[(g=A+14404+(t<<1)|0)>>1])<=0)return ur=m;f=0|ar[v>>2],i=0;for(;or[f+(or[A+8260+(t<<11)+(i<<1)>>1]<<1)>>1]=0,i=i+1|0,(0|i)<(0|or[g>>1]););ur=m}(A,e,r,i,f,n,t,o,a,c)}function Hn(A,e,r,i,f,n,t,o,a){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0;var c,l,u,b=0,s=0,d=0,k=0;ur=(u=ur)+4096|0,l=0|ar[(A|=0)+18592>>2],c=(r=0==(0|a))?A+14412|0:u,a=20-o|0;A:do{if(1==(0|f))ts[31&ar[436+l>>2]](c,e,a,15);else switch(0|i){case 4:ts[31&ar[440+l>>2]](c,e,a,15);break A;case 8:ts[31&ar[444+l>>2]](c,e,a,15);break A;case 16:ts[31&ar[448+l>>2]](c,e,a,15);break A;default:ts[31&ar[452+l>>2]](c,e,a,15);break A}}while(0);if(!r&&0|ar[(b=A+28|0)>>2]&&(d=0|ar[A+18596>>2],s=0|ar[d+5768>>2],d=0|ar[d+5760>>2],0<(0|i))){r=0;do{for(e=0|br(r,i),a=0;k=(0|br(ar[A+14412+((f=a+e|0)<<2)>>2]<>d,0|ar[b>>2]))>>3,ar[(f=c+(f<<2)|0)>>2]=k+(0|ar[f>>2]),(0|(a=a+1|0))!=(0|i););r=r+1|0}while((0|r)!=(0|i))}os[63&ar[456+l>>2]](n,t,c,i,o),ur=u}function xn(A,e,r,i,f,n,t,o,a){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0;var c,l,u,b=0,s=0,d=0,k=0;ur=(u=ur)+4096|0,l=0|ar[(A|=0)+18592>>2],c=(r=0==(0|a))?A+14412|0:u,a=20-o|0;A:do{if(1==(0|f))ts[31&ar[436+l>>2]](c,e,a,15);else switch(0|i){case 4:ts[31&ar[440+l>>2]](c,e,a,15);break A;case 8:ts[31&ar[444+l>>2]](c,e,a,15);break A;case 16:ts[31&ar[448+l>>2]](c,e,a,15);break A;default:ts[31&ar[452+l>>2]](c,e,a,15);break A}}while(0);if(!r&&0|ar[(b=A+28|0)>>2]&&(d=0|ar[A+18596>>2],s=0|ar[d+5768>>2],d=0|ar[d+5760>>2],0<(0|i))){r=0;do{for(e=0|br(r,i),a=0;k=(0|br(ar[A+14412+((f=a+e|0)<<2)>>2]<>d,0|ar[b>>2]))>>3,ar[(f=c+(f<<2)|0)>>2]=k+(0|ar[f>>2]),(0|(a=a+1|0))!=(0|i););r=r+1|0}while((0|r)!=(0|i))}os[63&ar[460+l>>2]](n,t,c,i,o),ur=u}function Pn(A,e,r){A|=0,r|=0;var i,f,n,t;ur=(t=ur)+16|0,f=t,n=42==(0|tr[(e|=0)>>0]),i=0|ar[2543],n||Ui(44505,6,1,i),ar[f>>2]=r,Qc(A,e+(1&n)|0,f),Oi(i),ur=t}function Ln(A,e,r){e|=0,r|=0;var i,f,n=0,t=0;if(tr[(A|=0)>>0]=1,tr[A+44>>0]=1,qn(A,e),f=r+-1|0,i=1<(0|r))for(n=0;t=255&(0|At(e,1)),tr[A+52+(52*n|0)>>0]=t,t=255&(0|At(e,1)),tr[A+52+(52*n|0)+44>>0]=t,(0|(n=n+1|0))!=(0|f););if((r+-2|0)>>>0<7)for(n=f;et(e,2),(0|(n=n+1|0))<8;);if(i)for(n=0;qn(A+52+(52*n|0)|0,e),(0|(n=n+1|0))!=(0|f););}function Kn(A,e,r){r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;return ur=(o=ur)+32|0,f=o+8|0,i=o,(e|=0)>>>0<=(c=0|ar[(n=(A|=0)+4|0)>>2])>>>0?(ar[n>>2]=e,void(ur=o)):((l=(u=0|ar[(t=A+8|0)>>2])<<5)>>>0<(a=e-c|0)>>>0|(l-a|0)>>>0>>0?(ar[f>>2]=0,ar[(s=4+f|0)>>2]=0,((ar[(d=8+f|0)>>2]=0)|e)<0&&zl(),c=u<<6,u=e+31&-32,function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+32|0,o=t+16|0,r=t+8|0,i=t,ar[(n=8+(A|=0)|0)>>2]<<5>>>0>=e>>>0)return ur=t;ar[o>>2]=0,ar[(a=o+4|0)>>2]=0,ar[(f=o+8|0)>>2]=0,(0|e)<0&&zl();c=0|hu((l=1+((e+-1|0)>>>5)|0)<<2),ar[o>>2]=c,ar[a>>2]=0,ar[f>>2]=l,l=0|ar[A>>2],ar[r>>2]=l,ar[4+r>>2]=0,e=0|ar[(c=A+4|0)>>2],ar[i>>2]=l+(e>>>5<<2),ar[i+4>>2]=31&e,function(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0,s=0,d=0;if(ur=(c=ur)+32|0,f=c+24|0,n=c+16|0,t=c+8|0,a=c,d=0|ar[(u=4+(A|=0)|0)>>2],o=0|ar[e>>2],l=0|ar[e+4>>2],i=0|ar[r>>2],b=0|ar[r+4>>2],s=i-o<<3,ar[u>>2]=d-l+b+s,u=(0|ar[A>>2])+(d>>>5<<2)|0,e=u,(0|l)!=(0|(r=31&d)))return ar[f>>2]=o,ar[4+f>>2]=l,ar[n>>2]=i,ar[4+n>>2]=b,ar[t>>2]=e,ar[4+t>>2]=r,function(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;if(l=0|ar[(e|=0)>>2],f=0|ar[(u=e+4|0)>>2],o=((0|ar[r>>2])-l<<3)+(0|ar[r+4>>2])-f|0,r=l,(0|o)<=0)return e=i+4|0,i=0|ar[i>>2],ar[A>>2]=i,i=A+4|0,A=0|ar[e>>2],ar[i>>2]=A;f?(n=-1>>>((n=32-f|0)-(l=(0|o)<(0|n)?o:n)|0)&-1<>2],f=0|ar[(c=i+4|0)>>2],r=(a=32-f|0)>>>0>>0?a:l,t=0|ar[i>>2],f=ar[t>>2]&~(-1>>>(a-r|0)&-1<>2]=f,a=0|ar[c>>2],b=0|ar[u>>2],ar[t>>2]=(b>>>0>>0?n<>>(b-a|0))|f,f=(0|ar[c>>2])+r|0,t=t+(f>>>5<<2)|0,ar[i>>2]=t,f&=31,ar[c>>2]=f,0<(0|(a=l-r|0))&&(f=ar[t>>2]&~(-1>>>(32-a|0)),ar[t>>2]=f,ar[t>>2]=n>>>((0|ar[u>>2])+r|0)|f,ar[c>>2]=a,f=a),r=4+(0|ar[e>>2])|0,ar[e>>2]=r,o=o-l|0):f=0|ar[(c=f=i+4|0)>>2];if(a=32-f|0,n=-1<>2],b=0|ar[i>>2],l=ar[b>>2]&t,ar[b>>2]=l,ar[b>>2]=u<>2]|l,b=b+4|0,ar[i>>2]=b,ar[b>>2]=ar[b>>2]&n|u>>>a,f=f+-32|0,r=4+(0|ar[e>>2])|0,ar[e>>2]=r,31<(0|f););o&=31}if((0|o)<=0)return e=c,b=0|ar[i>>2],ar[A>>2]=b,b=A+4|0,i=0|ar[e>>2],ar[b>>2]=i;if(t=ar[r>>2]&-1>>>(32-o|0),n=(0|a)<(0|o)?a:o,f=0|ar[i>>2],r=ar[f>>2]&~(-1<>2]&-1>>>(a-n|0)),ar[f>>2]=r,ar[f>>2]=r|t<>2],r=(0|ar[c>>2])+n|0,f=f+(r>>>5<<2)|0,ar[i>>2]=f,ar[c>>2]=31&r,(0|(r=o-n|0))<=0)return e=c,b=0|ar[i>>2],ar[A>>2]=b,b=A+4|0,i=0|ar[e>>2],ar[b>>2]=i;ar[f>>2]=ar[f>>2]&~(-1>>>(32-r|0))|t>>>n,ar[c>>2]=r,e=c,b=0|ar[i>>2],ar[A>>2]=b,b=A+4|0,i=0|ar[e>>2],ar[b>>2]=i}(a,f,n,t),ur=c;r=b-l+s|0,s=o,0<(0|r)&&(e=l?(d=-1>>>((d=32-l|0)-(e=(0|r)<(0|d)?r:d)|0)&-1<>2]=ar[u>>2]&~d|ar[s>>2]&d,r=r-e|0,u=u+((l=e+l|0)>>>5<<2)|0,l&=31,s=s+4|0):(l=0,o),wb(0|u,0|e,(b=(0|r)/32|0)<<2|0),A=r-(b<<5)|0,e=r=u+(b<<2)|0,0<(0|A)&&(l=-1>>>(32-A|0),ar[r>>2]=ar[r>>2]&~l|ar[s+(b<<2)>>2]&l,l=A));ar[a>>2]=e,ar[a+4>>2]=l,ur=c}(o,r,i),e=0|ar[A>>2],ar[A>>2]=ar[o>>2],ar[o>>2]=e,o=0|ar[c>>2],ar[c>>2]=ar[a>>2],ar[a>>2]=o,a=0|ar[n>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=a,0|e&&vu(e);ur=t}(f,l>>>0<1073741823?c>>>0>>0?u:c:2147483647),l=0|ar[n>>2],ar[s>>2]=l+a,u=c=0|ar[A>>2],e=0|ar[f>>2],0<(0|(l=(u+(l>>>5<<2)-c<<3)+(31&l)|0))?(wb(0|e,0|c,(b=l>>>5)<<2|0),c=l-(b<<5)|0,e=l=e+(b<<2)|0,0<(0|c)?(k=-1>>>(32-c|0),ar[l>>2]=ar[l>>2]&~k|ar[u+(b<<2)>>2]&k):c=0):c=0,ar[i>>2]=e,ar[i+4>>2]=c,e=0|ar[(l=i)>>2],l=0|ar[l+4>>2],c=0|ar[A>>2],ar[A>>2]=ar[f>>2],ar[f>>2]=c,k=0|ar[n>>2],ar[n>>2]=ar[s>>2],ar[s>>2]=k,k=0|ar[t>>2],ar[t>>2]=ar[d>>2],ar[d>>2]=k,0|c&&vu(c)):(l=(0|ar[A>>2])+(c>>>5<<2)|0,ar[n>>2]=e,e=l,l=31&c),a?(u=0==(0|l),c=e,r?(u||(e=a>>>0<(k=32-l|0)>>>0?a:k,ar[c>>2]=ar[c>>2]|-1>>>(k-e|0)&-1<>>5)<<2|0),(a=a-(k<<5)|0)&&(ar[(e=c+(k<<2)|0)>>2]=ar[e>>2]|-1>>>(32-a|0)),void(ur=o)):(u||(e=a>>>0<(k=32-l|0)>>>0?a:k,ar[c>>2]=ar[c>>2]&~(-1>>>(k-e|0)&-1<>>5)<<2|0),(a=a-(k<<5)|0)&&(ar[(e=c+(k<<2)|0)>>2]=ar[e>>2]&~(-1>>>(32-a|0))),void(ur=o))):void(ur=o))}function qn(A,e){e|=0;var r=0,i=0;if(0|tr[(A|=0)>>0]){for(r=255&(0|At(e,2)),tr[A+1>>0]=r,r=255&(0|At(e,1)),tr[A+2>>0]=r,r=0|At(e,5),ar[A+4>>2]=r,i=255&((r=0)|At(e,1));tr[A+8+r>>0]=i,r=r+1|0,i=255&(0|At(e,1)),32!=(0|r););tr[A+40>>0]=i,i=255&(0|At(e,1)),tr[A+41>>0]=i,i=255&(0|At(e,1)),tr[A+42>>0]=i,i=255&(0|At(e,1)),tr[A+43>>0]=i,et(e,44)}0|tr[A+44>>0]&&(i=0|At(e,8),ar[A+48>>2]=i)}function $n(A,e,r){r|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k=0,h=0;if(ur=(d=ur)+112|0,s=d+88|0,h=d+80|0,b=d+72|0,u=d+64|0,l=d+56|0,c=d+48|0,a=d+40|0,o=d+32|0,n=d+24|0,t=d+16|0,i=d+8|0,k=d,f=(e|=0)?45527:45535,0|tr[(A|=0)>>0]){switch(e=0|tr[A+1>>0],ar[k>>2]=f,ar[k+4>>2]=e,Pn(r,45545,k),k=0|tr[A+2>>0],ar[i>>2]=f,ar[4+i>>2]=k,Pn(r,45574,i),0|ar[A+4>>2]){case 1:e=45659;break;case 2:e=45652;break;case 3:e=45635;break;case 4:e=45613;break;default:e=45603}for(ar[t>>2]=f,ar[4+t>>2]=e,Pn(r,45664,t),ar[n>>2]=f,Pn(r,45693,n),e=0;0|e&&Pn(r,45884,b),ar[h>>2]=tr[A+8+e>>0],Pn(r,45887,h),32!=(0|(e=e+1|0)););Pn(r,45728,o),h=0|tr[A+40>>0],ar[a>>2]=f,ar[4+a>>2]=h,Pn(r,45731,a),h=0|tr[A+41>>0],ar[c>>2]=f,ar[4+c>>2]=h,Pn(r,45768,c),h=0|tr[A+42>>0],ar[l>>2]=f,ar[4+l>>2]=h,Pn(r,45804,l),h=0|tr[A+43>>0],ar[u>>2]=f,ar[4+u>>2]=h,Pn(r,45844,u)}ur=(0|tr[A+44>>0]&&(h=0|ar[A+48>>2],ar[s>>2]=f,ar[4+s>>2]=h,Q[8+s>>3]=(0|h)/30,Pn(r,45891,s)),d)}function At(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((0|(i=0|ar[(r=(A|=0)+16|0)>>2]))<(0|e)){i=64-i|0,n=A+4|0;A:do{if(7<(0|i)){t=A+8|0,f=0|ar[n>>2];do{if(!f)break A;c=0|ar[A>>2],ar[A>>2]=c+1,c=0|cr[c>>0],f=f+-1|0,ar[n>>2]=f,c=0|db(0|c,0,0|(i=i+-8|0)),a=ar[(l=t)+4>>2]|D,ar[(o=t)>>2]=ar[l>>2]|c,ar[o+4>>2]=a}while(7<(0|i))}}while(0);i=64-i|0,ar[r>>2]=i}return l=0|sb(0|(o=0|ar[(a=c=A+8|0)>>2]),0|(a=0|ar[a+4>>2]),64-e|0),a=0|db(0|o,0|a,0|e),ar[c>>2]=a,ar[c+4>>2]=D,ar[r>>2]=i-e,0|l}function et(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((0|(i=0|ar[(r=(A|=0)+16|0)>>2]))<(0|e)){i=64-i|0,n=A+4|0;A:do{if(7<(0|i)){t=A+8|0,f=0|ar[n>>2];do{if(!f)break A;c=0|ar[A>>2],ar[A>>2]=c+1,c=0|cr[c>>0],f=f+-1|0,ar[n>>2]=f,c=0|db(0|c,0,0|(i=i+-8|0)),a=ar[(l=t)+4>>2]|D,ar[(o=t)>>2]=ar[l>>2]|c,ar[o+4>>2]=a}while(7<(0|i))}}while(0);i=64-i|0,ar[r>>2]=i}c=0|db(0|ar[(c=l=A+8|0)>>2],0|ar[c+4>>2],0|e),ar[l>>2]=c,ar[l+4>>2]=D,ar[r>>2]=i-e}function rt(A){var e,r,i;i=(-8&ar[(e=(A|=0)+16|0)>>2]|0)/8|0,ar[A>>2]=(0|ar[A>>2])+(0-i),ar[(r=A+4|0)>>2]=(0|ar[r>>2])+i,ar[(A=A+8|0)>>2]=0,ar[A+4>>2]=0,ar[e>>2]=0}function it(A){var e,r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;for(a=(A|=0)+4|0,r=A+8|0,i=(c=0)|ar[(e=A+16|0)>>2];;){if((0|i)<1){i=64-i|0;A:do{if(7<(0|i)){f=0|ar[a>>2];do{if(!f)break A;l=0|ar[A>>2],ar[A>>2]=l+1,l=0|cr[l>>0],f=f+-1|0,ar[a>>2]=f,l=0|db(0|l,0,0|(i=i+-8|0)),n=ar[(u=r)+4>>2]|D,ar[(t=r)>>2]=ar[u>>2]|l,ar[t+4>>2]=n}while(7<(0|i))}}while(0);t=64-i|0,ar[e>>2]=t}else t=i;if(n=0|db(0|(u=0|ar[(l=r)>>2]),0|(l=0|ar[l+4>>2]),1),f=D,ar[(i=r)>>2]=n,ar[i+4>>2]=f,i=t+-1|0,ar[e>>2]=i,!(-1<(0|l)|-1==(0|l)&4294967295>>0))break;if(19<(0|c)){i=-99999,o=20;break}c=c+1|0}if(20==(0|o))return 0|i;if(!c)return(u=0)|u;if((0|t)<=(0|c)){i=65-t|0;A:do{if(7<(0|i)){t=0|ar[a>>2];do{if(!t)break A;u=0|ar[A>>2],ar[A>>2]=u+1,u=0|cr[u>>0],t=t+-1|0,ar[a>>2]=t,n|=u=0|db(0|u,0,0|(i=i+-8|0)),f|=D,ar[(u=r)>>2]=n,ar[u+4>>2]=f}while(7<(0|i))}}while(0);i=64-i|0,ar[e>>2]=i}return u=0|sb(0|n,0|f,64-c|0),a=0|db(0|n,0|f,0|c),ar[(l=r)>>2]=a,ar[l+4>>2]=D,ar[e>>2]=i-c,(0|(i=u+(1<>2]=e,ar[A+4>>2]=e,void(ar[A+8>>2]=e+r);sr(47837,47828,138,47849)}function tt(A){var e,r,i,f,n,t;f=0|ar[(i=(A|=0)+4|0)>>2],n=(0|ar[A+8>>2])-f|0,ar[A+12>>2]=510,or[(t=A+20|0)>>1]=8,((ar[(r=A+16|0)>>2]=0)|n)<=0||(A=1+f|0,ar[i>>2]=A,e=(0|cr[f>>0])<<8,ar[r>>2]=e,1!=((or[t>>1]=0)|n)&&(ar[i>>2]=2+f,ar[r>>2]=0|e|cr[A>>0],or[t>>1]=-8))}function ot(A,e){e|=0;var r=0,i=0,f=0,n=0,t=0,o=0,a=0;return i=(i=0|ar[(t=(A|=0)+12|0)>>2])-(r=0|cr[(i>>>6)-4+(47412+(((0|cr[e>>0])>>>1&255)<<2))>>0])|0,n=(ar[t>>2]=i)<<7,(f=0|ar[(a=A+16|0)>>2])>>>0>>0?(o=255&(f=1&(r=0|tr[e>>0])),tr[e>>0]=tr[47764+((255&r)>>>1&255)>>0]<<1&255|f,32768<=n>>>0?0|(a=o):(ar[t>>2]=i<<1&67108862,f=ar[a>>2]<<1,ar[a>>2]=f,e=1+(0|or[(r=A+20|0)>>1])<<16>>16,(or[r>>1]=e)<<16>>16?0|(a=o):(or[r>>1]=-8,(i=0|ar[(r=A+4|0)>>2])>>>0>=(0|ar[A+8>>2])>>>0||(ar[r>>2]=i+1,ar[a>>2]=0|f|cr[i>>0]),0|(a=o)))):(o=0|cr[47668+(r>>>3)>>0],ar[a>>2]=f-n<>2]=r<>0])^1),(255&r)<2&&(r=i|-2&r,tr[e>>0]=r),tr[e>>0]=tr[47700+((255&r)>>>1&255)>>0]<<1&255|1&r,r=(0|lr[(n=A+20|0)>>1])+o|0,32768&(or[n>>1]=r)|0||(r=r<<16>>16,(f=0|ar[(i=A+4|0)>>2])>>>0<(0|ar[A+8>>2])>>>0&&(ar[i>>2]=f+1,ar[a>>2]=(0|cr[f>>0])<>2]),or[n>>1]=r+65528),0|(a=t))}function at(A){var e=0,r=0,i=0,f=0,n=0;return r=(0|ar[(e=(A|=0)+12|0)>>2])-2|0,(i=(ar[e>>2]=r)<<7)>>>0<=(f=0|ar[(n=A+16|0)>>2])>>>0?0|(n=1):32768<=i>>>0?(n=0)|n:(ar[e>>2]=r<<1&67108862,i=f<<1,ar[n>>2]=i,f=1+(0|or[(e=A+20|0)>>1])<<16>>16,(or[e>>1]=f)<<16>>16?(n=0)|n:(or[e>>1]=-8,(r=0|ar[(e=A+4|0)>>2])>>>0>=(0|ar[A+8>>2])>>>0||(ar[e>>2]=r+1,ar[n>>2]=i+(0|cr[r>>0])),(n=0)|n))}function ct(A){var e,r,i=0,f=0,n=0,t=0;return f=ar[(r=(A|=0)+16|0)>>2]<<1,ar[r>>2]=f,t=1+(0|or[(e=A+20|0)>>1])<<16>>16,-1<(or[e>>1]=t)<<16>>16&&(n=0|ar[(i=A+4|0)>>2],(0|ar[A+8>>2])>>>0>n>>>0)&&(or[e>>1]=-8,ar[i>>2]=n+1,f=0|f|cr[n>>0],ar[r>>2]=f),f>>>0<(i=ar[A+12>>2]<<7)>>>0?(t=0)|t:(ar[r>>2]=f-i,0|(t=1))}function lt(A,e){var r,i,f,n,t=0,o=0,a=0,c=0,l=0;if((0|(e|=0))<=0)return 0|(l=e);for(i=(A|=0)+16|0,f=A+20|0,n=A+8|0,l=A+4|0,r=A+12|0,t=(A=0)|or[f>>1],o=0|ar[i>>2];;){if(o<<=1,ar[i>>2]=o,t=t+1<<16>>16,-1<(or[f>>1]=t)<<16>>16&&(c=0|ar[l>>2],(0|ar[n>>2])>>>0>c>>>0)?(or[f>>1]=-8,ar[l>>2]=c+1,a=0|cr[c>>0]|o,ar[i>>2]=a,t=-8):a=o,a>>>0<(o=ar[r>>2]<<7)>>>0){t=8;break}if(o=a-o|0,ar[i>>2]=o,(0|e)<=(0|(A=A+1|0))){A=e,t=8;break}}return 8==(0|t)?0|A:0}function ut(A,e){A|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;if((0|(e|=0))<9)return e?(i=ar[(t=A+16|0)>>2]<>2]=i,f=(0|lr[(n=A+20|0)>>1])+e|0,0==(32768&(or[n>>1]=f)|0)&&(a=0|ar[(o=A+4|0)>>2],(0|ar[A+8>>2])>>>0>a>>>0)&&(ar[o>>2]=a+1,u=f<<16>>16,b=(0|cr[a>>0])<>1]=u+65528,i|=b,ar[t>>2]=i),u=ar[A+12>>2]<<7,u=i-(0|br(b=(0|(l=(i>>>0)/(u>>>0)|0))<(0|(b=1<>2]=u,0|b):(b=0)|b;if(i=ar[(l=A+16|0)>>2]<<8,ar[l>>2]=i,n=65535&(f=8+(0|lr[(u=A+20|0)>>1])|0),or[u>>1]=n,0==(32768&f|0)&&(c=0|ar[(t=A+4|0)>>2],(0|ar[A+8>>2])>>>0>c>>>0)?(ar[t>>2]=c+1,n=f<<16>>16,f=(0|cr[c>>0])<>1]=n,f|=i,ar[l>>2]=f):f=i,r=ar[A+12>>2]<<7,t=f-(0|br(i=(0|(i=(f>>>0)/(r>>>0)|0))<255?i:255,r))|0,ar[l>>2]=t,!(f=e+-8|0))return 0|(b=i);for(e=A+8|0,c=A+4|0;f=f+-1|0,a=i<<1,i=t<<1,ar[l>>2]=i,n=n+1<<16>>16,-1<(or[u>>1]=n)<<16>>16&&(b=0|ar[c>>2],(0|ar[e>>2])>>>0>b>>>0)&&(or[u>>1]=-8,ar[c>>2]=b+1,i=0|cr[b>>0]|i,ar[l>>2]=i,n=-8),i>>>0>>0?(t=0,o=i):(o=i-r|0,ar[l>>2]=o,t=1),i=t|a,f;)t=o;return 0|i}function bt(A,e){var r,i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0;for(r=(A|=0)+16|0,f=A+8|0,n=A+4|0,t=A+12|0,o=(e|=0)+31|0,a=(u=0)|or[(i=A+20|0)>>1],c=0|ar[r>>2];c<<=1,ar[r>>2]=c,a=a+1<<16>>16,-1<(or[i>>1]=a)<<16>>16&&(b=0|ar[n>>2],(0|ar[f>>2])>>>0>b>>>0)?(or[i>>1]=-8,ar[n>>2]=b+1,l=0|cr[b>>0]|c,ar[r>>2]=l,a=-8):l=c,!(l>>>0<(c=ar[t>>2]<<7)>>>0);){if(c=l-c|0,ar[r>>2]=c,(0|e)==(0|o)){e=0,s=8;break}u=u+(1<>2]=0,ar[A+4>>2]=0}function dt(A,e){A|=0;var r,i=0;ur=(r=ur)+16|0,i=r,0|(i=0|ar[(e|=0)+4>>2])&&(ar[i>>2]=1+(0|ar[i>>2])),ar[A+4>>2]=i,ar[A>>2]=ar[e>>2],ur=r}function kt(A){var e,r,i,f=0;ur=(r=ur)+16|0,f=r,ur=((f=0|ar[(e=(A|=0)+4|0)>>2])&&(i=(0|ar[f>>2])-1|0,ar[f>>2]=i,0|i||(0|(f=0|ar[A>>2])&&mu(f),(f=0|ar[e>>2])&&vu(f))),r)}function ht(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0;ur=(f=ur)+16|0,o=f+8|0,n=f,i=0|ar[(n=(A|=0)+4|0)>>2];do{if(0|i){if(1==(0|(t=0|ar[i>>2])))return wt(o=0|ar[A>>2],e,r),void(ur=f);if(1<(0|t)){ar[i>>2]=t+-1;break}sr(47917,47927,177,47943)}}while(0);o=0|wu(172),ar[A>>2]=o,A=0|hu(4),ar[n>>2]=A,ar[A>>2]=1,wt(o,e,r),ur=f}function wt(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;do{if(0<(0|e)){if(o=(0|r)<0?0:(0|r)<51?r:51,i=A+5|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[8096+(12*(n=e+-1|0)|0)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(t=f,tr[(a=i)>>0]=t,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+6|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[8096+(12*n|0)+4>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(t=f,tr[(a=i)>>0]=t,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+7|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[8096+(12*n|0)+8>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(t=f,tr[(a=i)>>0]=t,sr(47989,47927,210,48010)),vb(0|i,0|f,1),f=A+149|0,i=(255&(a=(i=63<(0|(a=(0|(a=((a=0|ar[9536+(n<<2)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&i,63<=(127&a)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),i=A+147|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[8120+(n<<2)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(tr[i>>0]=f,sr(47989,47927,210,48010)),vb(0|i,0|f,1),f=A+148|0,i=(255&(a=(i=63<(0|(a=(0|(a=((a=0|ar[8128+(n<<2)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&i,63<=(127&a)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),i=A+156|0,f=(255&(a=(f=63<(0|(a=(0|(a=104+((0|br(o,-20))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(t=f,tr[(a=i)>>0]=t,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+157|0,t=(255&(a=(t=63<(0|(a=(0|(a=104+((0|br(o,-25))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&t,63<=(127&a)>>>0&&(n=t,tr[(a=i)>>0]=n,sr(47989,47927,210,48010)),vb(0|i,0|t,1),i=A+158|0,f=(255&(a=(f=63<(0|(a=(0|(a=104+((0|br(o,-30))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(n=f,tr[(a=i)>>0]=n,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+159|0,f=(255&(a=(f=63<(0|(a=(0|(a=104+((0|br(o,-40))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(n=f,tr[(a=i)>>0]=n,sr(47989,47927,210,48010)),vb(0|i,0|f,1),vb(A+160|0,0|f,1),tr[A+154>>0]=14,tr[A+155>>0]=14,i=A+150|0,f=(255&(a=(f=63<(0|(a=(0|(a=((a=0|ar[(n=9520+((1==(0|e)?0:2)<<2)|0)>>2])<<3&120)-16+((0|br((5*(a>>4)|0)-45|0,o))>>4)|0))<1?1:(0|a)<126?a:126)))?a+64|0:63-a|0))<<1&255|1&f,63<=(127&a)>>>0&&(l=f,tr[(a=i)>>0]=l,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+151|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,o))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(a=f,tr[(l=i)>>0]=a,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=(255&(l=(i=63<(0|(l=(0|(l=48+(5*o>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,f=A+152|0,63<=(127&l)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),vb(A+153|0,0|t,1),f=A+143|0,i=(255&(l=(i=63<(0|(l=(0|(l=72+((0|br(o,-5))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,(127&l)>>>0<63){vb(0|f,0|i,4);break}tr[f>>0]=i,sr(47989,47927,210,48010)}}while(0);a=(0|r)<0?0:(0|r)<51?r:51,i=A+2|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8136+(12*e|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+3|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8136+(12*e|0)+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+4|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8136+(12*e|0)+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+8|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[(n=9484+((2!=(0|e)?e:5)<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+9|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+10|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+11|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+12>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),f=A+12|0,i=(255&(l=(i=63<(0|(l=(0|(l=((l=0|ar[9472+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,63<=(127&l)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),i=A+13|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8172+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(tr[i>>0]=f,sr(47989,47927,210,48010)),vb(0|i,0|f,1),f=A+14|0,n=(255&(l=(n=63<(0|(l=(0|(l=((l=0|ar[(i=8184+((0==(0|e)?0:2)<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&n,63<=(127&l)>>>0&&(r=n,tr[(l=f)>>0]=r,sr(47989,47927,210,48010)),vb(0|f,0|n,1),l=0|ar[i+4>>2],i=A+15|0,f=(255&(l=(f=63<(0|(l=(0|(l=(l<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+16|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[(n=9424+((r=e<<2)<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+17|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+18|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+19|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+12>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+20|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[(n=9388+(3*e<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+21|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+22|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(o=f,tr[(l=i)>>0]=o,sr(47989,47927,210,48010)),vb(0|i,0|f,1),n=A+25|0,o=9172+(18*e<<2)|0,i=0;do{if(f=n+i|0,t=(255&(l=(t=63<(0|(l=(0|(l=((l=0|ar[o+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&t,63<=(127&l)>>>0){c=35;break}vb(0|f,0|t,1),i=i+1|0}while((0|i)<18);35==(0|c)&&(tr[f>>0]=t,sr(47989,47927,210,48010)),f=A+43|0,i=0;do{if(n=f+i|0,t=(255&(l=(t=63<(0|(l=(0|(l=((l=0|ar[o+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&t,63<=(127&l)>>>0){c=39;break}vb(0|n,0|t,1),i=i+1|0}while((0|i)<18);39==(0|c)&&(tr[n>>0]=t,sr(47989,47927,210,48010)),i=A+61|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[(n=8200+(r<<2)|0)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+62|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+63|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+8>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+64|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[n+12>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),n=A+65|0,i=0;do{if(f=n+i|0,t=(255&(l=(t=63<(0|(l=(0|(l=((l=0|ar[8248+(168*e|0)+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&t,63<=(127&l)>>>0){c=45;break}vb(0|f,0|t,1),i=i+1|0}while((0|i)<42);45==(0|c)&&(tr[f>>0]=t,sr(47989,47927,210,48010)),i=A+107|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8752+(e<<3)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),i=A+108|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8752+(e<<3)+4>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(r=f,tr[(l=i)>>0]=r,sr(47989,47927,210,48010)),vb(0|i,0|f,1),t=A+109|0,f=8884+(24*e<<2)|0,i=0;do{if(n=t+i|0,o=(255&(l=(o=63<(0|(l=(0|(l=((l=0|ar[f+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&o,63<=(127&l)>>>0){c=51;break}vb(0|n,0|o,1),i=i+1|0}while((0|i)<24);51==(0|c)&&(tr[n>>0]=o,sr(47989,47927,210,48010)),f=A+133|0,n=8776+(6*e<<2)|0,i=0;do{if(t=f+i|0,o=(255&(l=(o=63<(0|(l=(0|(l=((l=0|ar[n+(i<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&o,63<=(127&l)>>>0){c=55;break}vb(0|t,0|o,1),i=i+1|0}while((0|i)<6);if(55==(0|c)&&(tr[t>>0]=o,sr(47989,47927,210,48010)),i=(255&(l=(i=63<(0|(l=(0|(l=((l=0|ar[8848+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,63<=(127&l)>>>0&&(tr[A>>0]=i,sr(47989,47927,210,48010)),vb(0|A,0|i,1),i=A+1|0,f=(255&(l=(f=63<(0|(l=(0|(l=((l=0|ar[8860+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&f,63<=(127&l)>>>0&&(tr[i>>0]=f,sr(47989,47927,210,48010)),vb(0|i,0|f,1),tr[A+139>>0]=1,tr[A+140>>0]=1,f=A+141|0,i=(255&(l=(i=63<(0|(l=(0|(l=72+((0|br(a,-5))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,63<=(127&l)>>>0&&(tr[f>>0]=i,sr(47989,47927,210,48010)),vb(0|f,0|i,1),vb(A+142|0,0|i,1),f=A+161|0,i=(255&(l=(i=63<(0|(l=(0|(l=((l=0|ar[8872+(e<<2)>>2])<<3&120)-16+((0|br((5*(l>>4)|0)-45|0,a))>>4)|0))<1?1:(0|l)<126?l:126)))?l+64|0:63-l|0))<<1&255|1&i,(127&l)>>>0<63)return vb(0|f,0|i,1),tr[(e=l=A+162|0)>>0]=1,tr[e+1>>0]=1,tr[e+2>>0]=1,tr[e+3>>0]=1,tr[(l=l+4|0)>>0]=1,tr[l+1>>0]=1,tr[l+2>>0]=1,tr[l+3>>0]=1,tr[(l=A+170|0)>>0]=1,tr[l+1>>0]=1,tr[A+23>>0]=1,void(tr[A+24>>0]=1);tr[f>>0]=i,sr(47989,47927,210,48010)}function vt(A){var e,r,i=0;ur=(r=ur)+16|0,i=r,ur=((i=0|ar[(e=(A|=0)+4|0)>>2])&&(ar[i>>2]=(0|ar[i>>2])-1,ar[A>>2]=0,ar[e>>2]=0),r)}function mt(A){var e,r,i=0,f=0;ur=(r=ur)+16|0,i=r,(i=0|ar[(e=(A|=0)+4|0)>>2])||sr(48057,47927,95,48064),ur=((0|(f=0|ar[i>>2]))<=1||(ar[i>>2]=f+-1,f=0|ar[A>>2],i=0|wu(172),ar[A>>2]=i,A=0|hu(4),ar[e>>2]=A,ar[A>>2]=1,hb(0|i,0|f,172)),r)}function gt(A,e){A|=0;var r,i,f=0,n=0;return ur=(i=ur)+32|0,f=i,f=0|ar[(r=(e|=0)+4|0)>>2],ur=(f?(ar[f>>2]=1+(0|ar[f>>2]),0|(f=0|ar[(n=A+4|0)>>2])&&(ar[f>>2]=(0|ar[f>>2])-1,ar[A>>2]=0,ar[n>>2]=0),ar[A>>2]=ar[e>>2],ar[n>>2]=ar[r>>2]):(f=0|ar[(n=A+4|0)>>2])&&(ar[f>>2]=(0|ar[f>>2])-1,ar[A>>2]=0,ar[n>>2]=0),i),0|A}function Zt(A,e){e|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0;if(b=0|ar[(A|=0)+5808>>2],J=(1<<(s=0|ar[A+5804>>2]))-1|0,M=0|ar[A+5820>>2],d=e<>(Q=0|ar[A+5800>>2]),Q=e+1<>Q,(0|(Q=(0|(D=0|ar[A+5824>>2]))<(0|Q)?D:Q))<=(0|d))return(M=0)|(M&=J=1);i=A+10372|0,f=A+10360|0,n=A+10348|0,t=A+10352|0,o=A+10356|0,a=A+10340|0,c=A+48|0,l=A+52|0,u=A+5977|0,D=A+10308|0,k=(e=0)|ar[(r=A+5816|0)>>2];A:for(;;){if(0<(0|k)){G=0==(0|(F=0|br(d,b)))?0:32,R=0|br(F>>s,M),Y=0!=(0|F)&0==(F&J|0),_=0|br((N=F+-1|0)>>s,M),V=0;do{if(C=(0|br(0|ar[i>>2],d))+V|0,C=(0|ar[f>>2])+(3*C|0)|0,I=65535&(C=7&(cr[C>>0]|cr[C+1>>0]<<8)),C<<16>>16){if(y=(C=0|br(V,b))>>s,h=F>>(Z=0|ar[n>>2]),(0|(B=C>>Z))<=-1){d=8;break A}if((0|(E=0|ar[t>>2]))<=(0|B)){d=8;break A}if((0|h)<=-1){d=11;break A}if((0|(X=0|ar[o>>2]))<=(0|h)){d=11;break A}if(W=0|ar[a>>2],v=0|br(E,h),w=0|lr[W+(24*(v+B|0)|0)+2>>1],h=0|ar[c>>2],(p=(0|ar[l>>2])-h>>2)>>>0<=w>>>0){k=0,d=33;break A}g=0|ar[(m=h)+(w<<2)>>2],h=0==(0|C)?0:16;do{if(0!=(0|C)&0==(C&J|0)){if(!(0|tr[g+764>>0])){if(!(-1<(0|(w=C+-1>>Z))&(0|w)<(0|E))){d=16;break A}if((v=0|lr[W+(24*(v+w|0)|0)+2>>1])>>>0

>>0&&(0|ar[g+800>>2])!=(0|ar[800+(0|ar[m+(v<<2)>>2])>>2])){w=0;break}}w=0|tr[u>>0]?h:(w=0|ar[D>>2],(0|ar[w+(y+R<<2)>>2])==(0|ar[w+((C+-1>>s)+R<<2)>>2])?h:0)}else w=h}while(0);do{if(Y){if(!(0|tr[g+764>>0])){if(!(-1<(0|(h=N>>Z))&(0|h)<(0|X))){d=24;break A}if(W=W+(24*((0|br(E,h))+B|0)|0)+2|0,(W=0|lr[W>>1])>>>0

>>0&&(0|ar[g+800>>2])!=(0|ar[800+(0|ar[m+(W<<2)>>2])>>2])){h=0;break}}h=0|tr[u>>0]?G:(h=0|ar[D>>2],(0|ar[h+(y+R<<2)>>2])==(0|ar[h+(y+_<<2)>>2])?G:0)}else h=G}while(0);0|tr[g+754>>0]||(Wt(A,C,F,I,0,255&w,255&h),It(A,C,F,I,0,0),e=1,k=0|ar[r>>2])}V=V+1|0}while((0|V)<(0|k))}if((0|Q)<=(0|(d=d+1|0))){k=1,d=33;break}}if(8==(0|d))sr(48482,48519,118,48539);else if(11==(0|d))sr(48543,48519,119,48539);else if(16==(0|d))sr(48482,48519,118,48539);else if(24==(0|d))sr(48543,48519,119,48539);else if(33==(0|d))return 0|(M=k&e);return 0}function pt(A,e,r,i,f,n){r|=0,i|=0,f|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0;if(V=(e|=0)?2:1,F=e?1:2,R=1&e,N=1&(1^e),G=e?80:160,I=e?16:32,nA=(0|(n|=0))<(0|(nA=0|ar[(C=(A|=0)+10472|0)>>2]))?n:nA,!((0|(fA=(0|i)<(0|(fA=0|ar[A+10476>>2]))?i:fA))<=(0|r))){o=(0|f)<(0|nA),a=A+10460|0,c=A+10368|0,l=A+10372|0,u=A+10376|0,b=A+10360|0,s=A+10388|0,d=A+10392|0,k=A+10396|0,h=A+10380|0,w=A+10348|0,v=A+10352|0,m=A+10356|0,g=A+10340|0,Z=A+48|0,p=A+52|0,y=A+10332|0,B=A+10516|0,E=A+10448|0,X=A+10452|0,W=A+10456|0,t=A+10440|0;A:for(;;){if(o){eA=(0|(AA=r<<2))/4|0,rA=AA-N|0,$=f;do{if(iA=(0|(M=$<<2))/4|0,e=(0|br(0|ar[C>>2],eA))+iA|0,e=(0|ar[a>>2])+e|0,(D=255&(n=0|tr[e>>0]))&G){if(J=M-R|0,n=rA>>(A=0|ar[c>>2]),(0|(e=J>>A))<=-1){e=10;break A}if((0|(_=0|ar[l>>2]))<=(0|e)){e=10;break A}if((0|n)<=-1){e=13;break A}if((0|(Y=0|ar[u>>2]))<=(0|n)){e=13;break A}if(n=(Q=0|ar[b>>2])+(3*((0|br(_,n))+e|0)|0)|0,e=AA>>A,!(-1<(0|(i=M>>A))&(0|i)<(0|_))){e=15;break A}if(!(-1<(0|e)&(0|e)<(0|Y))){e=17;break A}q=Q+(3*((0|br(_,e))+i|0)|0)|0;e:do{if(0!=(768&(cr[n>>0]|cr[n+1>>0]<<8))&&0!=(768&(cr[q>>0]|cr[q+1>>0]<<8))){if(D&I|0){if(n=AA>>(i=0|ar[E>>2]),(0|(e=M>>i))<=-1){e=22;break A}if((0|(A=0|ar[X>>2]))<=(0|e)){e=22;break A}if((0|n)<=-1){e=25;break A}if((0|(_=0|ar[W>>2]))<=(0|n)){e=25;break A}if(q=(Y=0|ar[t>>2])+((0|br(A,n))+e)|0,(0|tr[q>>0])<=-1){e=1;break}if(e=rA>>i,!(-1<(0|(n=J>>i))&(0|n)<(0|A))){e=28;break A}if(!(-1<(0|e)&(0|e)<(0|_))){e=30;break A}if(q=Y+((0|br(A,e))+n)|0,(0|tr[q>>0])<=-1){e=1;break}}if(n=rA>>(i=0|ar[s>>2]),(0|(e=J>>i))<=-1){e=34;break A}if((0|(A=0|ar[d>>2]))<=(0|e)){e=34;break A}if((0|n)<=-1){e=37;break A}if((0|(_=0|ar[k>>2]))<=(0|n)){e=37;break A}if(q=0|ar[h>>2],K=(0|br(A,n))+e|0,e=AA>>i,!(-1<(0|(n=M>>i))&(0|n)<(0|A))){e=39;break A}if(!(-1<(0|e)&(0|e)<(0|_))){e=41;break A}if(L=(0|br(A,e))+n|0,n=rA>>(_=0|ar[w>>2]),(0|(e=J>>_))<=-1){e=44;break A}if((0|(Y=0|ar[v>>2]))<=(0|e)){e=44;break A}if((0|n)<=-1){e=47;break A}if((0|(Q=0|ar[m>>2]))<=(0|n)){e=47;break A}if(e=(D=0|ar[g>>2])+(24*((0|br(Y,n))+e|0)|0)+2|0,e=0|lr[e>>1],i=0|ar[Z>>2],J=e>>>0<(A=(0|ar[p>>2])-i>>2)>>>0?0|ar[i+(e<<2)>>2]:0,e=AA>>_,!(-1<(0|(n=M>>_))&(0|n)<(0|Y))){e=51;break A}if(!(-1<(0|e)&(0|e)<(0|Q))){e=53;break A}if(e=D+(24*((0|br(Y,e))+n|0)|0)+2|0,e=(e=0|lr[e>>1])>>>0>>0?0|ar[i+(e<<2)>>2]:0,x=(n=(j=0|tr[q+(12*K|0)>>0])<<24>>24==0)?-1:0|ar[J+916+(tr[q+(12*K|0)+2>>0]<<2)>>2],O=(i=(H=0|tr[q+(12*K|0)+1>>0])<<24>>24==0)?-1:0|ar[J+980+(tr[q+(12*K|0)+3>>0]<<2)>>2],!((U=(0|x)==(0|(S=(A=(M=0|tr[q+(12*L|0)>>0])<<24>>24==0)?-1:0|ar[e+916+(tr[q+(12*L|0)+2>>0]<<2)>>2])))&(0|O)==(0|(J=(D=(T=0|tr[q+(12*L|0)+1>>0])<<24>>24==0)?-1:0|ar[e+980+(tr[q+(12*L|0)+3>>0]<<2)>>2])))&&!((0|O)==(0|S)&(0|x)==(0|J))){e=1;break}if(P=n?0:0|or[q+(12*K|0)+6>>1],e=n?0:0|or[q+(12*K|0)+4>>1],z=i?0:0|or[q+(12*K|0)+10>>1],Q=i?0:0|or[q+(12*K|0)+8>>1],Y=A?0:0|or[q+(12*L|0)+6>>1],A=A?0:0|or[q+(12*L|0)+4>>1],_=D?0:0|or[q+(12*L|0)+10>>1],i=D?0:0|or[q+(12*L|0)+8>>1],((255&H)+(255&j)|0)!=((255&T)+(255&M)|0)&&(er(4+(0|ar[y>>2])|0,1013,0),tr[B>>0]=3),(0|x)==(0|O)){if((0|S)!=(0|J)){e=81;break A}q=(n=e<<16>>16)-(e=A<<16>>16)|0;do{if((0|((0|q)<0?0-q|0:q))<=3){if(3<(0|((0|(q=(P<<16>>16)-(Y<<16>>16)|0))<0?0-q|0:q)))break;if(3<(0|((0|(q=(Q<<16>>16)-(i<<16>>16)|0))<0?0-q|0:q)))break;if((0|((0|(q=(z<<16>>16)-(_<<16>>16)|0))<0?0-q|0:q))<=3){e=0;break e}}}while(0);q=n-(i<<16>>16)|0;do{if((0|((0|q)<0?0-q|0:q))<=3){if(3<(0|((0|(q=(P<<16>>16)-(_<<16>>16)|0))<0?0-q|0:q)))break;if(3<(0|((0|(q=(Q<<16>>16)-e|0))<0?0-q|0:q)))break;if((0|((0|(q=(z<<16>>16)-(Y<<16>>16)|0))<0?0-q|0:q))<=3){e=0;break e}}}while(0);e=1;break}if(e=e<<16>>16,U){q=e-(A<<16>>16)|0;do{if((0|((0|q)<0?0-q|0:q))<=3){if(3<(0|((0|(q=(P<<16>>16)-(Y<<16>>16)|0))<0?0-q|0:q)))break;if(3<(0|((0|(q=(Q<<16>>16)-(i<<16>>16)|0))<0?0-q|0:q)))break;if((0|((0|(q=(z<<16>>16)-(_<<16>>16)|0))<0?0-q|0:q))<=3){e=0;break e}}}while(0);e=1;break}q=e-(i<<16>>16)|0;do{if((0|((0|q)<0?0-q|0:q))<=3){if(3<(0|((0|(q=(P<<16>>16)-(_<<16>>16)|0))<0?0-q|0:q)))break;if(3<(0|((0|(q=(Q<<16>>16)-(A<<16>>16)|0))<0?0-q|0:q)))break;if((0|((0|(q=(z<<16>>16)-(Y<<16>>16)|0))<0?0-q|0:q))<=3){e=0;break e}}}while(0);e=1;break}e=2}while(0);iA=(0|br(0|ar[C>>2],eA))+iA|0,iA=(0|ar[a>>2])+iA|0,tr[iA>>0]=-4&tr[iA>>0]|e}else tr[e>>0]=-4&n;$=$+V|0}while((0|$)<(0|nA))}if((0|fA)<=(0|(r=r+F|0))){e=5;break}}switch(0|e){case 5:return;case 10:sr(48482,48519,118,48539);break;case 13:sr(48543,48519,119,48539);break;case 15:sr(48482,48519,118,48539);break;case 17:sr(48543,48519,119,48539);break;case 22:sr(48482,48519,118,48539);break;case 25:sr(48543,48519,119,48539);break;case 28:sr(48482,48519,118,48539);break;case 30:sr(48543,48519,119,48539);break;case 34:sr(48482,48519,118,48539);break;case 37:sr(48543,48519,119,48539);break;case 39:sr(48482,48519,118,48539);break;case 41:sr(48543,48519,119,48539);break;case 44:sr(48482,48519,118,48539);break;case 47:sr(48543,48519,119,48539);break;case 51:sr(48482,48519,118,48539);break;case 53:sr(48543,48519,119,48539);break;case 81:sr(48206,48225,343,48236)}}}function yt(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA,uA,bA,sA,dA,kA,hA,wA,vA,mA,gA,ZA,pA,yA,BA,EA,XA,WA,IA,CA,GA,VA,FA,RA,NA,_A,YA,QA,DA,JA,MA,TA,UA,SA,OA,zA,jA,HA,xA,PA,LA,KA,qA,$A,Ae,ee,re,ie,fe,ne,te,oe,ae,ce,le,ue,be,se,de,ke,he,we,ve,me,ge,Ze,pe,ye=0,Be=0,Ee=0,Xe=0,We=0,Ie=0,Ce=0,Ge=0,Ve=0,Fe=0,Re=0,Ne=0,_e=0,Ye=0,Qe=0,De=0,Je=0,Me=0,Te=0,Ue=0,Se=0,Oe=0,ze=0,je=0,He=0,xe=0,Pe=0,Le=0,Ke=0,qe=0,$e=0,Ar=0,er=0,rr=0,ir=0,fr=0,nr=0;if(ur=(pe=ur)+80|0,me=(ve=pe)+40|0,ge=pe+32|0,Ze=(e|=0)?2:1,ke=e?1:2,de=0|ar[(he=(A|=0)+40|0)>>2],ye=0|ar[A+5760>>2],nr=(0|n)<(0|(nr=0|ar[(we=A+10472|0)>>2]))?n:nr,(0|(fr=(0|i)<(0|(fr=0|ar[A+10476>>2]))?i:fr))<=(0|r))ur=pe;else{TA=(0|f)<(0|nr),UA=A+10460|0,SA=A+4|0,OA=A+10368|0,zA=A+10372|0,jA=A+10376|0,HA=A+10360|0,xA=A+10348|0,PA=A+10352|0,LA=A+10356|0,KA=A+10340|0,qA=A+48|0,$A=ye+-8|0,Ae=4+me|0,ee=2+me|0,re=28+me|0,ie=26+me|0,fe=24+me|0,ne=ve+4|0,te=ve+2|0,oe=ve+28|0,ae=ve+26|0,ce=ve+24|0,le=6+me|0,ue=ve+6|0,be=30+me|0,se=ve+30|0,DA=A+5480|0,JA=2+ge|0,MA=4+ge|0,x=65535+(H=1<>2],Le))+((0|Xe)/4|0)|0,(We=3&tr[(0|ar[UA>>2])+We>>0])<<24>>24){if(Ar=(qe=0|ar[SA>>2])+($e=(0|br(0|ar[he>>2],Pe))+Xe<<1)|0,Ee=e?(i=lr[(i=(A=i=Ar)+4|0)>>1]|lr[i+2>>1]<<16,ar[(n=ve)>>2]=lr[A>>1]|lr[A+2>>1]<<16,ar[n+4>>2]=i,or[me>>1]=0|or[Ar+-2>>1],or[ee>>1]=0|or[Ar+-4>>1],or[Ae>>1]=0|or[Ar+-6>>1],or[le>>1]=0|or[Ar+-8>>1],n=lr[(n=(i=n=qe+($e+P)|0)+4|0)>>1]|lr[n+2>>1]<<16,ar[(A=YA)>>2]=lr[i>>1]|lr[i+2>>1]<<16,ar[A+4>>2]=n,or[y>>1]=0|or[Ar+(L<<1)>>1],or[Z>>1]=0|or[Ar+(K<<1)>>1],or[B>>1]=0|or[Ar+(q<<1)>>1],or[W>>1]=0|or[Ar+($<<1)>>1],A=lr[(A=(n=A=qe+($e+AA)|0)+4|0)>>1]|lr[A+2>>1]<<16,ar[(i=QA)>>2]=lr[n>>1]|lr[n+2>>1]<<16,ar[i+4>>2]=A,or[X>>1]=0|or[Ar+(eA<<1)>>1],or[p>>1]=0|or[Ar+(rA<<1)>>1],or[E>>1]=0|or[Ar+(iA<<1)>>1],or[I>>1]=0|or[Ar+(rr<<1)>>1],i=lr[(i=(A=i=qe+($e+fA)|0)+4|0)>>1]|lr[i+2>>1]<<16,ar[(n=ce)>>2]=lr[A>>1]|lr[A+2>>1]<<16,ar[n+4>>2]=i,or[fe>>1]=0|or[Ar+(nA<<1)>>1],n=ie,i=be,A=tA,ye=ir,Be=re,oA):(or[ve>>1]=0|or[Ar>>1],or[me>>1]=0|or[Ar+(kA<<1)>>1],or[hA>>1]=0|or[Ar+(de<<1)>>1],or[t>>1]=0|or[Ar+(wA<<1)>>1],or[vA>>1]=0|or[Ar+(sA<<1)>>1],or[u>>1]=0|or[Ar+(mA<<1)>>1],or[gA>>1]=0|or[Ar+(dA<<1)>>1],or[h>>1]=0|or[Ar+(ZA<<1)>>1],or[pA>>1]=0|or[Ar+2>>1],or[l>>1]=0|or[Ar+(yA<<1)>>1],or[EA>>1]=0|or[Ar+(BA<<1)>>1],or[o>>1]=0|or[Ar+(XA<<1)>>1],or[IA>>1]=0|or[Ar+(WA<<1)>>1],or[b>>1]=0|or[Ar+(CA<<1)>>1],or[VA>>1]=0|or[Ar+(GA<<1)>>1],or[w>>1]=0|or[Ar+(FA<<1)>>1],or[RA>>1]=0|or[Ar+4>>1],or[k>>1]=0|or[Ar+(NA<<1)>>1],or[C>>1]=0|or[Ar+(_A<<1)>>1],or[a>>1]=0|or[Ar+(G<<1)>>1],or[F>>1]=0|or[Ar+(V<<1)>>1],or[s>>1]=0|or[Ar+(R<<1)>>1],or[_>>1]=0|or[Ar+(N<<1)>>1],or[v>>1]=0|or[Ar+(Y<<1)>>1],or[Q>>1]=0|or[Ar+6>>1],or[g>>1]=0|or[Ar+(D<<1)>>1],or[M>>1]=0|or[Ar+(J<<1)>>1],or[c>>1]=0|or[Ar+(T<<1)>>1],or[S>>1]=0|or[Ar+(U<<1)>>1],n=d,i=m,A=O,ye=er,Be=j,z),or[n>>1]=0|or[Ar+(A<<1)>>1],or[Be>>1]=0|or[Ar+(Ee<<1)>>1],or[i>>1]=0|or[Ar+(ye<<1)>>1],n=Pe>>(Ve=0|ar[OA>>2]),(0|(Re=Xe>>Ve))<=-1){n=13;break A}if((0|(_e=0|ar[zA>>2]))<=(0|Re)){n=13;break A}if((0|n)<=-1){n=16;break A}if((0|(Ne=0|ar[jA>>2]))<=(0|n)){n=16;break A}if(Qe=0|ar[HA>>2],Ye=(Fe=0|br(_e,n))+Re|0,Ge=Xe+-1|0,i=xe>>Ve,!(-1<(0|(n=(e?Ge:Xe)>>Ve))&(0|n)<(0|_e))){n=18;break A}if(!(-1<(0|i)&(0|i)<(0|Ne))){n=20;break A}if(ye=Qe+(3*((0|br(_e,i))+n|0)|0)+2|0,ye=1+(0|tr[Qe+(3*Ye|0)+2>>0])+(0|tr[ye>>0])>>1,n=Xe>>(i=0|ar[xA>>2]),i=Pe>>i,(0|n)<=-1){n=23;break A}if((0|(A=0|ar[PA>>2]))<=(0|n)){n=23;break A}if((0|i)<=-1){n=26;break A}if((0|i)>=(0|ar[LA>>2])){n=26;break A}je=(0|ar[KA>>2])+(24*((0|br(A,i))+n|0)|0)+2|0,je=0|ar[(0|ar[qA>>2])+(lr[je>>1]<<2)>>2],Ce=(0|ar[je+756>>2])+ye|0,Ce=cr[48154+((0|Ce)<0?0:(0|Ce)<51?Ce:51)>>0]<<$A,je=(We<<1&255)-2+ye+(0|ar[je+760>>2])|0,je=cr[48100+((0|je)<0?0:(0|je)<53?je:53)>>0]<<$A,Je=(0|(Je=(65535&(Te=0|or[Ae>>1]))-((65535&(Ue=0|or[ee>>1]))<<1)+(n=65535&(ye=0|or[me>>1]))|0))<0?0-Je|0:Je,Be=0|lr[fe>>1],De=(0|(De=(0|lr[re>>1])-(lr[ie>>1]<<1)+Be|0))<0?0-De|0:De,Me=(0|(Me=(65535&(Ie=0|or[ne>>1]))-((65535&(Oe=0|or[te>>1]))<<1)+(i=65535&(Se=0|or[ve>>1]))|0))<0?0-Me|0:Me,Ee=0|lr[ce>>1],A=Me+Je|0,Xe=(ze=(0|(ze=(0|lr[oe>>1])-(lr[ae>>1]<<1)+Ee|0))<0?0-ze|0:ze)+De|0,Je=De+Je|0,Me=ze+Me|0;e:do{if((Xe+A|0)<(0|Ce)){We=Ce>>2;do{if((A<<1|0)<(0|We)){if(ze=(0|lr[le>>1])-n|0,(Ce>>3|0)<=(((0|(De=i-(0|lr[ue>>1])|0))<0?0-De|0:De)+((0|ze)<0?0-ze|0:ze)|0)){i=0;break}i=(0|((0|(i=n-i|0))<0?0-i|0:i))<(1+(5*je|0)>>1|0)}else i=0}while(0);do{if((Xe<<1|0)<(0|We)){if(ze=(0|lr[be>>1])-Be|0,(Ce>>3|0)<=(((0|(De=Ee-(0|lr[se>>1])|0))<0?0-De|0:De)+((0|ze)<0?0-ze|0:ze)|0)){n=0;break}n=(0|((0|(n=Be-Ee|0))<0?0-n|0:n))<(1+(5*je|0)>>1|0)}else n=0}while(0);if(ze=i&n,Ee=(Ce>>1)+Ce>>3,A=(Be=0|tr[DA>>0])<<24>>24!=0,e){if(n=-1<(0|(i=Ge>>Ve)),A){if(!(n&(0|i)<(0|_e))){n=37;break A}A=(65535&(cr[(A=Qe+(3*(Fe+i|0)|0)|0)>>0]|cr[A+1>>0]<<8))>>>10&1^1}else{if(!n){n=41;break A}A=1}if((0|_e)<=(0|i)){n=41;break A}i=Qe+(3*(Fe+i|0)|0)|0,De=(n=Be<<24>>24?0==(1024&(cr[(n=Qe+(3*Ye|0)|0)>>0]|cr[n+1>>0]<<8)):1)&0==(2048&(cr[(De=Qe+(3*Ye|0)|0)>>0]|cr[De+1>>0]<<8)),Ne=A<<24>>24?0==(2048&(cr[i>>0]|cr[i+1>>0]<<8)):0}else{if(n=-1<(0|(i=Ke>>Ve)),A){if(!(n&(0|i)<(0|Ne))){n=47;break A}A=Qe+(3*((0|br(_e,i))+Re|0)|0)|0,A=0==(1024&(cr[A>>0]|cr[A+1>>0]<<8))}else{if(!n){n=51;break A}A=1}if((0|Ne)<=(0|i)){n=51;break A}i=Qe+(3*((0|br(_e,i))+Re|0)|0)|0,De=(n=Be<<24>>24?0==(1024&(cr[(n=Qe+(3*Ye|0)|0)>>0]|cr[n+1>>0]<<8)):1)&0==(2048&(cr[(De=Qe+(3*Ye|0)|0)>>0]|cr[De+1>>0]<<8)),Ne=A&0==(2048&(cr[i>>0]|cr[i+1>>0]<<8))}for(_e=je<<1,Ye=10*je|0,Qe=0-je|0,Re=(0|Ee)<=(0|Je)|1^Ne,Fe=(0|Ee)<=(0|Me)|1^De,Ve=0-(Ge=je>>1)|0,Ce=0,Xe=Te,Ee=Ue,i=Se,A=Oe;;){We=qe+($e+(0|br(P,Ce)))|0;do{if(ze){Se=0|or[ve+(Ce<<3)+6>>1],Me=65535&Ee,Ue=65535&A,Ee=(Te=65535&ye)+_e|0,Be=65535&((0|(Be=(A=4+(Te<<1)|0)+(Me<<1)+(Oe=65535&Xe)+(n=(i&=65535)<<1)+Ue>>3))<(0|(Je=Te-_e|0))?Je:(0|Ee)<(0|Be)?Ee:Be),Xe=Me+_e|0,Ee=65535&((0|(Ee=(Te+2+Me+Oe+i|0)>>>2))<(0|(Je=Me-_e|0))?Je:(0|Xe)<(0|Ee)?Xe:Ee),Xe=(Te+4+Me+(3*Oe|0)+i+(lr[me+(Ce<<3)+6>>1]<<1)|0)>>>3,Je=Oe-_e|0,Oe=Oe+_e|0,Xe=65535&((0|Xe)<(0|Je)?Je:(0|Oe)<(0|Xe)?Oe:Xe),n=A+Me+n+(Ue<<1)+(Oe=65535&Ie)>>3,A=i+_e|0,n=65535&((0|n)<(0|(Me=i-_e|0))?Me:(0|A)<(0|n)?A:n),or[ge>>1]=n,A=i+Te+Ue|0,Te=Ue-_e|0,Ue=Ue+_e|0,i=65535&((0|(i=(Oe+2+A|0)>>>2))<(0|Te)?Te:(0|Ue)<(0|i)?Ue:i),or[JA>>1]=i,A=(A+4+(3*Oe|0)+((65535&Se)<<1)|0)>>>3,Se=Oe-_e|0,Oe=Oe+_e|0,A=65535&((0|A)<(0|Se)?Se:(0|Oe)<(0|A)?Oe:A),or[MA>>1]=A;do{if(e){if(ye=0|br(Ce,de),!Ne){if(!De)break;or[We>>1]=0|or[ge>>1],or[We+2>>1]=0|or[2+ge>>1],or[We+4>>1]=0|or[4+ge>>1];break}if(or[Ar+(ye+-1<<1)>>1]=Be,De){or[Ar+(ye<<1)>>1]=n,or[Ar+(ye+-2<<1)>>1]=Ee,or[Ar+(ye+1<<1)>>1]=i,or[Ar+(ye+-3<<1)>>1]=Xe,or[Ar+(ye+2<<1)>>1]=A;break}or[Ar+(ye+-2<<1)>>1]=Ee,or[Ar+(ye+-3<<1)>>1]=Xe;break}if(!Ne){if(!De)break;or[Ar+(Ce<<1)>>1]=n,or[Ar+(de+Ce<<1)>>1]=i,or[Ar+(bA+Ce<<1)>>1]=A;break}if(or[Ar+(Ce-de<<1)>>1]=Be,De){or[Ar+(Ce<<1)>>1]=n,or[Ar+(Ce-aA<<1)>>1]=Ee,or[Ar+(de+Ce<<1)>>1]=i,or[Ar+(Ce+cA<<1)>>1]=Xe,or[Ar+(aA+Ce<<1)>>1]=A;break}or[Ar+(Ce-lA<<1)>>1]=Ee,or[Ar+(Ce+uA<<1)>>1]=Xe;break}while(0)}else{if((0|Ye)<=(0|((0|(n=8+(9*((Be=65535&i)-(ye&=65535)|0)|0)+(0|br((A&=65535)-(i=65535&Ee)|0,-3))>>4))<0?0-n|0:n)))break;n=(0|n)<(0|Qe)?Qe:(0|je)<(0|n)?je:n;do{if(e){if(Ne&&(Se=n+ye|0,Oe=Ar+((0|br(Ce,de))-1<<1)|0,or[Oe>>1]=(0|Se)<0?0:65535&((0|Se)<(0|H)?Se:x)),!De)break;Se=Be-n|0,Oe=Ar+((0|br(Ce,de))<<1)|0,or[Oe>>1]=(0|Se)<0?0:65535&((0|Se)<(0|H)?Se:x)}else{if(Ne&&(Oe=n+ye|0,or[Ar+(Ce-de<<1)>>1]=(0|Oe)<0?0:65535&((0|Oe)<(0|H)?Oe:x)),!De)break;Oe=Be-n|0,or[Ar+(Ce<<1)>>1]=(0|Oe)<0?0:65535&((0|Oe)<(0|H)?Oe:x)}}while(0);if(Re||(Se=((0|(Oe=(Se=n+(((ye+1+(65535&Xe)|0)>>>1)-i)|0)>>1))<(0|Ve)?Ve:((0|Ge)<(0|Oe)?je:Se)>>1)+i|0,Oe=(0|br(Ce,de))-2|0,or[Ar+((e?Oe:Ce-P|0)<<1)>>1]=(0|Se)<0?0:65535&((0|Se)<(0|H)?Se:x)),Fe)break;Se=((0|(Oe=(Se=((Be+1+(65535&Ie)|0)>>>1)-A-n|0)>>1))<(0|Ve)?Ve:((0|Ge)<(0|Oe)?je:Se)>>1)+A|0,Oe=0|br(e?Ce:1,de),or[Ar+(Oe+(e?1:Ce)<<1)>>1]=(0|Se)<0?0:65535&((0|Se)<(0|H)?Se:x)}}while(0);if(4==(0|(n=Ce+1|0)))break e;Xe=0|or[me+((Ce=n)<<3)+4>>1],Ee=0|or[me+(n<<3)+2>>1],ye=0|or[me+(n<<3)>>1],i=0|or[ve+(n<<3)>>1],A=0|or[ve+(n<<3)+2>>1],Ie=0|or[ve+(n<<3)+4>>1]}}}while(0)}He=He+Ze|0}while((0|He)<(0|nr))}if((0|fr)<=(0|(r=r+ke|0))){n=5;break}}switch(0|n){case 5:return void(ur=pe);case 13:sr(48482,48519,118,48539);break;case 16:sr(48543,48519,119,48539);break;case 18:sr(48482,48519,118,48539);break;case 20:sr(48543,48519,119,48539);break;case 23:sr(48482,48519,118,48539);break;case 26:sr(48543,48519,119,48539);break;case 37:case 41:sr(48482,48519,118,48539);break;case 47:case 51:sr(48543,48519,119,48539)}}}function Bt(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA,uA,bA,sA,dA,kA,hA,wA,vA,mA,gA,ZA,pA,yA,BA,EA,XA,WA,IA,CA,GA,VA,FA,RA,NA,_A,YA,QA,DA,JA,MA,TA,UA=0,SA=0,OA=0,zA=0,jA=0,HA=0,xA=0,PA=0,LA=0,KA=0,qA=0,$A=0,Ae=0,ee=0,re=0,ie=0,fe=0,ne=0,te=0,oe=0,ae=0,ce=0,le=0,ue=0,be=0,se=0,de=0,ke=0,he=0,we=0,ve=0,me=0,ge=0,Ze=0,pe=0,ye=0,Be=0,Ee=0,Xe=0,We=0,Ie=0;if(ur=(TA=ur)+48|0,QA=TA+24|0,DA=TA+8|0,JA=TA,MA=(e|=0)?2:1,NA=e?1:2,RA=0|ar[(_A=(A|=0)+40|0)>>2],UA=0|ar[A+5760>>2],Ie=(0|n)<(0|(Ie=0|ar[(YA=A+10472|0)>>2]))?n:Ie,(0|(We=(0|i)<(0|(We=0|ar[A+10476>>2]))?i:We))<=(0|r))ur=TA;else{tA=(0|f)<(0|Ie),oA=A+10460|0,aA=A+4|0,cA=A+10368|0,lA=A+10372|0,uA=A+10376|0,bA=A+10360|0,sA=A+10348|0,dA=A+10352|0,kA=A+10356|0,hA=A+10340|0,wA=A+48|0,vA=UA+-8|0,mA=2+DA|0,gA=1+DA|0,ZA=14+DA|0,pA=13+DA|0,yA=12+DA|0,BA=2+QA|0,EA=1+QA|0,XA=14+QA|0,WA=13+QA|0,IA=12+QA|0,CA=3+DA|0,GA=3+QA|0,VA=15+DA|0,FA=15+QA|0,iA=A+5480|0,fA=JA+1|0,nA=JA+2|0,L=255+(P=1<>2],ve))+((0|A)/4|0)|0,(SA=3&tr[(0|ar[oA>>2])+SA>>0])<<24>>24){if(pe=(ge=0|ar[aA>>2])+(Ze=(0|br(0|ar[_A>>2],we))+A|0)|0,tr[QA>>0]=0|tr[pe>>0],tr[DA>>0]=0|tr[pe+a>>0],tr[EA>>0]=0|tr[pe+t>>0],tr[gA>>0]=0|tr[pe+c>>0],tr[BA>>0]=0|tr[pe+l>>0],tr[mA>>0]=0|tr[pe+u>>0],tr[GA>>0]=0|tr[pe+b>>0],tr[CA>>0]=0|tr[pe+s>>0],tr[d>>0]=0|tr[pe+o>>0],tr[S>>0]=0|tr[pe+k>>0],tr[w>>0]=0|tr[pe+h>>0],tr[T>>0]=0|tr[pe+v>>0],tr[g>>0]=0|tr[pe+m>>0],tr[O>>0]=0|tr[pe+Z>>0],tr[y>>0]=0|tr[pe+p>>0],tr[H>>0]=0|tr[pe+B>>0],tr[X>>0]=0|tr[pe+E>>0],tr[j>>0]=0|tr[pe+W>>0],tr[C>>0]=0|tr[pe+I>>0],tr[U>>0]=0|tr[pe+G>>0],tr[F>>0]=0|tr[pe+V>>0],tr[z>>0]=0|tr[pe+R>>0],tr[_>>0]=0|tr[pe+N>>0],tr[x>>0]=0|tr[pe+ye>>0],KA=0|tr[pe+Y>>0],tr[IA>>0]=KA,zA=0|tr[pe+Q>>0],tr[yA>>0]=zA,qA=0|tr[pe+D>>0],tr[WA>>0]=qA,jA=0|tr[pe+J>>0],tr[pA>>0]=jA,$A=0|tr[pe+Be>>0],tr[XA>>0]=$A,HA=0|tr[pe+M>>0],tr[ZA>>0]=HA,re=0|tr[pe+Ee>>0],tr[FA>>0]=re,ee=0|tr[pe+Xe>>0],tr[VA>>0]=ee,n=we>>(fe=0|ar[cA>>2]),(0|(te=A>>fe))<=-1){n=10;break A}if((0|(ae=0|ar[lA>>2]))<=(0|te)){n=10;break A}if((0|n)<=-1){n=13;break A}if((0|(oe=0|ar[uA>>2]))<=(0|n)){n=13;break A}if(le=0|ar[bA>>2],ce=(ne=0|br(ae,n))+te|0,ie=A+-1|0,i=he>>fe,!(-1<(0|(n=(e?ie:A)>>fe))&(0|n)<(0|ae))){n=15;break A}if(!(-1<(0|i)&(0|i)<(0|oe))){n=17;break A}if(UA=le+(3*((0|br(ae,i))+n|0)|0)+2|0,UA=1+(0|tr[le+(3*ce|0)+2>>0])+(0|tr[UA>>0])>>1,n=A>>(i=0|ar[sA>>2]),i=we>>i,(0|n)<=-1){n=20;break A}if((0|(A=0|ar[dA>>2]))<=(0|n)){n=20;break A}if((0|i)<=-1){n=23;break A}if((0|i)>=(0|ar[kA>>2])){n=23;break A}de=(0|ar[hA>>2])+(24*((0|br(A,i))+n|0)|0)+2|0,de=0|ar[(0|ar[wA>>2])+(lr[de>>1]<<2)>>2],Ae=(0|ar[de+756>>2])+UA|0,Ae=cr[48154+((0|Ae)<0?0:(0|Ae)<51?Ae:51)>>0]<>2])|0,de=cr[48100+((0|de)<0?0:(0|de)<53?de:53)>>0]<>0]))-((255&(OA=0|tr[gA>>0]))<<1)+(PA=255&(UA=0|tr[DA>>0]))|0))<0?0-SA|0:SA,HA=(0|(HA=(255&HA)-((255&jA)<<1)+(LA=255&zA)|0))<0?0-HA|0:HA,n=(se=(0|(se=(255&(jA=0|tr[BA>>0]))-((255&(be=0|tr[EA>>0]))<<1)+(i=255&(ue=0|tr[QA>>0]))|0))<0?0-se|0:se)+SA|0,A=(KA=(0|(KA=(255&$A)-((255&qA)<<1)+(zA=255&KA)|0))<0?0-KA|0:KA)+HA|0,HA=HA+SA|0,KA=KA+se|0;e:do{if((A+n|0)<(0|Ae)){SA=Ae>>2;do{if((n<<1|0)<(0|SA)){if(se=(0|cr[CA>>0])-PA|0,(Ae>>3|0)<=(((0|($A=i-(0|cr[GA>>0])|0))<0?0-$A|0:$A)+((0|se)<0?0-se|0:se)|0)){i=0;break}i=(0|((0|(i=PA-i|0))<0?0-i|0:i))<(1+(5*de|0)>>1|0)}else i=0}while(0);do{if((A<<1|0)<(0|SA)){if((Ae>>3|0)<=(((0|(re=zA-(255&re)|0))<0?0-re|0:re)+((0|(se=(255&ee)-LA|0))<0?0-se|0:se)|0)){n=0;break}n=(0|((0|(n=LA-zA|0))<0?0-n|0:n))<(1+(5*de|0)>>1|0)}else n=0}while(0);if(se=i&n,zA=(Ae>>1)+Ae>>3,A=(SA=0|tr[iA>>0])<<24>>24!=0,e){if(n=-1<(0|(i=ie>>fe)),A){if(!(n&(0|i)<(0|ae))){n=34;break A}A=(65535&(cr[(A=le+(3*(ne+i|0)|0)|0)>>0]|cr[A+1>>0]<<8))>>>10&1^1}else{if(!n){n=38;break A}A=1}if((0|ae)<=(0|i)){n=38;break A}i=le+(3*(ne+i|0)|0)|0,fe=(n=SA<<24>>24?0==(1024&(cr[(n=le+(3*ce|0)|0)>>0]|cr[n+1>>0]<<8)):1)&0==(2048&(cr[(fe=le+(3*ce|0)|0)>>0]|cr[fe+1>>0]<<8)),Ae=A<<24>>24?0==(2048&(cr[i>>0]|cr[i+1>>0]<<8)):0}else{if(n=-1<(0|(i=me>>fe)),A){if(!(n&(0|i)<(0|oe))){n=44;break A}A=le+(3*((0|br(ae,i))+te|0)|0)|0,A=0==(1024&(cr[A>>0]|cr[A+1>>0]<<8))}else{if(!n){n=48;break A}A=1}if((0|oe)<=(0|i)){n=48;break A}i=le+(3*((0|br(ae,i))+te|0)|0)|0,fe=(n=SA<<24>>24?0==(1024&(cr[(n=le+(3*ce|0)|0)>>0]|cr[n+1>>0]<<8)):1)&0==(2048&(cr[(fe=le+(3*ce|0)|0)>>0]|cr[fe+1>>0]<<8)),Ae=A&0==(2048&(cr[i>>0]|cr[i+1>>0]<<8))}for(ee=de<<1,re=10*de|0,ie=0-de|0,$A=(0|zA)<=(0|HA)|1^Ae,qA=(0|zA)<=(0|KA)|1^fe,KA=0-(LA=de>>1)|0,PA=0,i=ue,A=be;;){zA=ge+(Ze+(HA=0|br(RA,PA)))|0;do{if(se){ue=0|tr[QA+(PA<<2)+3>>0],le=255&A,SA=(ce=255&UA)+ee|0,UA=255&((0|(UA=(A=4+(ce<<1)|0)+((ae=255&OA)<<1)+(be=255&xA)+(n=(i&=255)<<1)+le>>3))<(0|(oe=ce-ee|0))?oe:(0|SA)<(0|UA)?SA:UA),OA=ae+ee|0,SA=255&((0|(SA=(ce+2+ae+be+i|0)>>>2))<(0|(oe=ae-ee|0))?oe:(0|OA)<(0|SA)?OA:SA),OA=(ce+4+ae+(3*be|0)+i+(cr[DA+(PA<<2)+3>>0]<<1)|0)>>>3,oe=be-ee|0,be=be+ee|0,OA=255&((0|OA)<(0|oe)?oe:(0|be)<(0|OA)?be:OA),n=A+ae+n+(le<<1)+(be=255&jA)>>3,A=i+ee|0,n=255&((0|n)<(0|(ae=i-ee|0))?ae:(0|A)<(0|n)?A:n),tr[JA>>0]=n,A=i+ce+le|0,ce=le-ee|0,le=le+ee|0,i=255&((0|(i=(be+2+A|0)>>>2))<(0|ce)?ce:(0|le)<(0|i)?le:i),tr[fA>>0]=i,A=(A+4+(3*be|0)+((255&ue)<<1)|0)>>>3,ue=be-ee|0,be=be+ee|0,A=255&((0|A)<(0|ue)?ue:(0|be)<(0|A)?be:A),tr[nA>>0]=A;do{if(e){if(!Ae){if(!fe)break;tr[zA>>0]=0|tr[JA>>0],tr[zA+1>>0]=0|tr[JA+1>>0],tr[zA+2>>0]=0|tr[JA+2>>0];break}if(tr[pe+(HA+-1)>>0]=UA,fe){tr[pe+HA>>0]=n,tr[pe+(HA+-2)>>0]=SA,tr[pe+(HA+1)>>0]=i,tr[pe+(HA+-3)>>0]=OA,tr[pe+(HA+2)>>0]=A;break}tr[pe+(HA+-2)>>0]=SA,tr[pe+(HA+-3)>>0]=OA;break}if(!Ae){if(!fe)break;tr[pe+PA>>0]=n,tr[pe+(RA+PA)>>0]=i,tr[pe+(rA+PA)>>0]=A;break}if(tr[pe+(PA-RA)>>0]=UA,fe){tr[pe+PA>>0]=n,tr[pe+(PA-q)>>0]=SA,tr[pe+(RA+PA)>>0]=i,tr[pe+(PA+$)>>0]=OA,tr[pe+(q+PA)>>0]=A;break}tr[pe+(PA-AA)>>0]=SA,tr[pe+(PA+eA)>>0]=OA;break}while(0)}else{if((0|re)<=(0|((0|(n=8+(9*((SA=255&i)-(UA&=255)|0)|0)+(0|br((A&=255)-(i=255&OA)|0,-3))>>4))<0?0-n|0:n)))break;n=(0|n)<(0|ie)?ie:(0|de)<(0|n)?de:n;do{if(e){if(Ae&&(be=n+UA|0,tr[pe+(HA+-1)>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)),!fe)break;be=SA-n|0,tr[pe+HA>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)}else{if(Ae&&(be=n+UA|0,tr[pe+(PA-RA)>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)),!fe)break;be=SA-n|0,tr[pe+PA>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)}}while(0);if($A||(be=((0|(ue=(be=n+(((UA+1+(255&xA)|0)>>>1)-i)|0)>>1))<(0|KA)?KA:((0|LA)<(0|ue)?de:be)>>1)+i|0,tr[pe+(e?HA+-2|0:PA-K|0)>>0]=(0|be)<0?0:255&((0|be)<(0|P)?be:L)),qA)break;ue=((0|(be=(ue=((SA+1+(255&jA)|0)>>>1)-A-n|0)>>1))<(0|KA)?KA:((0|LA)<(0|be)?de:ue)>>1)+A|0,be=0|br(e?PA:1,RA),tr[pe+(be+(e?1:PA))>>0]=(0|ue)<0?0:255&((0|ue)<(0|P)?ue:L)}}while(0);if(4==(0|(n=PA+1|0)))break e;xA=0|tr[DA+((PA=n)<<2)+2>>0],OA=0|tr[DA+(n<<2)+1>>0],UA=0|tr[DA+(n<<2)>>0],i=0|tr[QA+(n<<2)>>0],A=0|tr[QA+(n<<2)+1>>0],jA=0|tr[QA+(n<<2)+2>>0]}}}while(0)}ke=ke+MA|0}while((0|ke)<(0|Ie))}if((0|We)<=(0|(r=r+NA|0))){n=5;break}}switch(0|n){case 5:return void(ur=TA);case 10:sr(48482,48519,118,48539);break;case 13:sr(48543,48519,119,48539);break;case 15:sr(48482,48519,118,48539);break;case 17:sr(48543,48519,119,48539);break;case 20:sr(48482,48519,118,48539);break;case 23:sr(48543,48519,119,48539);break;case 34:case 38:sr(48482,48519,118,48539);break;case 44:case 48:sr(48543,48519,119,48539)}}}function Et(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA,uA,bA,sA,dA,kA,hA,wA,vA,mA,gA,ZA,pA,yA,BA,EA,XA,WA,IA,CA,GA,VA,FA,RA,NA,_A,YA,QA,DA,JA,MA,TA=0,UA=0,SA=0,OA=0,zA=0,jA=0,HA=0,xA=0,PA=0,LA=0,KA=0,qA=0,$A=0,Ae=0,ee=0,re=0,ie=0,fe=0,ne=0,te=0,oe=0,ae=0,ce=0,le=0,ue=0;if(ur=(MA=ur)+32|0,QA=MA+16|0,DA=MA,JA=0|ar[(A|=0)+5780>>2],FA=0|ar[A+5784>>2],RA=0|br(JA,e?2:1),NA=0|br(FA,e?1:2),VA=0|ar[(_A=A+44|0)>>2],ue=(0|n)<(0|(ue=0|ar[(YA=A+10472|0)>>2]))?n:ue,s=A+5768|0,(0|(le=(0|i)<(0|(le=0|ar[A+10476>>2]))?i:le))<=(0|r))ur=MA;else{d=(0|f)<(0|ue),k=3-JA|0,h=3-FA|0,w=A+10460|0,v=A+5956|0,m=A+5952|0,g=A+10368|0,Z=A+10372|0,p=A+10376|0,y=A+10360|0,B=A+5776|0,E=A+10348|0,X=A+10352|0,W=A+10356|0,I=A+10340|0,C=A+48|0,G=A+5480|0,F=65535+(V=1<>2])|0,R=VA<<1,N=0|br(VA,-2),Y=VA-1|0,J=(Q=VA<<1)-1|0,U=(M=3*VA|0)-1|0,O=1+VA|0,j=VA-2|0,H=1|Q,P=Q-2|0,L=1+M|0,q=M-2|0,cA=VA<<1,dA=3*VA|0,wA=eA=_=DA+2|0,vA=rA=t=2+QA|0,mA=iA=o=10+QA|0,gA=fA=z=DA+10|0,ZA=nA=D=DA+4|0,pA=tA=c=4+QA|0,yA=oA=l=12+QA|0,BA=aA=x=DA+12|0,EA=lA=T=DA+6|0,XA=uA=u=6+QA|0,WA=bA=b=14+QA|0,IA=sA=K=DA+14|0,GA=kA=$=a=8+QA|0,CA=hA=AA=S=DA+8|0;A:for(;;){if(d){ae=(0|(oe=0|br(te=r<>2],ae))+((0|fe)/4|0)|0,1<(255&(n=3&tr[(0|ar[w>>2])+n>>0]))){ne=fe+-1|0,ee=e?ne:fe,qA=(n<<1&255)-2|0,KA=0;do{if(TA=0|ar[(0==(0|KA)?m:v)>>2],$A=(n=0|ar[A+4+((KA=KA+1|0)<<2)>>2])+(i=(0|br(0|ar[_A>>2],te))+ie<<1)|0,e?(or[DA>>1]=0|or[$A>>1],or[QA>>1]=0|or[$A+-2>>1],or[_>>1]=0|or[$A+(VA<<1)>>1],or[t>>1]=0|or[$A+(Y<<1)>>1],or[D>>1]=0|or[$A+(Q<<1)>>1],or[c>>1]=0|or[$A+(J<<1)>>1],or[T>>1]=0|or[$A+(M<<1)>>1],or[u>>1]=0|or[$A+(U<<1)>>1],or[S>>1]=0|or[$A+2>>1],or[a>>1]=0|or[$A+-4>>1],or[z>>1]=0|or[$A+(O<<1)>>1],or[o>>1]=0|or[$A+(j<<1)>>1],or[x>>1]=0|or[$A+(H<<1)>>1],or[l>>1]=0|or[$A+(P<<1)>>1],or[K>>1]=0|or[$A+(L<<1)>>1],or[b>>1]=0|or[$A+(q<<1)>>1]):(PA=N+i|0,xA=lr[(xA=(LA=xA=$A)+4|0)>>1]|lr[xA+2>>1]<<16,ar[(HA=DA)>>2]=lr[LA>>1]|lr[LA+2>>1]<<16,ar[HA+4>>2]=xA,HA=lr[(HA=(xA=HA=n+PA|0)+4|0)>>1]|lr[HA+2>>1]<<16,ar[(LA=QA)>>2]=lr[xA>>1]|lr[xA+2>>1]<<16,ar[LA+4>>2]=HA,LA=lr[(LA=(HA=LA=n+(i+R)|0)+4|0)>>1]|lr[LA+2>>1]<<16,ar[(xA=CA)>>2]=lr[HA>>1]|lr[HA+2>>1]<<16,ar[xA+4>>2]=LA,PA=lr[(PA=(xA=PA=n+(PA+N)|0)+4|0)>>1]|lr[PA+2>>1]<<16,ar[(LA=GA)>>2]=lr[xA>>1]|lr[xA+2>>1]<<16,ar[LA+4>>2]=PA),n=oe>>(SA=0|ar[g>>2]),(0|(zA=fe>>SA))<=-1){n=14;break A}if((0|(HA=0|ar[Z>>2]))<=(0|zA)){n=14;break A}if((0|n)<=-1){n=17;break A}if((0|(jA=0|ar[p>>2]))<=(0|n)){n=17;break A}if(PA=0|ar[y>>2],xA=(OA=0|br(HA,n))+zA|0,i=re>>SA,!(-1<(0|(n=ee>>SA))&(0|n)<(0|HA))){n=19;break A}if(!(-1<(0|i)&(0|i)<(0|jA))){n=21;break A}n=PA+(3*((0|br(HA,i))+n|0)|0)+2|0,n=(1+(0|tr[PA+(3*xA|0)+2>>0])+(0|tr[n>>0])>>1)+TA|0;do{if(1==(0|ar[B>>2])){if(30<=(0|n)){if(42<(0|n)){n=n+-6|0;break}n=0|ar[8020+(n+-30<<2)>>2];break}}else n=(0|n)<51?n:51}while(0);if(i=fe>>(TA=0|ar[E>>2]),TA=oe>>TA,(0|i)<=-1){n=30;break A}if((0|(UA=0|ar[X>>2]))<=(0|i)){n=30;break A}if((0|TA)<=-1){n=33;break A}if((0|TA)>=(0|ar[W>>2])){n=33;break A}LA=(0|ar[I>>2])+(24*((0|br(UA,TA))+i|0)|0)+2|0,LA=qA+n+(0|ar[760+(0|ar[(0|ar[C>>2])+(lr[LA>>1]<<2)>>2])>>2])|0,LA=cr[48100+((0|LA)<0?0:(0|LA)<53?LA:53)>>0]<<(0|ar[s>>2])-8,UA=0==(0|tr[G>>0]);e:do{if(e){if(n=-1<(0|(i=ne>>SA)),UA){if(!n){n=41;break A}TA=1}else{if(!(n&(0|i)<(0|HA))){n=37;break A}TA=0==(1024&(cr[(TA=PA+(3*(OA+i|0)|0)|0)>>0]|cr[TA+1>>0]<<8))}if((0|HA)<=(0|i)){n=41;break A}if(i=PA+(3*(OA+i|0)|0)|0,SA=(n=UA?1:0==(1024&(cr[(n=PA+(3*xA|0)|0)>>0]|cr[n+1>>0]<<8)))&0==(2048&(cr[(SA=PA+(3*xA|0)|0)>>0]|cr[SA+1>>0]<<8)),OA=0-LA|0,TA&0==(2048&(cr[i>>0]|cr[i+1>>0]<<8)))for(n=0;;)if(i=DA+(n<<1)|0,PA=0|lr[QA+(n<<1)>>1],PA=(TA=(0|(TA=4+(0|lr[8+QA+(n<<1)>>1])+((0|lr[i>>1])-PA<<2)-(0|lr[DA+8+(n<<1)>>1])>>3))<(0|OA)?OA:(0|LA)<(0|TA)?LA:TA)+PA|0,UA=0|br(n,VA),or[$A+(UA+-1<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F),SA&&(PA=(0|lr[i>>1])-TA|0,or[$A+(UA<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),4==(0|(n=n+1|0)))break e;if(n=0|lr[DA>>1],i=4+(0|lr[$>>1])+(n-(0|lr[QA>>1])<<2)-(0|lr[AA>>1])>>3,SA&&(PA=n-((0|i)<(0|OA)?OA:(0|LA)<(0|i)?LA:i)|0,or[$A>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),n=0|lr[eA>>1],i=4+(0|lr[iA>>1])+(n-(0|lr[rA>>1])<<2)-(0|lr[fA>>1])>>3,SA&&(PA=n-((0|i)<(0|OA)?OA:(0|LA)<(0|i)?LA:i)|0,or[$A+(VA<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),n=0|lr[nA>>1],i=4+(0|lr[oA>>1])+(n-(0|lr[tA>>1])<<2)-(0|lr[aA>>1])>>3,SA&&(PA=n-((0|i)<(0|OA)?OA:(0|LA)<(0|i)?LA:i)|0,or[$A+(cA<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),n=0|lr[lA>>1],i=4+(0|lr[bA>>1])+(n-(0|lr[uA>>1])<<2)-(0|lr[sA>>1])>>3,!SA)break;LA=n-((0|i)<(0|OA)?OA:(0|LA)<(0|i)?LA:i)|0,or[$A+(dA<<1)>>1]=(0|LA)<0?0:65535&((0|LA)<(0|V)?LA:F)}else{if(n=-1<(0|(i=ce>>SA)),UA){if(!n){n=57;break A}TA=1}else{if(!(n&(0|i)<(0|jA))){n=53;break A}TA=PA+(3*((0|br(HA,i))+zA|0)|0)|0,TA=0==(1024&(cr[TA>>0]|cr[TA+1>>0]<<8))}if((0|jA)<=(0|i)){n=57;break A}if(i=PA+(3*((0|br(HA,i))+zA|0)|0)|0,UA=(n=UA?1:0==(1024&(cr[(n=PA+(3*xA|0)|0)>>0]|cr[n+1>>0]<<8)))&0==(2048&(cr[(UA=PA+(3*xA|0)|0)>>0]|cr[UA+1>>0]<<8)),SA=0-LA|0,!(TA&0==(2048&(cr[i>>0]|cr[i+1>>0]<<8)))){if(!UA)break;xA=(PA=0|lr[DA>>1])-((0|(xA=4+(0|lr[kA>>1])+(PA-(0|lr[QA>>1])<<2)-(0|lr[hA>>1])>>3))<(0|SA)?SA:(0|LA)<(0|xA)?LA:xA)|0,or[$A>>1]=(0|xA)<0?0:65535&((0|xA)<(0|V)?xA:F),PA=(xA=0|lr[wA>>1])-((0|(PA=4+(0|lr[mA>>1])+(xA-(0|lr[vA>>1])<<2)-(0|lr[gA>>1])>>3))<(0|SA)?SA:(0|LA)<(0|PA)?LA:PA)|0,or[$A+2>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F),xA=(PA=0|lr[ZA>>1])-((0|(xA=4+(0|lr[yA>>1])+(PA-(0|lr[pA>>1])<<2)-(0|lr[BA>>1])>>3))<(0|SA)?SA:(0|LA)<(0|xA)?LA:xA)|0,or[$A+4>>1]=(0|xA)<0?0:65535&((0|xA)<(0|V)?xA:F),LA=(xA=0|lr[EA>>1])-((0|(PA=4+(0|lr[WA>>1])+(xA-(0|lr[XA>>1])<<2)-(0|lr[IA>>1])>>3))<(0|SA)?SA:(0|LA)<(0|PA)?LA:PA)|0,or[$A+6>>1]=(0|LA)<0?0:65535&((0|LA)<(0|V)?LA:F);break}for(n=0;i=DA+(n<<1)|0,PA=0|lr[QA+(n<<1)>>1],PA=(TA=(0|(TA=4+(0|lr[8+QA+(n<<1)>>1])+((0|lr[i>>1])-PA<<2)-(0|lr[DA+8+(n<<1)>>1])>>3))<(0|SA)?SA:(0|LA)<(0|TA)?LA:TA)+PA|0,or[$A+(n-VA<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F),UA&&(PA=(0|lr[i>>1])-TA|0,or[$A+(n<<1)>>1]=(0|PA)<0?0:65535&((0|PA)<(0|V)?PA:F)),4!=(0|(n=n+1|0)););}}while(0)}while((0|KA)<2)}Ae=Ae+RA|0}while((0|Ae)<(0|ue))}if((0|le)<=(0|(r=r+NA|0))){n=5;break}}switch(0|n){case 5:return void(ur=MA);case 14:sr(48482,48519,118,48539);break;case 17:sr(48543,48519,119,48539);break;case 19:sr(48482,48519,118,48539);break;case 21:sr(48543,48519,119,48539);break;case 30:sr(48482,48519,118,48539);break;case 33:sr(48543,48519,119,48539);break;case 37:case 41:sr(48482,48519,118,48539);break;case 53:case 57:sr(48543,48519,119,48539)}}}function Xt(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA,uA,bA,sA,dA,kA,hA,wA,vA,mA,gA,ZA,pA,yA,BA,EA,XA,WA,IA,CA,GA,VA,FA,RA,NA,_A,YA,QA,DA,JA,MA,TA,UA,SA,OA,zA,jA,HA,xA,PA,LA,KA,qA,$A,Ae,ee,re,ie,fe,ne,te,oe,ae,ce,le,ue,be,se,de,ke,he,we,ve,me,ge,Ze,pe=0,ye=0,Be=0,Ee=0,Xe=0,We=0,Ie=0,Ce=0,Ge=0,Ve=0,Fe=0,Re=0,Ne=0,_e=0,Ye=0,Qe=0,De=0,Je=0,Me=0,Te=0,Ue=0,Se=0,Oe=0,ze=0,je=0,He=0;if(ur=(Ze=ur)+16|0,ve=Ze+8|0,me=Ze,ge=0|ar[(A|=0)+5780>>2],se=0|ar[A+5784>>2],de=0|br(ge,e?2:1),ke=0|br(se,e?1:2),be=0|ar[(he=A+44|0)>>2],He=(0|n)<(0|(He=0|ar[(we=A+10472|0)>>2]))?n:He,O=A+5768|0,(0|(je=(0|i)<(0|(je=0|ar[A+10476>>2]))?i:je))<=(0|r))ur=Ze;else{z=(0|f)<(0|He),j=3-ge|0,H=3-se|0,x=A+10460|0,P=A+5956|0,L=A+5952|0,K=A+10368|0,q=A+10372|0,$=A+10376|0,AA=A+10360|0,eA=A+5776|0,rA=A+10348|0,iA=A+10352|0,fA=A+10356|0,nA=A+10340|0,tA=A+48|0,oA=A+5480|0,cA=255+(aA=1<>2])|0,lA=0-be|0,kA=(sA=be<<1)-1|0,vA=(hA=3*be|0)-1|0,gA=1+be|0,pA=be-2|0,yA=1|sA,EA=sA-2|0,XA=1+hA|0,IA=hA-2|0,_A=bA=be-1|0,TA=(MA=be<<1)-1|0,HA=(jA=3*be|0)-1|0,fe=be<<1,ce=3*be|0,m=1-be|0,B=2-be|0,C=3-be|0,F=k=LA=VA=uA=me+1|0,R=h=KA=FA=t=1+ve|0,N=w=qA=RA=o=5+ve|0,_=v=$A=NA=ZA=me+5|0,Y=g=Ae=YA=dA=me+2|0,Q=Z=ee=QA=c=2+ve|0,D=p=re=DA=l=6+ve|0,J=y=ie=JA=BA=me+6|0,M=E=ne=UA=wA=me+3|0,T=X=te=SA=u=3+ve|0,U=W=oe=OA=b=7+ve|0,S=I=ae=zA=WA=me+7|0,ue=G=s=xA=CA=a=4+ve|0,le=V=d=PA=GA=mA=me+4|0;A:for(;;){if(z){Te=(0|(Me=0|br(Je=r<>2],Te))+((0|Oe)/4|0)|0,1<(255&(n=3&tr[(0|ar[x>>2])+n>>0]))){ze=Oe+-1|0,Qe=e?ze:Oe,Re=(n<<1&255)-2|0,Ne=Se-be|0,Fe=0;do{if(ye=0|ar[(0==(0|Fe)?L:P)>>2],_e=(n=0|ar[A+4+((Fe=Fe+1|0)<<2)>>2])+(pe=(i=0|br(0|ar[he>>2],Je))+Se|0)|0,e?(tr[me>>0]=0|tr[_e>>0],tr[ve>>0]=0|tr[_e+-1>>0],tr[uA>>0]=0|tr[_e+be>>0],tr[t>>0]=0|tr[_e+bA>>0],tr[dA>>0]=0|tr[_e+sA>>0],tr[c>>0]=0|tr[_e+kA>>0],tr[wA>>0]=0|tr[_e+hA>>0],tr[u>>0]=0|tr[_e+vA>>0],tr[mA>>0]=0|tr[_e+1>>0],tr[a>>0]=0|tr[_e+-2>>0],tr[ZA>>0]=0|tr[_e+gA>>0],tr[o>>0]=0|tr[_e+pA>>0],tr[BA>>0]=0|tr[_e+yA>>0],tr[l>>0]=0|tr[_e+EA>>0],tr[WA>>0]=0|tr[_e+XA>>0],tr[b>>0]=0|tr[_e+IA>>0]):(Ge=n+(Ve=Ne+i|0)|0,ar[me>>2]=cr[_e>>0]|cr[_e+1>>0]<<8|cr[_e+2>>0]<<16|cr[_e+3>>0]<<24,ar[ve>>2]=cr[Ge>>0]|cr[Ge+1>>0]<<8|cr[Ge+2>>0]<<16|cr[Ge+3>>0]<<24,Ve=n+(Ve-be)|0,Ge=n+(pe+be)|0,ar[le>>2]=cr[Ge>>0]|cr[Ge+1>>0]<<8|cr[Ge+2>>0]<<16|cr[Ge+3>>0]<<24,ar[ue>>2]=cr[Ve>>0]|cr[Ve+1>>0]<<8|cr[Ve+2>>0]<<16|cr[Ve+3>>0]<<24),n=Me>>(Be=0|ar[K>>2]),(0|(Xe=Oe>>Be))<=-1){n=14;break A}if((0|(Ie=0|ar[q>>2]))<=(0|Xe)){n=14;break A}if((0|n)<=-1){n=17;break A}if((0|(We=0|ar[$>>2]))<=(0|n)){n=17;break A}if(Ge=0|ar[AA>>2],Ce=(Ee=0|br(Ie,n))+Xe|0,i=De>>Be,!(-1<(0|(n=Qe>>Be))&(0|n)<(0|Ie))){n=19;break A}if(!(-1<(0|i)&(0|i)<(0|We))){n=21;break A}n=Ge+(3*((0|br(Ie,i))+n|0)|0)+2|0,n=(1+(0|tr[Ge+(3*Ce|0)+2>>0])+(0|tr[n>>0])>>1)+ye|0;do{if(1==(0|ar[eA>>2])){if(30<=(0|n)){if(42<(0|n)){n=n+-6|0;break}n=0|ar[8020+(n+-30<<2)>>2];break}}else n=(0|n)<51?n:51}while(0);if(i=Oe>>(pe=0|ar[rA>>2]),pe=Me>>pe,(0|i)<=-1){n=30;break A}if((0|(ye=0|ar[iA>>2]))<=(0|i)){n=30;break A}if((0|pe)<=-1){n=33;break A}if((0|pe)>=(0|ar[fA>>2])){n=33;break A}Ve=(0|ar[nA>>2])+(24*((0|br(ye,pe))+i|0)|0)+2|0,Ve=Re+n+(0|ar[760+(0|ar[(0|ar[tA>>2])+(lr[Ve>>1]<<2)>>2])>>2])|0,Ve=cr[48100+((0|Ve)<0?0:(0|Ve)<53?Ve:53)>>0]<<(0|ar[O>>2])-8,pe=0==(0|tr[oA>>0]);do{if(e){if(n=-1<(0|(i=ze>>Be)),pe){if(!n){n=41;break A}Be=1}else{if(!(n&(0|i)<(0|Ie))){n=37;break A}Be=0==(1024&(cr[(Be=Ge+(3*(Ee+i|0)|0)|0)>>0]|cr[Be+1>>0]<<8))}if((0|Ie)<=(0|i)){n=41;break A}if(ye=Ge+(3*(Ee+i|0)|0)|0,pe=(n=pe?1:0==(1024&(cr[(n=Ge+(3*Ce|0)|0)>>0]|cr[n+1>>0]<<8)))&0==(2048&(cr[(pe=Ge+(3*Ce|0)|0)>>0]|cr[pe+1>>0]<<8)),i=0-Ve|0,!(Be&0==(2048&(cr[ye>>0]|cr[ye+1>>0]<<8)))){if(!pe)break;Ce=(Ge=0|cr[me>>0])-((0|(Ce=4+(0|cr[xA>>0])+(Ge-(0|cr[ve>>0])<<2)-(0|cr[PA>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ce)?Ve:Ce)|0,tr[_e>>0]=(0|Ce)<0?0:255&((0|Ce)<(0|aA)?Ce:cA),Ge=(Ce=0|cr[LA>>0])-((0|(Ge=4+(0|cr[qA>>0])+(Ce-(0|cr[KA>>0])<<2)-(0|cr[$A>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ge)?Ve:Ge)|0,tr[_e+be>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),Ce=(Ge=0|cr[Ae>>0])-((0|(Ce=4+(0|cr[re>>0])+(Ge-(0|cr[ee>>0])<<2)-(0|cr[ie>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ce)?Ve:Ce)|0,tr[_e+fe>>0]=(0|Ce)<0?0:255&((0|Ce)<(0|aA)?Ce:cA),Ve=(Ce=0|cr[ne>>0])-((0|(Ge=4+(0|cr[oe>>0])+(Ce-(0|cr[te>>0])<<2)-(0|cr[ae>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ge)?Ve:Ge)|0,tr[_e+ce>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA);break}if(Ge=0|cr[ve>>0],Ge=(n=(0|(n=4+(0|cr[CA>>0])+((0|cr[me>>0])-Ge<<2)-(0|cr[GA>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+-1>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[me>>0])-n|0,tr[_e>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[FA>>0],Ge=(n=(0|(n=4+(0|cr[RA>>0])+((0|cr[VA>>0])-Ge<<2)-(0|cr[NA>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+_A>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[VA>>0])-n|0,tr[_e+be>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[QA>>0],Ge=(n=(0|(n=4+(0|cr[DA>>0])+((0|cr[YA>>0])-Ge<<2)-(0|cr[JA>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+TA>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[YA>>0])-n|0,tr[_e+MA>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[SA>>0],Ve=(n=(0|(n=4+(0|cr[OA>>0])+((0|cr[UA>>0])-Ge<<2)-(0|cr[zA>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+HA>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA),!pe)break;Ve=(0|cr[UA>>0])-n|0,tr[_e+jA>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA)}else{if(n=-1<(0|(i=Ue>>Be)),pe){if(!n){n=56;break A}Be=1}else{if(!(n&(0|i)<(0|We))){n=52;break A}Be=Ge+(3*((0|br(Ie,i))+Xe|0)|0)|0,Be=0==(1024&(cr[Be>>0]|cr[Be+1>>0]<<8))}if((0|We)<=(0|i)){n=56;break A}if(ye=Ge+(3*((0|br(Ie,i))+Xe|0)|0)|0,pe=(n=pe?1:0==(1024&(cr[(n=Ge+(3*Ce|0)|0)>>0]|cr[n+1>>0]<<8)))&0==(2048&(cr[(pe=Ge+(3*Ce|0)|0)>>0]|cr[pe+1>>0]<<8)),i=0-Ve|0,!(Be&0==(2048&(cr[ye>>0]|cr[ye+1>>0]<<8)))){if(!pe)break;Ce=(Ge=0|cr[me>>0])-((0|(Ce=4+(0|cr[G>>0])+(Ge-(0|cr[ve>>0])<<2)-(0|cr[V>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ce)?Ve:Ce)|0,tr[_e>>0]=(0|Ce)<0?0:255&((0|Ce)<(0|aA)?Ce:cA),Ge=(Ce=0|cr[F>>0])-((0|(Ge=4+(0|cr[N>>0])+(Ce-(0|cr[R>>0])<<2)-(0|cr[_>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ge)?Ve:Ge)|0,tr[_e+1>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),Ce=(Ge=0|cr[Y>>0])-((0|(Ce=4+(0|cr[D>>0])+(Ge-(0|cr[Q>>0])<<2)-(0|cr[J>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ce)?Ve:Ce)|0,tr[_e+2>>0]=(0|Ce)<0?0:255&((0|Ce)<(0|aA)?Ce:cA),Ve=(Ce=0|cr[M>>0])-((0|(Ge=4+(0|cr[U>>0])+(Ce-(0|cr[T>>0])<<2)-(0|cr[S>>0])>>3))<(0|i)?i:(0|Ve)<(0|Ge)?Ve:Ge)|0,tr[_e+3>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA);break}if(Ge=0|cr[ve>>0],Ge=(n=(0|(n=4+(0|cr[s>>0])+((0|cr[me>>0])-Ge<<2)-(0|cr[d>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+lA>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[me>>0])-n|0,tr[_e>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[h>>0],Ge=(n=(0|(n=4+(0|cr[w>>0])+((0|cr[k>>0])-Ge<<2)-(0|cr[v>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+m>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[k>>0])-n|0,tr[_e+1>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[Z>>0],Ge=(n=(0|(n=4+(0|cr[p>>0])+((0|cr[g>>0])-Ge<<2)-(0|cr[y>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+B>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA),pe&&(Ge=(0|cr[g>>0])-n|0,tr[_e+2>>0]=(0|Ge)<0?0:255&((0|Ge)<(0|aA)?Ge:cA)),Ge=0|cr[X>>0],Ve=(n=(0|(n=4+(0|cr[W>>0])+((0|cr[E>>0])-Ge<<2)-(0|cr[I>>0])>>3))<(0|i)?i:(0|Ve)<(0|n)?Ve:n)+Ge|0,tr[_e+C>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA),!pe)break;Ve=(0|cr[E>>0])-n|0,tr[_e+3>>0]=(0|Ve)<0?0:255&((0|Ve)<(0|aA)?Ve:cA)}}while(0)}while((0|Fe)<2)}Ye=Ye+de|0}while((0|Ye)<(0|He))}if((0|je)<=(0|(r=r+ke|0))){n=5;break}}switch(0|n){case 5:return void(ur=Ze);case 14:sr(48482,48519,118,48539);break;case 17:sr(48543,48519,119,48539);break;case 19:sr(48482,48519,118,48539);break;case 21:sr(48543,48519,119,48539);break;case 30:sr(48482,48519,118,48539);break;case 33:sr(48543,48519,119,48539);break;case 37:case 41:sr(48482,48519,118,48539);break;case 52:case 56:sr(48543,48519,119,48539)}}}function Wt(A,e,r,i,f,n,t){r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;for((0|(l=(e|=0)>>(u=0|ar[(d=(A|=0)+10448|0)>>2])))<=-1&&sr(48482,48519,118,48539),o=A+10452|0,a=A+10456|0,c=A+10440|0,v=e,b=i,s=n,h=t,i=(w=r)>>u;;){if((0|(e=0|ar[o>>2]))<=(0|l)){e=4;break}if((0|i)<=-1){e=7;break}if((0|i)>=(0|ar[a>>2])){e=7;break}if(u=(0|ar[c>>2])+((0|br(e,i))+l)|0,k=1<>0])&1<>1)+v|0,n=n+w|0,Wt(A,v,w,e=b+-1|0,f=f+1|0,s,h),Wt(A,i,w,e,f,16,h),Wt(A,v,n,e,f,s,32),(0|(l=i>>(t=0|ar[d>>2])))<=-1){e=4;break}v=i,b=e,s=16,h=32,i=(w=n)>>t}if(4==(0|e))sr(48482,48519,118,48539);else if(7==(0|e))sr(48543,48519,119,48539);else if(9==(0|e)){if(b=31==(0|b))return;for(i=255&s,f=(0|v)/4|0,n=A+10472|0,t=A+10476|0,l=A+10460|0,e=0;r=(e+w|0)/4|0,(0|f)<(0|(u=0|ar[n>>2]))&&(0|r)<(0|ar[t>>2])&&(d=(0|br(u,r))+f|0,d=(0|ar[l>>2])+d|0,tr[d>>0]=tr[d>>0]|i),(0|(e=e+4|0))<(0|k););if(b)return;for(u=255&h,t=(0|w)/4|0,l=A+10472|0,r=A+10476|0,i=A+10460|0,e=0;(0|(f=(e+v|0)/4|0))<(0|(n=0|ar[l>>2]))&&(0|t)<(0|ar[r>>2])&&(A=(0|br(n,t))+f|0,A=(0|ar[i>>2])+A|0,tr[A>>0]=tr[A>>0]|u),(0|(e=e+4|0))<(0|k););return}}function It(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0;var t,o=0,a=0,c=0,l=0,u=0;switch(n=(e|=0)>>(o=0|ar[(A|=0)+10368>>2]),o=r>>o,(0|n)<=-1&&sr(48482,48519,118,48539),(0|(f=0|ar[A+10372>>2]))<=(0|n)&&sr(48482,48519,118,48539),(0|o)<=-1&&sr(48543,48519,119,48539),(0|o)>=(0|ar[A+10376>>2])&&sr(48543,48519,119,48539),u=(0|ar[A+10360>>2])+(3*((0|br(f,o))+n|0)|0)|0,t=1<>0]|cr[u+1>>0]<<8))>>>3&7){case 3:if(31==(0|i))return;for(c=(n+e|0)/4|0,l=A+10472|0,u=A+10476|0,a=A+10460|0,i=(n+r|0)/4|0,o=0;f=(o+r|0)/4|0,(0|c)<(0|(n=0|ar[l>>2]))&&(0|f)<(0|ar[u>>2])&&(n=(0|br(n,f))+c|0,n=(0|ar[a>>2])+n|0,tr[n>>0]=64|tr[n>>0],n=0|ar[l>>2]),(0|(f=(o+e|0)/4|0))<(0|n)&&(0|i)<(0|ar[u>>2])&&(A=(0|br(n,i))+f|0,A=(0|ar[a>>2])+A|0,tr[A>>0]=-128|tr[A>>0]),(0|(o=o+1|0))<(0|t););return;case 2:if(31==(0|i))return;for(a=(n+e|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;n=(f+r|0)/4|0,(0|a)<(0|(o=0|ar[c>>2]))&&(0|n)<(0|ar[l>>2])&&(e=(0|br(o,n))+a|0,e=(0|ar[i>>2])+e|0,tr[e>>0]=64|tr[e>>0]),(0|(f=f+1|0))<(0|t););return;case 1:if(31==(0|i))return;for(a=(n+r|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;(0|(n=(f+e|0)/4|0))<(0|(o=0|ar[c>>2]))&&(0|a)<(0|ar[l>>2])&&(r=(0|br(o,a))+n|0,r=(0|ar[i>>2])+r|0,tr[r>>0]=-128|tr[r>>0]),(0|(f=f+1|0))<(0|t););return;case 6:if(31==(0|i))return;for(a=(f+e|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;n=(f+r|0)/4|0,(0|a)<(0|(o=0|ar[c>>2]))&&(0|n)<(0|ar[l>>2])&&(e=(0|br(o,n))+a|0,e=(0|ar[i>>2])+e|0,tr[e>>0]=64|tr[e>>0]),(0|(f=f+1|0))<(0|t););return;case 7:if(31==(0|i))return;for(a=(n+e+f|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;n=(f+r|0)/4|0,(0|a)<(0|(o=0|ar[c>>2]))&&(0|n)<(0|ar[l>>2])&&(e=(0|br(o,n))+a|0,e=(0|ar[i>>2])+e|0,tr[e>>0]=64|tr[e>>0]),(0|(f=f+1|0))<(0|t););return;case 4:if(31==(0|i))return;for(a=(f+r|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;(0|(n=(f+e|0)/4|0))<(0|(o=0|ar[c>>2]))&&(0|a)<(0|ar[l>>2])&&(r=(0|br(o,a))+n|0,r=(0|ar[i>>2])+r|0,tr[r>>0]=-128|tr[r>>0]),(0|(f=f+1|0))<(0|t););return;case 5:if(31==(0|i))return;for(a=(n+r+f|0)/4|0,c=A+10472|0,l=A+10476|0,i=A+10460|0,f=0;(0|(n=(f+e|0)/4|0))<(0|(o=0|ar[c>>2]))&&(0|a)<(0|ar[l>>2])&&(r=(0|br(o,a))+n|0,r=(0|ar[i>>2])+r|0,tr[r>>0]=-128|tr[r>>0]),(0|(f=f+1|0))<(0|t););return;default:return}}function Ct(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0;var o=0,a=0,c=0;return t=(0|(c=(f|=0)?(f=e+-1>>(o=0|ar[t+10368>>2]),o=r>>o,(0|f)<=-1&&sr(48482,48519,118,48539),(0|(a=0|ar[t+10372>>2]))<=(0|f)&&sr(48482,48519,118,48539),(0|o)<=-1&&sr(48543,48519,119,48539),(0|o)>=(0|ar[t+10376>>2])&&sr(48543,48519,119,48539),c=(0|ar[t+10360>>2])+(3*((0|br(a,o))+f|0)|0)|0,1792&(cr[c>>0]|cr[c+1>>0]<<8)?1:0|cr[(0|ar[t+10400>>2])+(i+-1)>>0]):1))!=(0|(f=n?(f=e>>(o=0|ar[t+10368>>2]),o=r+-1>>o,(0|f)<=-1&&sr(48482,48519,118,48539),(0|(a=0|ar[t+10372>>2]))<=(0|f)&&sr(48482,48519,118,48539),(0|o)<=-1&&sr(48543,48519,119,48539),(0|o)>=(0|ar[t+10376>>2])&&sr(48543,48519,119,48539),n=(0|ar[t+10360>>2])+(3*((0|br(a,o))+f|0)|0)|0,0==(1792&(cr[n>>0]|cr[n+1>>0]<<8))&&(r>>(n=0|ar[t+5804>>2])<>2])+(i-(0|ar[t+5876>>2]))>>0]:1):1))?0!=(0|(ar[A>>2]=c))&0!=(0|(ar[A+4>>2]=f))?0:1!=(0|c)&1!=(0|f)?1:26:c>>>0<2?(ar[A>>2]=0,ar[A+4>>2]=1,26):(ar[A>>2]=c,ar[A+4>>2]=2+(c+29&31),2+((c+-1|0)%32|0)|0),void(ar[(A=A+8|0)>>2]=t)}function Gt(A,e,r,i,f,n){return A|=0,e|=0,r|=0,i|=0,f|=0,8<(0|ar[(0==(0|(n|=0))?A+5760|0:A+5768|0)>>2])?void function(A,e,r,i,f,n){i|=0;var t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;ur=(o=ur)+272|0,function(A,e,r,i,f,n){e|=0,r|=0,i|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0;ur=(m=ur)+144|0,v=(h=m)+64|0,w=0|ar[4+(A|=0)+((f|=0)<<2)>>2],c=0|ar[((f=0==(0|f))?A+40|0:A+44|0)>>2],L=f?q=1:(q=0|ar[A+5780>>2],0|ar[A+5784>>2]);k=0|ar[(f?A+5760|0:A+5768|0)>>2],Q=0|br(q,e),Y=0|br(L,r),C=0|ar[A+5804>>2],W=0|ar[A+5820>>2],F=(M=0!=(0|Q))&(V=1^(y=0==(0|Y))),I=Q+(0|br(q,i))|0,D=0|ar[A+1248>>2],N=(0|I)<(0|D)&V,B=Q>>C,p=Y>>C,E=Q+-1>>C,I>>=C,C=Y+-1>>C,g=0|ar[A+10352>>2],f=0|br(g,p),Z=0|ar[A+10340>>2],o=0|lr[Z+(24*(f+B|0)|0)>>1],J=M?0|lr[Z+(24*(f+E|0)|0)>>1]:-1;G=y?-1:(G=Z+(24*((0|br(g,C))+B|0)|0)|0,0|lr[G>>1]);R=N?(R=Z+(24*((0|br(g,C))+I|0)|0)|0,0|lr[R>>1]):-1;X=F?(X=Z+(24*((0|br(g,C))+E|0)|0)|0,0|lr[X>>1]):-1;f=0|br(p,W),p=0|ar[A+10308>>2],t=0|ar[p+(f+B<<2)>>2],_=M?0|ar[p+(f+E<<2)>>2]:-1;g=y?-1:(g=p+((0|br(C,W))+B<<2)|0,0|ar[g>>2]);Z=F?(Z=p+((0|br(C,W))+E<<2)|0,0|ar[Z>>2]):-1;f=N?(f=p+((0|br(C,W))+I<<2)|0,0|ar[f>>2]):-1;d=(0|G)==(0|o)&(0|g)==(0|t)&V,F=F&(0|X)==(0|o)&(0|Z)==(0|t),l=N&(0|R)==(0|o)&(0|f)==(0|t),u=0|ar[A+5864>>2],a=0|ar[A+5852>>2],K=(0|br(Y>>u,a))+(Q>>u)|0,b=0|ar[A+10320>>2],K=0|ar[b+(K<<2)>>2],f=(L+-1-Y+(0|ar[A+1252>>2])|0)/(0|L)|0,Y=(0|f)>(0|(s=i<<1))?s:f,Q=(0|(Q=(q+-1-Q+D|0)/(0|q)|0))>(0|s)?s:Q,vb(0-s+v|0,0,0|(D=i<<2|1)),g=Y+-1|0;A:do{if(0<(0|Y)&&(T=e+-1|0,U=0|br(q,T),S=A+10368|0,O=A+10372|0,z=A+10376|0,j=A+10360|0,M&(0|J)==(0|o)&(0|_)==(0|t))){for(C=64-((0|f)<(0|s)?f:s)|0,G=U>>u,V=0==(0|tr[A+5944>>0]),W=g,I=g=f=0;;){if(X=h+(C+(I<<2))|0,Z=0|br(E=W+r|0,L),y=b+((0|br(Z>>u,a))+G<<2)|0,y=(0|ar[y>>2])<=(0|K),V)y&&(H=29);else{if(M=0|ar[S>>2],Z>>=M,(0|(B=U>>M))<=-1){H=34;break}if((0|(p=0|ar[O>>2]))<=(0|B)){H=34;break}if((0|Z)<=-1){H=35;break}if((0|Z)>=(0|ar[z>>2])){H=35;break}M=(0|ar[j>>2])+(3*((0|br(p,Z))+B|0)|0)|0,y&0==(768&(cr[M>>0]|cr[M+1>>0]<<8))&&(H=29)}if(29==(0|H)&&(Z=w+(((H=0)|br(E,c))+T<<1)|0,g||(f=0|or[Z>>1]),tr[X>>0]=1,tr[X+1>>0]=1,tr[X+2>>0]=1,tr[X+3>>0]=1,or[n+(~W<<1)>>1]=0|or[Z>>1],M=w+((0|br(E+-1|0,c))+T<<1)|0,or[n+(1-W-1<<1)>>1]=0|or[M>>1],M=w+((0|br(E+-2|0,c))+T<<1)|0,or[n+(2-W-1<<1)>>1]=0|or[M>>1],M=w+((0|br(E+-3|0,c))+T<<1)|0,or[n+(3-W-1<<1)>>1]=0|or[M>>1],g=g+4|0),(0|(W=W+-4|0))<=-1){x=f,P=g;break A}I=I+1|0}34==(0|H)?sr(48482,48519,118,48539):35==(0|H)&&sr(48543,48519,119,48539)}else P=x=0}while(0);A:do{if(F){f=0|br(q,p=e+-1|0),g=0|br(L,y=r+-1|0),B=b+((0|br(g>>u,a))+(f>>u)<<2)|0,B=(0|ar[B>>2])<=(0|K);do{if(0|tr[A+5944>>0]){if(H=0|ar[A+10368>>2],Z=f>>H,f=g>>H,(0|Z)<=-1&&sr(48482,48519,118,48539),(0|(g=0|ar[A+10372>>2]))<=(0|Z)&&sr(48482,48519,118,48539),(0|f)<=-1&&sr(48543,48519,119,48539),(0|f)<(0|ar[A+10376>>2])){if(H=(0|ar[A+10360>>2])+(3*((0|br(g,f))+Z|0)|0)|0,B&0==(768&(cr[H>>0]|cr[H+1>>0]<<8)))break;g=P,f=x;break A}sr(48543,48519,119,48539)}else if(!B){g=P,f=x;break A}}while(0);g=w+((0|br(c,y))+p<<1)|0,f=P?x:0|or[g>>1],or[n>>1]=0|or[g>>1],tr[v>>0]=1,g=P+1|0}else g=P,f=x}while(0);A:do{if(0<(0|Q)){_=0|br(L,V=r+-1|0),Y=A+5944|0,V=0|br(c,V),F=A+10368|0,R=A+10372|0,N=A+10376|0,G=A+10360|0,C=0|br(_>>u,a),W=I=0;e:for(;;){X=h+(65+(W<<2))|0;do{if((0|I)<(0|i)?d:l){if(Z=0|br(B=I+e|0,q),E=(0|ar[b+(C+(Z>>u)<<2)>>2])<=(0|K),0|tr[Y>>0]){if(p=0|ar[F>>2],Z>>=p,p=_>>p,(0|Z)<=-1){H=55;break e}if((0|(y=0|ar[R>>2]))<=(0|Z)){H=55;break e}if((0|p)<=-1){H=58;break e}if((0|p)>=(0|ar[N>>2])){H=58;break e}if(A=(0|ar[G>>2])+(3*((0|br(y,p))+Z|0)|0)|0,!(E&0==(768&(cr[A>>0]|cr[A+1>>0]<<8))))break}else if(!E)break;p=w+((Z=B+V|0)<<1)|0,g||(f=0|or[p>>1]),A=1|I,tr[X>>0]=1,tr[X+1>>0]=1,tr[X+2>>0]=1,tr[X+3>>0]=1,or[n+(A<<1)>>1]=0|or[p>>1],or[n+(A+1<<1)>>1]=0|or[w+(Z+1<<1)>>1],or[n+((3|I)<<1)>>1]=0|or[w+(Z+2<<1)>>1],or[n+(A+3<<1)>>1]=0|or[w+(Z+3<<1)>>1],g=g+4|0}}while(0);if((0|Q)<=(0|(I=I+4|0))){$=g,AA=f;break A}W=W+1|0}55==(0|H)?sr(48482,48519,118,48539):58==(0|H)&&sr(48543,48519,119,48539)}else $=g,AA=f}while(0);if((0|$)==(0|D))return ur=m;if(f=0|br(i,-2),!$){if((0|s)<(0|f))return ur=m;for(g=1<>1]=g,(0|f)<(0|s);)f=f+1|0;return ur=m}0|tr[v+f>>0]||(or[n+(f<<1)>>1]=AA);if((0|(f|=1))>(0|s))return ur=m;for(;0|tr[v+f>>0]||(or[n+(f<<1)>>1]=0|or[n+(f+-1<<1)>>1]),(0|f)<(0|s);)f=f+1|0;ur=m}(A|=0,e|=0,r|=0,f|=0,n|=0,t=o+128|0);do{if(!(0|tr[A+5753>>0])){if(0|n&&3!=(0|ar[A+5776>>2]))break;tc(A,t,f,n,i)}}while(0);switch(0|i){case 0:if(s=0|ar[(0==(0|n)?A+40|0:A+44|0)>>2],b=(0|ar[A+4+(n<<2)>>2])+((0|br(s,r))+e<<1)|0,1<(0|f)){for(i=f,A=0;3>>0;)i>>>=1,A=A+1|0;i=A+2|0}else i=1;if((0|f)<=0)return ur=o;r=f+-1|0,n=t+(f+1<<1)|0,a=t+(~f<<1)|0,e=0;do{for(c=t+(~e<<1)|0,l=r-e|0,u=0|br(e,s),e=e+1|0,A=0;w=0|br(0|lr[c>>1],r-A|0),A=(d=A)+1|0,h=0|br(0|lr[n>>1],A),k=0|br(0|lr[t+(A<<1)>>1],l),k=w+f+h+k+(0|br(0|lr[a>>1],e))>>i&65535,or[b+(d+u<<1)>>1]=k,(0|A)!=(0|f););}while((0|e)!=(0|f));return ur=o;case 1:return function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,n|=0;var t,o,a,c,l=0;if(c=0|ar[((o=0==(0|(f|=0)))?A+40|0:A+44|0)>>2],a=(0|ar[A+4+(f<<2)>>2])+((0|br(c,r))+e<<1)|0,t=1<(0|i)){for(A=i,e=0;3>>0;)A>>>=1,e=e+1|0;r=e+2|0}else r=1;if(f=0<(0|i))for(A=e=0;A=(0|lr[n+((e=(l=e)+1|0)<<1)>>1])+A+(0|lr[n+(~l<<1)>>1])|0,(0|e)!=(0|i););else A=0;if(r=A+i>>r,!((0|i)<32&o)){if(!f)return;r&=65535,e=0;do{for(f=0|br(e,c),A=0;or[a+(A+f<<1)>>1]=r,(0|(A=A+1|0))!=(0|i););e=e+1|0}while((0|e)!=(0|i));return}if(or[a>>1]=(2+(r<<1)+(0|lr[n+-2>>1])+(0|lr[n+2>>1])|0)>>>2,!t)return;e=2+(3*r|0)|0,A=1;for(;A=(l=A)+1|0,or[a+(l<<1)>>1]=(e+(0|lr[n+(A<<1)>>1])|0)>>>2,(0|A)!=(0|i););if(!t)return;e=2+(3*r|0)|0,A=1;for(;l=a+((0|br(A,c))<<1)|0,or[l>>1]=(e+(0|lr[n+(~A<<1)>>1])|0)>>>2,A=A+1|0,(0|A)!=(0|i););if(!t)return;r&=65535,A=1;do{for(f=0|br(A,c),e=1;or[a+(e+f<<1)>>1]=r,(0|(e=e+1|0))!=(0|i););A=A+1|0}while((0|A)!=(0|i))}(A,e,r,f,n,t),ur=o;default:(function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var o,a,c,l,u,b,s,d,k,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;ur=(k=ur)+272|0,l=(w=k)+128|0,s=0|ar[((u=0==(0|(n|=0)))?A+40|0:A+44|0)>>2],o=0|ar[A+4+(n<<2)>>2],a=(0|br(s,r))+e<<1,d=o+a|0,b=0|ar[(u?A+5760|0:A+5768|0)>>2],35<=(0|i)&&sr(48302,48289,596,48319);(0|i)<=1&&sr(48344,48289,597,48319);c=0|ar[9568+(i<<2)>>2];do{if(0|tr[A+5750>>0]){if(n=0|ar[A+10368>>2],h=e>>n,n=r>>n,(0|h)<=-1&&sr(48482,48519,118,48539),(0|(e=0|ar[A+10372>>2]))<=(0|h)&&sr(48482,48519,118,48539),(0|n)<=-1&&sr(48543,48519,119,48539),(0|n)<(0|ar[A+10376>>2])){p=(0|ar[A+10360>>2])+(3*((0|br(e,n))+h|0)|0)|0,p=0==(2048&(cr[p>>0]|cr[p+1>>0]<<8));break}sr(48543,48519,119,48539)}else p=1}while(0);{if(n=(0|f)<0,17<(0|i)){if(n||hb(0|l,0|t,2+(f<<1)|0),(n=i+-11|0)>>>0<15){if(e=0|ar[9708+(n<<2)>>2],(0|(n=(0|br(c,f))>>5))<-1)for(;Z=t+(0-(128+(0|br(n,e))>>8)<<1)|0,or[l+(n<<1)>>1]=0|or[Z>>1],(0|n)<-1;)n=n+1|0}else(0|f)<(0|(n=f<<1))&&hb(w+(f+65<<1)|0,t+(f+1<<1)|0,0|n);if(!(g=0<(0|f)))return ur=k;Z=s<<1,m=w+130|0,r=f<<1,e=0;do{if(A=0|br(e=(n=e)+1|0,c),h=A>>5,A&=31,w=0|br(n,s),v=32-A|0,A)for(n=0;y=((B=0|br(0|lr[l+((y=n+h|0)+1<<1)>>1],v))+16+(0|br(0|lr[l+(y+2<<1)>>1],A))|0)>>>5&65535,or[d+(n+w<<1)>>1]=y,(0|(n=n+1|0))!=(0|f););else hb(o+(a+(0|br(Z,n)))|0,m+(h<<1)|0,0|r)}while((0|e)!=(0|f));if(!((0|f)<32&26==(0|i)&u&p&g))return ur=k;for(h=t+2|0,r=(e=1<>1])-(0|lr[t>>1])>>1)+(0|lr[h>>1])|0,B=d+((0|br(n,s))<<1)|0,or[B>>1]=(0|y)<0?0:65535&((0|y)<(0|e)?y:r),(0|(n=n+1|0))!=(0|f););return ur=k}if(!n)for(n=0;or[l+(n<<1)>>1]=0|or[t+(0-n<<1)>>1],(0|n)!=(0|f);)n=n+1|0;if((n=i+-11|0)>>>0<15){if(e=0|ar[9708+(n<<2)>>2],(0|(n=(0|br(c,f))>>5))<-1)for(;B=t+(128+(0|br(n,e))>>8<<1)|0,or[l+(n<<1)>>1]=0|or[B>>1],(0|n)<-1;)n=n+1|0}else if((0|f)<(0|(e=f<<1)))for(n=f;or[l+((n=(B=n)+1|0)<<1)>>1]=0|or[t+(~B<<1)>>1],(0|n)!=(0|e););if(!(v=0<(0|f)))return ur=k;w=0;do{for(m=0|br(w,s),h=0;r=0|br(h=(A=h)+1|0,c),e=31&r,n=0|or[l+((r=(r>>5)+w|0)+1<<1)>>1],e&&(n=((n=0|br(65535&n,32-e|0))+16+(0|br(0|lr[l+(r+2<<1)>>1],e))|0)>>>5&65535),or[d+(A+m<<1)>>1]=n,(0|h)!=(0|f););w=w+1|0}while((0|w)!=(0|f));if(!((0|f)<32&10==(0|i)&u&p&v))return ur=k;for(h=t+-2|0,r=(e=1<>1])-(0|lr[t>>1])>>1)+(0|lr[h>>1])|0,or[d+(B<<1)>>1]=(0|y)<0?0:65535&((0|y)<(0|e)?y:r),(0|n)!=(0|f););ur=k}})(A,e,r,i,f,n,t),ur=o}}(A,e,r,i,f,n):void function(A,e,r,i,f,n){i|=0;var t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;ur=(o=ur)+144|0,function(A,e,r,i,f,n){e|=0,r|=0,i|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0;ur=(g=ur)+144|0,m=(w=g)+64|0,v=0|ar[4+(A|=0)+((f|=0)<<2)>>2],s=0|ar[((f=0==(0|f))?A+40|0:A+44|0)>>2],q=f?AA=1:(AA=0|ar[A+5780>>2],0|ar[A+5784>>2]);h=0|ar[(f?A+5760|0:A+5768|0)>>2],D=0|br(AA,e),Y=0|br(q,r),G=0|ar[A+5804>>2],I=0|ar[A+5820>>2],R=(T=0!=(0|D))&(F=1^(B=0==(0|Y))),C=D+(0|br(AA,i))|0,J=0|ar[A+1248>>2],_=(0|C)<(0|J)&F,E=D>>G,y=Y>>G,X=D+-1>>G,C>>=G,G=Y+-1>>G,Z=0|ar[A+10352>>2],f=0|br(Z,y),p=0|ar[A+10340>>2],o=0|lr[p+(24*(f+E|0)|0)>>1],M=T?0|lr[p+(24*(f+X|0)|0)>>1]:-1;V=B?-1:(V=p+(24*((0|br(Z,G))+E|0)|0)|0,0|lr[V>>1]);N=_?(N=p+(24*((0|br(Z,G))+C|0)|0)|0,0|lr[N>>1]):-1;W=R?(W=p+(24*((0|br(Z,G))+X|0)|0)|0,0|lr[W>>1]):-1;f=0|br(y,I),y=0|ar[A+10308>>2],t=0|ar[y+(f+E<<2)>>2],Q=T?0|ar[y+(f+X<<2)>>2]:-1;Z=B?-1:(Z=y+((0|br(G,I))+E<<2)|0,0|ar[Z>>2]);p=R?(p=y+((0|br(G,I))+X<<2)|0,0|ar[p>>2]):-1;f=_?(f=y+((0|br(G,I))+C<<2)|0,0|ar[f>>2]):-1;k=(0|V)==(0|o)&(0|Z)==(0|t)&F,F=R&(0|W)==(0|o)&(0|p)==(0|t),c=_&(0|N)==(0|o)&(0|f)==(0|t),E=0|ar[(l=A+5864|0)>>2],B=0|ar[(u=A+5852|0)>>2],$=(0|br(Y>>E,B))+(D>>E)|0,y=0|ar[(b=A+10320|0)>>2],$=0|ar[y+($<<2)>>2],Z=(q+-1-Y+(0|ar[A+1252>>2])|0)/(0|q)|0,Y=(0|Z)>(0|(d=i<<1))?d:Z,D=(0|(D=(AA+-1-D+J|0)/(0|AA)|0))>(0|d)?d:D,vb(m+(J=0-d|0)|0,0,0|(a=i<<2|1)),f=Y+-1|0;A:do{if(0<(0|Y)&&(U=e+-1|0,S=0|br(AA,U),O=A+5944|0,z=A+10368|0,j=A+10372|0,H=A+10376|0,x=A+10360|0,T&(0|M)==(0|o)&(0|Q)==(0|t))){for(V=64-((0|Z)<(0|d)?Z:d)|0,G=p=Z=0;;){if(C=w+(V+(G<<2))|0,W=0|br(I=f+r|0,q),E=y+((0|br(W>>E,B))+(S>>E)<<2)|0,E=(0|ar[E>>2])<=(0|$),0|tr[O>>0]){if(y=0|ar[z>>2],X=S>>y,y=W>>y,(0|X)<=-1){P=35;break}if((0|(B=0|ar[j>>2]))<=(0|X)){P=35;break}if((0|y)<=-1){P=36;break}if((0|y)>=(0|ar[H>>2])){P=36;break}T=(0|ar[x>>2])+(3*((0|br(B,y))+X|0)|0)|0,E&0==(768&(cr[T>>0]|cr[T+1>>0]<<8))&&(P=29)}else E&&(P=29);if(29==(0|P)&&(y=v+(((P=0)|br(I,s))+U)|0,p||(Z=0|tr[y>>0]),tr[C>>0]=1,tr[C+1>>0]=1,tr[C+2>>0]=1,tr[C+3>>0]=1,tr[n+~f>>0]=0|tr[y>>0],T=v+((0|br(I+-1|0,s))+U)|0,tr[n+(1-f-1)>>0]=0|tr[T>>0],T=v+((0|br(I+-2|0,s))+U)|0,tr[n+(2-f-1)>>0]=0|tr[T>>0],T=v+((0|br(I+-3|0,s))+U)|0,tr[n+(3-f-1)>>0]=0|tr[T>>0],p=p+4|0),(0|(f=f+-4|0))<=-1){L=Z,K=p;break A}E=0|ar[l>>2],B=0|ar[u>>2],y=0|ar[b>>2],G=G+1|0}35==(0|P)?sr(48482,48519,118,48539):36==(0|P)&&sr(48543,48519,119,48539)}else K=L=0}while(0);A:do{if(F){f=0|br(AA,y=e+-1|0),E=0|ar[l>>2],Z=0|br(q,B=r+-1|0),E=(0|br(Z>>E,0|ar[u>>2]))+(f>>E)|0,E=(0|ar[(0|ar[b>>2])+(E<<2)>>2])<=(0|$);do{if(0|tr[A+5944>>0]){if(P=0|ar[A+10368>>2],p=f>>P,f=Z>>P,(0|p)<=-1&&sr(48482,48519,118,48539),(0|(Z=0|ar[A+10372>>2]))<=(0|p)&&sr(48482,48519,118,48539),(0|f)<=-1&&sr(48543,48519,119,48539),(0|f)<(0|ar[A+10376>>2])){if(P=(0|ar[A+10360>>2])+(3*((0|br(Z,f))+p|0)|0)|0,E&0==(768&(cr[P>>0]|cr[P+1>>0]<<8)))break;Z=K,f=L;break A}sr(48543,48519,119,48539)}else if(!E){Z=K,f=L;break A}}while(0);Z=v+((0|br(s,B))+y)|0,f=K?L:0|tr[Z>>0],tr[n>>0]=0|tr[Z>>0],tr[m>>0]=1,Z=K+1|0}else Z=K,f=L}while(0);A:do{if(0<(0|D)){_=0|br(q,V=r+-1|0),Y=A+5944|0,V=0|br(s,V),F=A+10368|0,R=A+10372|0,N=A+10376|0,G=A+10360|0,I=C=0;e:for(;;){W=w+(65+(I<<2))|0;do{if((0|C)<(0|i)?k:c){if(p=0|br(E=C+e|0,AA),X=0|ar[l>>2],X=(0|br(_>>X,0|ar[u>>2]))+(p>>X)|0,X=(0|ar[(0|ar[b>>2])+(X<<2)>>2])<=(0|$),0|tr[Y>>0]){if(y=0|ar[F>>2],p>>=y,y=_>>y,(0|p)<=-1){P=56;break e}if((0|(B=0|ar[R>>2]))<=(0|p)){P=56;break e}if((0|y)<=-1){P=59;break e}if((0|y)>=(0|ar[N>>2])){P=59;break e}if(A=(0|ar[G>>2])+(3*((0|br(B,y))+p|0)|0)|0,!(X&0==(768&(cr[A>>0]|cr[A+1>>0]<<8))))break}else if(!X)break;y=v+(p=E+V|0)|0,Z||(f=0|tr[y>>0]),A=1|C,tr[W>>0]=1,tr[W+1>>0]=1,tr[W+2>>0]=1,tr[W+3>>0]=1,tr[n+A>>0]=0|tr[y>>0],tr[n+(A+1)>>0]=0|tr[v+(p+1)>>0],tr[n+(3|C)>>0]=0|tr[v+(p+2)>>0],tr[n+(A+3)>>0]=0|tr[v+(p+3)>>0],Z=Z+4|0}}while(0);if((0|D)<=(0|(C=C+4|0))){eA=Z,rA=f;break A}I=I+1|0}56==(0|P)?sr(48482,48519,118,48539):59==(0|P)&&sr(48543,48519,119,48539)}else eA=Z,rA=f}while(0);if((0|eA)==(0|a))return ur=g;if(!eA)return vb(n+J|0,1<>0]||(tr[n+f>>0]=rA);if((0|(f|=1))>(0|d))return ur=g;for(;0|tr[m+f>>0]||(tr[n+f>>0]=0|tr[n+(f+-1)>>0]),(0|f)<(0|d);)f=f+1|0;ur=g}(A|=0,e|=0,r|=0,f|=0,n|=0,t=o+64|0);do{if(!(0|tr[A+5753>>0])){if(0|n&&3!=(0|ar[A+5776>>2]))break;nc(A,t,f,n,i)}}while(0);switch(0|i){case 0:if(s=0|ar[(0==(0|n)?A+40|0:A+44|0)>>2],b=(0|ar[A+4+(n<<2)>>2])+((0|br(s,r))+e)|0,1<(0|f)){for(i=f,A=0;3>>0;)i>>>=1,A=A+1|0;i=A+2|0}else i=1;if((0|f)<=0)return ur=o;r=f+-1|0,n=t+(f+1)|0,a=t+~f|0,e=0;do{for(c=t+~e|0,l=r-e|0,u=0|br(e,s),e=e+1|0,A=0;w=0|br(0|cr[c>>0],r-A|0),A=(d=A)+1|0,h=0|br(0|cr[n>>0],A),k=0|br(0|cr[t+A>>0],l),k=w+f+h+k+(0|br(0|cr[a>>0],e))>>i&255,tr[b+(d+u)>>0]=k,(0|A)!=(0|f););}while((0|e)!=(0|f));return ur=o;case 1:return function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,n|=0;var t,o,a,c,l,u,b=0,s=0,d=0;if(u=0|ar[((o=0==(0|(f|=0)))?A+40|0:A+44|0)>>2],l=0|ar[A+4+(f<<2)>>2],t=(0|br(u,r))+e|0,a=l+t|0,c=1<(0|i)){for(A=i,f=0;3>>0;)A>>>=1,f=f+1|0;b=f+2|0}else b=1;if(s=0<(0|i))for(A=f=0;A=(0|cr[n+(f=(d=f)+1|0)>>0])+A+(0|cr[n+~d>>0])|0,(0|f)!=(0|i););else A=0;if(b=A+i>>b,!((0|i)<32&o)){if(!s)return;for(f=255&b,A=0;vb(l+(t+(0|br(u,A)))|0,0|f,0|i),(0|(A=A+1|0))!=(0|i););return}if(tr[a>>0]=(2+(b<<1)+(0|cr[n+-1>>0])+(0|cr[n+1>>0])|0)>>>2,!c)return;f=2+(3*b|0)|0,A=1;for(;A=(d=A)+1|0,tr[a+d>>0]=(f+(0|cr[n+A>>0])|0)>>>2,(0|A)!=(0|i););if(!c)return;f=2+(3*b|0)|0,A=1;for(;d=a+(0|br(A,u))|0,tr[d>>0]=(f+(0|cr[n+~A>>0])|0)>>>2,A=A+1|0,(0|A)!=(0|i););if(!c)return;s=255&b,b=(0|br(u,r+1|0))+e+1|0,A=i+-1|0,f=0;for(;vb(l+(b+(0|br(u,f)))|0,0|s,0|A),f=f+1|0,(0|f)!=(0|A););}(A,e,r,f,n,t),ur=o;default:(function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var o,a,c,l,u,b,s,d,k,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;ur=(k=ur)+144|0,l=(w=k)+64|0,s=0|ar[((u=0==(0|(n|=0)))?A+40|0:A+44|0)>>2],o=0|ar[A+4+(n<<2)>>2],a=(0|br(s,r))+e|0,d=o+a|0,b=0|ar[(u?A+5760|0:A+5768|0)>>2],35<=(0|i)&&sr(48302,48289,596,48319);(0|i)<=1&&sr(48344,48289,597,48319);c=0|ar[9568+(i<<2)>>2];do{if(0|tr[A+5750>>0]){if(n=0|ar[A+10368>>2],h=e>>n,n=r>>n,(0|h)<=-1&&sr(48482,48519,118,48539),(0|(e=0|ar[A+10372>>2]))<=(0|h)&&sr(48482,48519,118,48539),(0|n)<=-1&&sr(48543,48519,119,48539),(0|n)<(0|ar[A+10376>>2])){g=(0|ar[A+10360>>2])+(3*((0|br(e,n))+h|0)|0)|0,g=0==(2048&(cr[g>>0]|cr[g+1>>0]<<8));break}sr(48543,48519,119,48539)}else g=1}while(0);{if(n=(0|f)<0,17<(0|i)){if(n||hb(0|l,0|t,f+1|0),(n=i+-11|0)>>>0<15){if(e=0|ar[9708+(n<<2)>>2],(0|(n=(0|br(c,f))>>5))<-1)for(;m=t+(0-(128+(0|br(n,e))>>8))|0,tr[l+n>>0]=0|tr[m>>0],(0|n)<-1;)n=n+1|0}else(0|f)<(f<<1|0)&&hb(w+(f+65)|0,t+(f+1)|0,0|f);if(!(m=0<(0|f)))return ur=k;v=w+65|0,n=0;do{if(r=0|br(s,n),A=0|br(n=n+1|0,c),h=A>>5,w=32-(A&=31)|0,A)for(e=0;Z=((p=0|br(0|cr[l+((Z=e+h|0)+1)>>0],w))+16+(0|br(0|cr[l+(Z+2)>>0],A))|0)>>>5&255,tr[d+(e+r)>>0]=Z,(0|(e=e+1|0))!=(0|f););else hb(o+(a+r)|0,v+h|0,0|f)}while((0|n)!=(0|f));if(!((0|f)<32&26==(0|i)&u&g&m))return ur=k;for(h=t+1|0,e=(r=1<>0])-(0|cr[t>>0])>>1)+(0|cr[h>>0])|0,p=d+(0|br(n,s))|0,tr[p>>0]=(0|Z)<0?0:255&((0|Z)<(0|r)?Z:e),(0|(n=n+1|0))!=(0|f););return ur=k}if(!n)for(n=0;tr[l+n>>0]=0|tr[t+(0-n)>>0],(0|n)!=(0|f);)n=n+1|0;if((n=i+-11|0)>>>0<15){if(e=0|ar[9708+(n<<2)>>2],(0|(n=(0|br(c,f))>>5))<-1)for(;p=t+(128+(0|br(n,e))>>8)|0,tr[l+n>>0]=0|tr[p>>0],(0|n)<-1;)n=n+1|0}else if((0|f)<(0|(e=f<<1)))for(n=f;tr[l+(n=(p=n)+1|0)>>0]=0|tr[t+~p>>0],(0|n)!=(0|e););if(!(v=0<(0|f)))return ur=k;w=0;do{for(m=0|br(w,s),h=0;r=0|br(h=(A=h)+1|0,c),e=31&r,n=0|tr[l+((r=(r>>5)+w|0)+1)>>0],e&&(n=((n=0|br(255&n,32-e|0))+16+(0|br(0|cr[l+(r+2)>>0],e))|0)>>>5&255),tr[d+(A+m)>>0]=n,(0|h)!=(0|f););w=w+1|0}while((0|w)!=(0|f));if(!((0|f)<32&10==(0|i)&u&g&v))return ur=k;for(h=t+-1|0,r=(e=1<>0])-(0|cr[t>>0])>>1)+(0|cr[h>>0])|0,tr[d+p>>0]=(0|Z)<0?0:255&((0|Z)<(0|e)?Z:r),(0|n)!=(0|f););ur=k}})(A,e,r,i,f,n,t),ur=o}}(A,e,r,i,f,n)}function Vt(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5196,ar[(r=A+16|0)>>2]=5224,0|(i=0|ar[A+84>>2])&&((0|ar[(f=A+88|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),(0|tr[(i=A+72|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()}function Ft(A){var e=0,r=0,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5104,0|(e=0|ar[(n=A+56|0)>>2])){if((0|(r=0|ar[(t=A+60|0)>>2]))!=(0|e)){for(i=r;r=i+-16|0,ar[t>>2]=r,(f=0|ar[i+-12>>2])&&((0|(i=0|ar[(r=i+-8|0)>>2]))!=(0|f)&&(ar[r>>2]=i+(~((i+-4-f|0)>>>2)<<2)),vu(f),r=0|ar[t>>2]),(0|r)!=(0|e);)i=r;e=0|ar[n>>2]}vu(e)}if(ar[A>>2]=4404,0|(e=0|ar[(f=A+44|0)>>2])){if((0|(r=0|ar[(n=A+48|0)>>2]))!=(0|e)){for(;i=r+-8|0,ar[n>>2]=i,(0|(r=(r=0|ar[r+-4>>2])?(du(r),0|ar[n>>2]):i))!=(0|e););e=0|ar[f>>2]}vu(e)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(e=A+28|0)>>2])!=(0|r)&&(ar[e>>2]=r),vu(r))}function Rt(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=(A|=0)+4|0,i=0|ar[A>>2],268435455<(f=(o=(0|ar[r>>2])-i>>4)+1|0)>>>0&&zl(),i=(a=(0|ar[(c=A+8|0)>>2])-i|0)>>3,i=a>>4>>>0<134217727?i>>>0>>0?f:i:268435455;do{if(i){if(!(268435455>>0)){t=0|hu(i<<4);break}Zu(c=0|X(8),44519),ar[c>>2]=17660,I(0|c,4016,428)}else t=0}while(0);if(a=t+(i<<4)|0,ar[(n=f=t+(o<<4)|0)>>2]=ar[e>>2],function(A,e){e|=0;var r,i,f,n,t=0;if(ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,ar[A+8>>2]=0,t=(0|ar[(f=e+4|0)>>2])-(0|ar[e>>2])|0,!(r=t>>2))return;1073741823>>0&&zl();if(i=0|hu(t),ar[n>>2]=i,ar[A>>2]=i,ar[A+8>>2]=i+(r<<2),A=0|ar[e>>2],(0|(t=(0|ar[f>>2])-A|0))<=0)return;hb(0|i,0|A,0|t),ar[n>>2]=i+(t>>>2<<2)}(t+(o<<4)+4|0,e+4|0),e=f+16|0,t=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|t))f=n,i=o=t;else{for(;i=(u=i)+-16|0,ar[f+-16>>2]=ar[i>>2],o=u+-12|0,ar[(l=f+-12|0)>>2]=0,ar[(b=f+-8|0)>>2]=0,ar[f+-4>>2]=0,ar[l>>2]=ar[o>>2],l=u+-8|0,ar[b>>2]=ar[l>>2],u=u+-4|0,ar[f+-4>>2]=ar[u>>2],ar[u>>2]=0,ar[l>>2]=0,n=f=n+-16|(ar[o>>2]=0),(0|i)!=(0|t););f=n,o=0|ar[A>>2],i=0|ar[r>>2]}if(ar[A>>2]=f,ar[r>>2]=e,ar[c>>2]=a,(0|i)!=(0|(e=o)))for(;0|(f=0|ar[i+-12>>2])&&((0|(t=0|ar[(n=i+-8|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-4-f|0)>>>2)<<2)),vu(f)),(0|(i=i+-16|0))!=(0|e););o&&vu(o)}function Nt(A,e){e|=0;var r,i,f,n,t,o,a=0,c=0,l=0,u=0;n=(A|=0)+4|0,u=t=0|ar[A>>2],1073741823<(a=1+(i=(o=(0|ar[n>>2])-t|0)>>2)|0)>>>0&&zl(),c=(l=(0|ar[(f=A+8|0)>>2])-t|0)>>1,c=l>>2>>>0<536870911?c>>>0>>0?a:c:1073741823;do{if(c){if(!(1073741823>>0)){l=0|hu(c<<2);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else l=0}while(0);r=l+(i<<2)|0,a=lr[e>>1]|lr[e+2>>1]<<16,or[r>>1]=a,or[2+r>>1]=a>>>16,a=r+(0-i<<2)|0,0<(0|o)&&hb(0|a,0|u,0|o),ar[A>>2]=a,ar[n>>2]=4+r,ar[f>>2]=l+(c<<2),t&&vu(u)}function _t(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4924,(0|tr[(r=A+112|0)+11>>0])<0&&vu(0|ar[r>>2]),(0|tr[(r=A+100|0)+11>>0])<0&&vu(0|ar[r>>2]),(0|tr[(r=A+88|0)+11>>0])<0&&vu(0|ar[r>>2]),(0|tr[(r=A+76|0)+11>>0])<0&&vu(0|ar[r>>2]),(0|tr[(r=A+64|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function Yt(A){var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0;if(ar[(A|=0)>>2]=4804,0|(r=0|ar[(e=A+56|0)>>2])){if((0|(i=0|ar[(c=A+60|0)>>2]))!=(0|r)){for(f=i;;){if(i=f+-32|0,ar[c>>2]=i,o=0|ar[(a=f+-16|0)>>2]){if((0|(i=0|ar[(t=f+-12|0)>>2]))==(0|o))i=o;else{for(;f=i+-40|0,ar[t>>2]=f,(0|(i=(n=0|ar[i+-16>>2])?((0|ar[(i=i+-12|0)>>2])!=(0|n)&&(ar[i>>2]=n),vu(n),0|ar[t>>2]):f))!=(0|o););i=0|ar[a>>2]}vu(i),i=0|ar[c>>2]}if((0|i)==(0|r))break;f=i}r=0|ar[e>>2]}vu(r)}if(ar[A>>2]=4404,0|(r=0|ar[(n=A+44|0)>>2])){if((0|(i=0|ar[(t=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[t>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[t>>2]):f))!=(0|r););r=0|ar[n>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))}function Qt(A,e){e|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;b=0|ar[(d=(A|=0)+4|0)>>2],n=t=0|ar[A>>2],107374182<(o=(u=((a=b)-t|0)/40|0)+1|0)>>>0&&zl(),c=(s=((0|ar[(f=A+8|0)>>2])-t|0)/40|0)<<1,c=s>>>0<53687091?c>>>0>>0?o:c:107374182;do{if(c){if(!(107374182>>0)){l=0|hu(40*c|0);break}Zu(d=0|X(8),44519),ar[d>>2]=17660,I(0|d,4016,428)}else l=0}while(0);s=l+(40*c|0)|0,ar[(o=t=l+(40*u|0)|0)>>2]=ar[e>>2],ar[t+4>>2]=ar[e+4>>2],ar[t+8>>2]=ar[e+8>>2],ar[t+12>>2]=ar[e+12>>2],ar[t+16>>2]=ar[e+16>>2],ar[t+20>>2]=ar[e+20>>2],ar[(r=l+(40*u|0)+24|0)>>2]=0,ar[(i=l+(40*u|0)+28|0)>>2]=0,k=(ar[l+(40*u|0)+32>>2]=0)|ar[e+24>>2],c=(0|ar[e+28>>2])-k|0,e=k;do{if(0|c){if(!((0|c)<0)){h=0|hu(c),ar[i>>2]=h,k=(ar[r>>2]=h)+c|0,ar[l+(40*u|0)+32>>2]=k,hb(0|h,0|e,0|c),ar[i>>2]=k;break}zl()}}while(0);if(e=t+40|0,(0|a)==(0|n))c=b;else{for(;a=(b=a)+-40|0,ar[(k=t+-40|0)>>2]=ar[a>>2],ar[k+4>>2]=ar[a+4>>2],ar[k+8>>2]=ar[a+8>>2],ar[k+12>>2]=ar[a+12>>2],ar[k+16>>2]=ar[a+16>>2],ar[k+20>>2]=ar[a+20>>2],h=b+-16|0,ar[(k=t+-16|0)>>2]=0,ar[(u=t+-12|0)>>2]=0,ar[t+-8>>2]=0,ar[k>>2]=ar[h>>2],k=b+-12|0,ar[u>>2]=ar[k>>2],b=b+-8|0,ar[t+-8>>2]=ar[b>>2],ar[b>>2]=0,ar[k>>2]=0,o=t=o+-40|(ar[h>>2]=0),(0|a)!=(0|n););c=0|ar[A>>2],n=0|ar[d>>2]}if(ar[A>>2]=o,ar[d>>2]=e,ar[f>>2]=s,(0|n)!=(0|(a=c)))for(;0|(t=0|ar[n+-16>>2])&&((0|ar[(o=n+-12|0)>>2])!=(0|t)&&(ar[o>>2]=t),vu(t)),(0|(n=n+-40|0))!=(0|a););c&&vu(c)}function Dt(A,e){e|=0;var r,i,f,n=0;ar[(A|=0)>>2]=0,ar[(r=A+4|0)>>2]=0,f=((ar[A+8>>2]=0)|(n=(0|ar[(i=e+4|0)>>2])-(0|ar[e>>2])|0))/40|0,n&&(107374182>>0&&zl(),n=0|hu(n),ar[r>>2]=n,ar[A>>2]=n,ar[A+8>>2]=n+(40*f|0),function(A,e,r,i){i|=0;var f,n=0,t=0,o=0,a=0,c=0;if(f=4+(A|=0)|0,(0|(e|=0))==(0|(r|=0)))return;i=0|ar[f>>2];for(;;){if(ar[i>>2]=ar[e>>2],ar[i+4>>2]=ar[e+4>>2],ar[i+8>>2]=ar[e+8>>2],ar[i+12>>2]=ar[e+12>>2],ar[i+16>>2]=ar[e+16>>2],ar[i+20>>2]=ar[e+20>>2],n=e+24|0,ar[(o=i+24|0)>>2]=0,ar[(c=i+28|0)>>2]=0,(ar[i+32>>2]=0)|(A=(0|ar[(t=e+28|0)>>2])-(0|ar[n>>2])|0)){if((0|A)<0){A=5;break}a=0|hu(A),ar[c>>2]=a,ar[o>>2]=a,ar[i+32>>2]=a+A,i=0|ar[n>>2],0<(0|(A=(0|ar[t>>2])-i|0))&&(hb(0|a,0|i,0|A),ar[c>>2]=a+A)}if(e=e+40|0,i=40+(0|ar[f>>2])|0,ar[f>>2]=i,(0|e)==(0|r)){A=9;break}}if(5==(0|A))zl();else if(9==(0|A));}(A,0|ar[e>>2],0|ar[i>>2],f))}function Jt(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=(A|=0)+4|0,i=0|ar[A>>2],134217727<(f=(o=(0|ar[r>>2])-i>>5)+1|0)>>>0&&zl(),i=(c=(0|ar[(l=A+8|0)>>2])-i|0)>>4,i=c>>5>>>0<67108863?i>>>0>>0?f:i:134217727;do{if(i){if(!(134217727>>0)){t=0|hu(i<<5);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else t=0}while(0);if(a=t+(i<<5)|0,ar[(n=f=t+(o<<5)|0)>>2]=ar[e>>2],ar[f+4>>2]=ar[e+4>>2],ar[f+8>>2]=ar[e+8>>2],ar[f+12>>2]=ar[e+12>>2],Dt(t+(o<<5)+16|0,e+16|0),e=f+32|0,t=0|ar[A>>2],(0|(i=0|ar[r>>2]))==(0|t))i=n,f=c=t;else{for(;i=(u=i)+-32|0,ar[(o=f+-32|0)>>2]=ar[i>>2],ar[o+4>>2]=ar[i+4>>2],ar[o+8>>2]=ar[i+8>>2],ar[o+12>>2]=ar[i+12>>2],c=u+-16|0,ar[(o=f+-16|0)>>2]=0,ar[(b=f+-12|0)>>2]=0,ar[f+-8>>2]=0,ar[o>>2]=ar[c>>2],o=u+-12|0,ar[b>>2]=ar[o>>2],u=u+-8|0,ar[f+-8>>2]=ar[u>>2],ar[u>>2]=0,ar[o>>2]=0,n=f=n+-32|(ar[c>>2]=0),(0|i)!=(0|t););i=n,c=0|ar[A>>2],f=0|ar[r>>2]}if(ar[A>>2]=i,ar[r>>2]=e,ar[l>>2]=a,(0|f)!=(0|(A=c))){a=f;do{if(0|(i=0|ar[(e=a+-16|0)>>2])){if((0|(f=0|ar[(o=a+-12|0)>>2]))!=(0|i)){for(;n=f+-40|0,ar[o>>2]=n,(0|(f=(t=0|ar[f+-16>>2])?((0|ar[(f=f+-12|0)>>2])!=(0|t)&&(ar[f>>2]=t),vu(t),0|ar[o>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}a=a+-32|0}while((0|a)!=(0|A))}c&&vu(c)}function Mt(A){var e;ar[(A|=0)>>2]=4264,e=A+8|0,ar[A+40>>2]=0,ar[e>>2]=0,ar[4+e>>2]=0,ar[8+e>>2]=0,ar[12+e>>2]=0,ar[16+e>>2]=0,ar[20+e>>2]=0,ar[24+e>>2]=0,or[28+e>>1]=0}function Tt(A,e,r){A|=0,r|=0;var i,f=0;f=0|ar[(e|=0)+44>>2],i=0|ar[e+48>>2];A:do{if((0|f)!=(0|i)){for(e=f;f=0|ar[e>>2],(0|ar[f+20>>2])!=(0|r);)if((0|(e=e+8|0))==(0|i))break A;return(ar[A>>2]=f,e=0|ar[e+4>>2],ar[A+4>>2]=e)?void bu(e):void 0}}while(0);ar[A>>2]=0,ar[A+4>>2]=0}function Ut(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;f=0|ar[(u=(A|=0)+4|0)>>2],c=n=0|ar[A>>2],536870911<(t=1+(r=f-n>>3)|0)>>>0&&zl(),o=(l=(0|ar[(i=A+8|0)>>2])-n|0)>>2,o=l>>3>>>0<268435455?o>>>0>>0?t:o:536870911;do{if(o){if(!(536870911>>0)){a=0|hu(o<<3);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else a=0}while(0);if(l=a+(o<<3)|0,ar[(t=n=a+(r<<3)|0)>>2]=ar[e>>2],o=0|ar[e+4>>2],o=(ar[a+(r<<3)+4>>2]=o)?(bu(o),f=0|ar[u>>2],0|ar[A>>2]):c,a=n+8|0,(0|f)!=(0|o)){for(;f=(c=f)+-8|0,ar[n+-8>>2]=ar[f>>2],c=c+-4|0,ar[n+-4>>2]=ar[c>>2],ar[f>>2]=0,t=n=t+-8|(ar[c>>2]=0),(0|f)!=(0|o););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=l,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function St(A,e){e|=0;var r=0;if((0|(r=0|ar[(A|=0)+64>>2]))==(0|(A=0|ar[A+68>>2])))return(e=0)|e;for(;;){if((0|ar[r>>2])==(0|e)){r=1,A=4;break}if((0|(r=r+4|0))==(0|A)){r=0,A=4;break}}return 4==(0|A)?0|r:0}function Ot(A,e,r,i,f,n){A|=0,e|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0;ur=(w=ur)+272|0,k=w+252|0,h=w+72|0,b=w+240|0,s=w+228|0,d=w+216|0,c=w+56|0,l=w+44|0,t=w+24|0,o=w+16|0,u=w,e=0|ar[(r|=0)+16>>2],a=0|ar[r+20>>2];A:do{if((0|e)!=(0|a)){F=r+4|0,V=n+4|0,R=r+8|0,E=4+o|0,X=i+4|0,I=(W=8+t|0)+11|0;e:for(;;){switch(0|tr[F>>0]){case 0:if(C=(0|ar[V>>2])-(0|ar[n>>2])|0,m=0|ar[(g=B=e+16|0)>>2],0<(g=0|ar[g+4>>2])>>>0|0==(0|g)&(536870912-C|0)>>>0>>0){e=5;break e}if(Z=0|ar[(p=y=e+8|0)>>2],8388607<(p=0|ar[p+4>>2])>>>0|8388607==(0|p)&4294967295>>0){e=14;break e}if(r=0|ar[(v=R)>>2],8388607<(N=(v=0|ar[v+4>>2])|g)>>>0|8388607==(0|N)&4294967295<(r|m)>>>0){e=14;break e}switch(_=0|ar[i>>2],Y=0|ar[12+(0|ar[_>>2])>>2],N=0|tb(0|tb(0|Z,0|p,0|m,0|g),0|D,0|r,0|v),0|xb[63&Y](_,N,D)){case 2:e=17;break e;case 1:e=26;break e}if(_=0|ar[i>>2],N=0|ar[20+(0|ar[_>>2])>>2],Y=y,Y=0|tb(0|ar[(y=R)>>2],0|ar[y+4>>2],0|ar[Y>>2],0|ar[Y+4>>2]),!(0|xb[63&N](_,Y,D))){e=29;break e}if((m=0|tb(0|(v=0|ar[(m=B)>>2]),0|ar[m+4>>2],0|C,0))>>>0<=(g=(Z=0|ar[V>>2])-(r=0|ar[n>>2])|0)>>>0?m>>>0>>0&&(0|Z)!=(0|(G=r+m|0))&&(ar[V>>2]=G):(TA(n,m-g|0),v=0|ar[B>>2],r=0|ar[n>>2]),Y=0|ar[i>>2],0|xb[63&ar[16+(0|ar[Y>>2])>>2]](Y,r+C|0,v))break;e=36;break e;case 1:if(!(r=0|ar[f>>2])){e=38;break e}ar[o>>2]=ar[i>>2],v=0|ar[X>>2],(m=0==(0|(ar[E>>2]=v)))||bu(v),_=e+8|0,Y=e+16|0,zt(t,r,o,0|tb(0|ar[(N=R)>>2],0|ar[N+4>>2],0|ar[_>>2],0|ar[_+4>>2]),D,0|ar[Y>>2],0|ar[Y+4>>2],n),(0|tr[I>>0])<0&&vu(0|ar[W>>2]),m||du(v);break;default:e=46;break e}if((0|(e=e+40|0))==(0|a))break A}if(5==(0|e))return r=64+h|0,ar[(m=8+h|0)>>2]=4524,v=12+h|0,ar[h>>2]=188,ar[r>>2]=208,Jf(64+h|(ar[4+h>>2]=0),v),ar[136+h>>2]=0,ar[140+h>>2]=-1,ar[h>>2]=4504,ar[r>>2]=4544,ar[m>>2]=4524,Sf(v),ar[v>>2]=4340,ar[(m=44+h|0)>>2]=0,ar[m+4>>2]=0,ar[m+8>>2]=0,ar[m+12>>2]=0,ar[60+h>>2]=24,ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,Xe(v,k),(0|tr[11+k>>0])<0&&vu(0|ar[k>>2]),Y=0|We(e=8+h|0,23479,19),_=0|We(0|Kf(Y,0|ar[(_=B)>>2],0|ar[_+4>>2]),23499,35),We(0|Pf(0|We(0|Kf(_,Y=0|tb(0|ar[(Y=B)>>2],0|ar[Y+4>>2],0|C,0),D),23535,40),536870912),23576,6),Ie(b,v),oo(A,6,1e3,b),(0|tr[11+b>>0])<0&&vu(0|ar[b>>2]),ar[h>>2]=4504,ar[r>>2]=4544,ar[e>>2]=4524,ar[v>>2]=4340,(0|tr[m+11>>0])<0&&vu(0|ar[m>>2]),kf(v),bf(r),void(ur=w);if(14==(0|e)){for(e=0|hu(48),ar[s>>2]=e,ar[8+s>>2]=-2147483600,v=23583,m=(r=e)+(ar[4+s>>2]=39)|0;tr[r>>0]=0|tr[v>>0],v=v+1|0,(0|(r=r+1|0))<(0|m););return(tr[e+39>>0]=0,oo(A,2,1e3,s),0<=(0|tr[11+s>>0]))?void(ur=w):(vu(0|ar[s>>2]),void(ur=w))}if(17==(0|e))return e=0|ar[n>>2],(0|ar[V>>2])!=(0|e)&&(ar[V>>2]=e),r=64+h|0,ar[(m=8+h|0)>>2]=4524,v=12+h|0,ar[h>>2]=188,ar[r>>2]=208,Jf(64+h|(ar[4+h>>2]=0),v),ar[136+h>>2]=0,ar[140+h>>2]=-1,ar[h>>2]=4504,ar[r>>2]=4544,ar[m>>2]=4524,Sf(v),ar[v>>2]=4340,ar[(m=44+h|0)>>2]=0,ar[m+4>>2]=0,ar[m+8>>2]=0,ar[m+12>>2]=0,ar[60+h>>2]=24,ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,Xe(v,k),(0|tr[11+k>>0])<0&&vu(0|ar[k>>2]),_=0|We(0|We(e=8+h|0,23623,58),23682,25),Y=y,We(0|Kf(_,Y=0|tb(0|ar[(N=R)>>2],0|ar[N+4>>2],0|ar[Y>>2],0|ar[Y+4>>2]),D),18904,2),Ie(d,v),oo(A,2,100,d),(0|tr[11+d>>0])<0&&vu(0|ar[d>>2]),ar[h>>2]=4504,ar[r>>2]=4544,ar[e>>2]=4524,ar[v>>2]=4340,(0|tr[m+11>>0])<0&&vu(0|ar[m>>2]),kf(v),bf(r),void(ur=w);if(26==(0|e))return ar[c>>2]=0,ar[4+c>>2]=0,ar[8+c>>2]=0,oo(A,2,100,c),0<=(0|tr[11+c>>0])||vu(0|ar[c>>2]),void(ur=w);if(29==(0|e))sr(23708,19104,1114,23716);else if(36==(0|e))sr(23708,19104,1122,23716);else{if(38==(0|e)){for(e=0|hu(64),ar[l>>2]=e,ar[8+l>>2]=-2147483584,v=23726,m=(r=e)+(ar[4+l>>2]=54)|0;tr[r>>0]=0|tr[v>>0],v=v+1|0,(0|(r=r+1|0))<(0|m););return(tr[e+54>>0]=0,oo(A,2,103,l),0<=(0|tr[11+l>>0]))?void(ur=w):(vu(0|ar[l>>2]),void(ur=w))}if(46==(0|e))return e=64+h|0,ar[(v=8+h|0)>>2]=4524,r=12+h|0,ar[h>>2]=188,ar[e>>2]=208,Jf(64+h|(ar[4+h>>2]=0),r),ar[136+h>>2]=0,ar[140+h>>2]=-1,ar[h>>2]=4504,ar[e>>2]=4544,ar[v>>2]=4524,Sf(r),ar[r>>2]=4340,ar[(v=44+h|0)>>2]=0,ar[v+4>>2]=0,ar[v+8>>2]=0,ar[v+12>>2]=0,ar[60+h>>2]=24,ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,Xe(r,k),(0|tr[11+k>>0])<0&&vu(0|ar[k>>2]),Y=0|We(m=8+h|0,23781,25),tr[k>>0]=0|tr[F>>0],We(0|We(Y,k,1),23807,16),Ie(u,r),oo(A,4,103,u),(0|tr[u+11>>0])<0&&vu(0|ar[u>>2]),ar[h>>2]=4504,ar[e>>2]=4544,ar[m>>2]=4524,ar[r>>2]=4340,(0|tr[v+11>>0])<0&&vu(0|ar[v>>2]),kf(r),bf(e),void(ur=w)}}}while(0);_=0|ar[(N=56592)+4>>2],ar[(Y=A)>>2]=ar[N>>2],ar[Y+4>>2]=_,yu(A+8|0,56600),ur=w}function zt(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;return ur=(c=ur)+208|0,s=c+192|0,k=c+48|0,d=c+36|0,l=c+24|0,h=c+12|0,w=c,0<(t|=0)>>>0|0==(0|t)&(536870912-(m=(0|ar[(a=(o|=0)+4|0)>>2])-(0|ar[o>>2])|0)|0)>>>0>>0?(l=k+64|0,ar[(b=k+8|0)>>2]=4524,u=k+12|0,ar[k>>2]=188,ar[l>>2]=208,Jf(k+64|(ar[k+4>>2]=0),u),ar[k+136>>2]=0,ar[k+140>>2]=-1,ar[k>>2]=4504,ar[l>>2]=4544,ar[b>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(b=k+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[k+60>>2]=24,ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,Xe(u,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2]),r=0|We(0|Kf(0|We(e=k+8|0,23824,19),n,t),23499,35),We(0|Pf(0|We(0|Kf(r,n=0|tb(0|m,0,0|n,0|t),D),23535,40),536870912),23576,6),Ie(d,u),oo(A,6,1e3,d),(0|tr[d+11>>0])<0&&vu(0|ar[d>>2]),ar[k>>2]=4504,ar[l>>2]=4544,ar[e>>2]=4524,ar[u>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(u),bf(l),void(ur=c)):(d=0|ar[(k=s=e+64|0)>>2],k=0|ar[k+4>>2],e=0|tb(0|(u=0|ar[(b=e+8|0)>>2]),0|(b=0|ar[b+4>>2]),0|d,0|k),(g=D)>>>0>>0|(0|g)==(0|f)&e>>>0>>0?(ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,oo(A,2,100,l),0<=(0|tr[l+11>>0])||vu(0|ar[l>>2]),void(ur=c)):(e=0|tb(0|n,0|t,0|i,0|f),b>>>0>>0|(0|b)==(0|t)&u>>>0>>0|b>>>0<(l=D)>>>0|(0|l)==(0|b)&u>>>0>>0?(ar[h>>2]=0,ar[h+4>>2]=0,ar[h+8>>2]=0,oo(A,2,100,h),0<=(0|tr[h+11>>0])||vu(0|ar[h>>2]),void(ur=c)):(h=0|ar[r>>2],b=0|ar[12+(0|ar[h>>2])>>2],g=0|tb(0|e,0|l,0|d,0|k),((0|xb[63&b](h,g,D))-1|0)>>>0<2?(ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,oo(A,2,100,w),0<=(0|tr[w+11>>0])||vu(0|ar[w>>2]),void(ur=c)):(w=0|ar[r>>2],h=0|ar[20+(0|ar[w>>2])>>2],g=0|tb(0|ar[(g=s)>>2],0|ar[g+4>>2],0|i,0|f),0|xb[63&h](w,g,D)||sr(23708,19104,3031,23716),0==(0|n)&0==(0|t)||((l=0|tb(0|m,0,0|n,0|t))>>>0<=(u=(b=0|ar[a>>2])-(e=0|ar[o>>2])|0)>>>0?l>>>0>>0&&(0|b)!=(0|(v=e+l|0))&&(ar[a>>2]=v):(TA(o,l-u|0),e=0|ar[o>>2]),g=0|ar[r>>2],0|xb[63&ar[16+(0|ar[g>>2])>>2]](g,e+m|0,n)||sr(23708,19104,3040,23716)),n=0|ar[(m=56592)+4>>2],ar[(g=A)>>2]=ar[m>>2],ar[g+4>>2]=n,yu(A+8|0,56600),void(ur=c)))))}function jt(A){or[(A|=0)+4>>1]=2,or[A+6>>1]=2,or[A+8>>1]=6,tr[A+10>>0]=1}function Ht(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;ur=(c=ur)+336|0,o=c+316|0,a=c+160|0,b=c+304|0,t=(n=c)+144|0,u=0|ar[(i|=0)>>2],i=0|ar[u+56>>2],u=0|ar[u+60>>2];A:do{if((0|i)!=(0|u)){for(;l=i+16|0,(0|ar[i>>2])!=(0|r);){if((0|l)==(0|u))break A;i=l}xt(a,e+44|0),l=0|ar[i+4>>2],s=0|ar[i+8>>2];e:do{if((0|l)==(0|s))g=34;else{for(d=4+a|0,h=8+o|0,w=k=4+o|0,v=f+4|0,m=f+8|0;u=65535&(i=0|or[(b=l+2|0)>>1]),e=Z=0|ar[a>>2],!(u>>>0>(0|ar[d>>2])-Z>>3>>>0);){ar[k>>2]=0,ar[h>>2]=0,tr[o>>0]=0|tr[l>>0];do{if(i<<16>>16){if(b=0|ar[e+((i=u+-1|0)<<3)>>2],(u=i=0|ar[e+(i<<3)+4>>2])?(bu(i),i=0|ar[h>>2],ar[w>>2]=b,ar[h>>2]=u,0|i&&du(i)):(ar[w>>2]=b,ar[h>>2]=u),(0|(i=0|ar[v>>2]))==(0|ar[m>>2])){Pt(f,o);break}tr[i>>0]=0|tr[o>>0],ar[i+4>>2]=ar[w>>2],u=0|ar[h>>2],(ar[i+8>>2]=u)&&(bu(u),i=0|ar[v>>2]),ar[v>>2]=i+12}}while(0);if(0|(i=0|ar[h>>2])&&du(i),(0|(l=l+4|0))==(0|s)){g=34;break e}}l=n+64|0,ar[(e=n+8|0)>>2]=4524,u=n+12|0,ar[n>>2]=188,ar[l>>2]=208,Jf(n+64|(ar[n+4>>2]=0),u),ar[n+136>>2]=0,ar[n+140>>2]=-1,ar[n>>2]=4504,ar[l>>2]=4544,ar[e>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(e=n+44|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[n+60>>2]=24,ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,Xe(u,o),(0|tr[11+o>>0])<0&&vu(0|ar[o>>2]),Z=0|We(i=n+8|0,23901,28),We(0|Lf(0|We(0|We(0|xf(Z,0|or[b>>1]),23930,11),23942,4),r),23947,23),Ie(t,u),oo(A,2,115,t),(0|tr[11+t>>0])<0&&vu(0|ar[t>>2]),ar[n>>2]=4504,ar[l>>2]=4544,ar[i>>2]=4524,ar[u>>2]=4340,(0|tr[e+11>>0])<0&&vu(0|ar[e>>2]),kf(u),bf(l),i=a}}while(0);if(34==(0|g)&&(Z=0|ar[(r=56592)+4>>2],ar[(i=A)>>2]=ar[r>>2],ar[i+4>>2]=Z,yu(A+8|0,56600),i=a),0|(i=0|ar[i>>2])){if((0|(l=0|ar[(e=4+a|0)>>2]))!=(0|i)){for(;u=l+-8|0,ar[e>>2]=u,(0|(l=(l=0|ar[l+-4>>2])?(du(l),0|ar[e>>2]):u))!=(0|i););i=0|ar[a>>2]}vu(i)}return void(ur=c)}}while(0);l=64+a|0,ar[(e=8+a|0)>>2]=4524,u=12+a|0,ar[a>>2]=188,ar[l>>2]=208,Jf(64+a|(ar[4+a>>2]=0),u),ar[136+a>>2]=0,ar[140+a>>2]=-1,ar[a>>2]=4504,ar[l>>2]=4544,ar[e>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(e=44+a|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[60+a>>2]=24,ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,Xe(u,o),(0|tr[11+o>>0])<0&&vu(0|ar[o>>2]),We(0|Lf(0|We(i=8+a|0,23844,9),r),23854,46),Ie(b,u),oo(A,2,116,b),(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),ar[a>>2]=4504,ar[l>>2]=4544,ar[i>>2]=4524,ar[u>>2]=4340,(0|tr[e+11>>0])<0&&vu(0|ar[e>>2]),kf(u),bf(l),ur=c}function xt(A,e){e|=0;var r,i,f,n=0,t=0;if(ar[(A|=0)>>2]=0,ar[(f=A+4|0)>>2]=0,(r=(n=((ar[A+8>>2]=0)|ar[(i=e+4|0)>>2])-(0|ar[e>>2])|0)>>3)&&(536870911>>0&&zl(),t=0|hu(n),ar[f>>2]=t,ar[A>>2]=t,ar[A+8>>2]=t+(r<<3),(0|(n=0|ar[e>>2]))!=(0|(e=0|ar[i>>2]))))for(;ar[t>>2]=ar[n>>2],A=0|ar[n+4>>2],0|(ar[t+4>>2]=A)&&bu(A),n=n+8|0,t=8+(0|ar[f>>2])|0,ar[f>>2]=t,(0|n)!=(0|e););}function Pt(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;n=0|ar[(u=(A|=0)+4|0)>>2],c=i=0|ar[A>>2],357913941<(f=(a=(n-i|0)/12|0)+1|0)>>>0&&zl(),t=(l=((0|ar[(r=A+8|0)>>2])-i|0)/12|0)<<1,t=l>>>0<178956970?t>>>0>>0?f:t:357913941;do{if(t){if(!(357913941>>0)){o=0|hu(12*t|0);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else o=0}while(0);if(l=o+(12*t|0)|0,tr[(f=i=o+(12*a|0)|0)>>0]=0|tr[e>>0],ar[o+(12*a|0)+4>>2]=ar[e+4>>2],t=0|ar[e+8>>2],t=(ar[o+(12*a|0)+8>>2]=t)?(bu(t),n=0|ar[u>>2],0|ar[A>>2]):c,o=i+12|0,(0|n)==(0|t))i=t=n;else{for(;n=(c=n)+-12|0,tr[i+-12>>0]=0|tr[n>>0],a=c+-8|0,ar[i+-8>>2]=ar[a>>2],c=c+-4|0,ar[i+-4>>2]=ar[c>>2],ar[a>>2]=0,f=i=f+-12|(ar[c>>2]=0),(0|n)!=(0|t););t=0|ar[A>>2],i=0|ar[u>>2]}if(ar[A>>2]=f,ar[u>>2]=o,ar[r>>2]=l,(0|i)!=(0|(n=t)))for(;f=0|ar[i+-4>>2],i=i+-12|0,0|f&&du(f),(0|i)!=(0|n););t&&vu(n)}function Lt(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0;ur=(t=ur)+16|0,n=t,a=0|ar[(i|=0)>>2],i=0|ar[a+56>>2],a=0|ar[a+60>>2];A:do{if((0|i)!=(0|a)){for(;o=i+16|0,(0|ar[i>>2])!=(0|r);){if((0|o)==(0|a))break A;i=o}xt(n,e+44|0),a=0|ar[i+4>>2],c=0|ar[i+8>>2];e:do{if((0|a)==(0|c))o=A+4|0,i=n,u=15;else{for(l=n+4|0,o=A+4|0;;){if(i=65535&(b=0|or[a+2>>1]),e=r=0|ar[n>>2],b<<16>>16==0||i>>>0>(0|ar[l>>2])-r>>3>>>0){i=n,u=15;break e}if(r=0|ar[e+((i=i+-1|0)<<3)>>2],0|(i=0|ar[e+(i<<3)+4>>2])&&bu(i),(0|ar[r+20>>2])==(0|f))break;if(0|i&&du(i),(0|(a=a+4|0))==(0|c)){i=n,u=15;break e}}ar[A>>2]=r,ar[o>>2]=i,i=n}}while(0);if(15==(0|u)&&(ar[A>>2]=0,ar[o>>2]=0),0|(i=0|ar[i>>2])){if((0|(o=0|ar[(e=n+4|0)>>2]))!=(0|i)){for(;a=o+-8|0,ar[e>>2]=a,(0|(o=(o=0|ar[o+-4>>2])?(du(o),0|ar[e>>2]):a))!=(0|i););i=0|ar[n>>2]}vu(i)}return void(ur=t)}}while(0);ar[A>>2]=0,ar[A+4>>2]=0,ur=t}function Kt(A,e){A|=0;var r=0,i=0,f=0;if(r=(e|=0)+-1|0,131072<(e+65535|0)>>>0)for(e=2;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);else e=2;if(f=0|ar[A+76>>2],i=0|ar[A+72>>2],(0|f)==(0|e)){if(r=i+r|0,131072<(e+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);}else{if(r=(0|br(i,e))+(0|br(f,r))|0,131072<((e=0|br(f,e))+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);}if(i=0|ar[A+60>>2],f=(0|ar[A+56>>2])-i|0,131072<(i+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(131072<(f+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if(131072<((i<<=1)+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(131072<(f+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if((0|e)==(0|i)){if(r=r-f|0,131072<(e+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if((r+65536|0)>>>0<=131072)return 0|(A=(0|(f=r))/(0|(A=e))|0);for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);return 0|(A=(0|r)/(0|e)|0)}if(r=(0|br(i,r))-(0|br(f,e))|0,131072<((e=0|br(i,e))+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if((r+65536|0)>>>0<=131072)return 0|(A=(0|(f=r))/(0|(A=e))|0);for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);return 0|(A=(0|r)/(0|e)|0)}function qt(A,e){e|=0;var r=0,i=0;if(r=0|ar[(A|=0)+60>>2],i=(0|ar[A+56>>2])-r|0,131072<(r+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(131072<(i+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(i=(0|br(0|Kt(A,e),r))+i|0,131072<(r+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if((i+65536|0)>>>0<=131072)return A=i,0|(e=(0|(A=(i=(0|(e=r))/2|0)+A|0))/(0|e)|0);for(;r=(0|r)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);return 0|(e=(0|(e=(e=(0|r)/2|0)+i|0))/(0|r)|0)}function $t(A,e){A|=0;var r=0,i=0,f=0;if(r=(e|=0)+-1|0,131072<(e+65535|0)>>>0)for(e=2;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);else e=2;if(f=0|ar[A+84>>2],i=0|ar[A+80>>2],(0|f)==(0|e)){if(r=i+r|0,131072<(e+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);}else{if(r=(0|br(i,e))+(0|br(f,r))|0,131072<((e=0|br(f,e))+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);}if(i=0|ar[A+68>>2],f=(0|ar[A+64>>2])-i|0,131072<(i+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(131072<(f+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if(131072<((i<<=1)+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(131072<(f+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if((0|e)==(0|i)){if(r=r-f|0,131072<(e+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if((r+65536|0)>>>0<=131072)return 0|(A=(0|(f=(i=(0|(A=e))/2|0)+(f=r)|0))/(0|A)|0);for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);return 0|(A=(0|(A=(A=(0|e)/2|0)+r|0))/(0|e)|0)}if(r=(0|br(i,r))-(0|br(f,e))|0,131072<((e=0|br(i,e))+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if((r+65536|0)>>>0<=131072)return 0|(A=(0|(f=(i=(0|(A=e))/2|0)+(f=r)|0))/(0|A)|0);for(;e=(0|e)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);return 0|(A=(0|(A=(A=(0|e)/2|0)+r|0))/(0|e)|0)}function Ao(A,e){e|=0;var r=0,i=0;if(r=0|ar[(A|=0)+68>>2],i=(0|ar[A+64>>2])-r|0,131072<(r+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(131072<(i+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);if(i=(0|br(0|$t(A,e),r))+i|0,131072<(r+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if((i+65536|0)>>>0<=131072)return A=i,0|(e=(0|(A=(i=(0|(e=r))/2|0)+A|0))/(0|e)|0);for(;r=(0|r)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);return 0|(e=(0|(e=(e=(0|r)/2|0)+i|0))/(0|r)|0)}function eo(A){var e=0,r=0,i=0,f=0,n=0;if(n=0|ar[(A|=0)+60>>2],e=(0|ar[A+56>>2])-n|0,f=131072<(n+65536|0)>>>0)for(r=e,A=n;r=(0|r)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);else r=e,A=n;if(131072<(r+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(131072<((A<<=1)+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(i=0-r|0,1==(0|A))if(131072<(65536-r|0)>>>0)for(A=1;A=(0|A)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);else A=1;else{if(131072<(A+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if(131072<(i+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);}if(r=(((0|A)/2|0)+i|0)/(0|A)|0,f)for(A=n;e=(0|e)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);else A=n;if(131072<(e+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<((A<<=1)+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if((e+65536|0)>>>0<=131072)return n=(0|(f=(i=(0|(n=A))/2|0)+(f=e)|0))/(0|n)|0,0|(n=(f=1-r|0)+n|0);for(;A=(0|A)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);return 0|(n=(f=1-r|0)+(n=(0|(n=(n=(0|A)/2|0)+e|0))/(0|A)|0)|0)}function ro(A){var e=0,r=0,i=0,f=0,n=0;if(n=0|ar[(A|=0)+68>>2],e=(0|ar[A+64>>2])-n|0,f=131072<(n+65536|0)>>>0)for(r=e,A=n;r=(0|r)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);else r=e,A=n;if(131072<(r+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(131072<((A<<=1)+65536|0)>>>0)for(;r=(0|r)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if(131072<(r+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((r=(0|r)/2|0)+65536|0)>>>0;);if(i=0-r|0,1==(0|A))if(131072<(65536-r|0)>>>0)for(A=1;A=(0|A)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);else A=1;else{if(131072<(A+65536|0)>>>0)for(;i=(0|i)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if(131072<(i+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((i=(0|i)/2|0)+65536|0)>>>0;);}if(r=(((0|A)/2|0)+i|0)/(0|A)|0,f)for(A=n;e=(0|e)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);else A=n;if(131072<(e+65536|0)>>>0)for(;A=(0|A)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);if(131072<((A<<=1)+65536|0)>>>0)for(;e=(0|e)/2|0,131072<((A=(0|A)/2|0)+65536|0)>>>0;);if((e+65536|0)>>>0<=131072)return n=(0|(f=(i=(0|(n=A))/2|0)+(f=e)|0))/(0|n)|0,0|(n=(f=1-r|0)+n|0);for(;A=(0|A)/2|0,131072<((e=(0|e)/2|0)+65536|0)>>>0;);return 0|(n=(f=1-r|0)+(n=(0|(n=(n=(0|A)/2|0)+e|0))/(0|A)|0)|0)}function io(A,e,r){e|=0,r|=0;var i,f,n,t=0;if(ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,((ar[A+8>>2]=0)|(t=0|ar[e+56>>2]))!=(0|(f=0|ar[e+60>>2]))){i=A+8|0,e=t;do{do{if((0|ar[e+48>>2])==(0|r)){if((0|(t=0|ar[n>>2]))==(0|ar[i>>2])){de(A,e);break}se(t,e),ar[n>>2]=64+(0|ar[n>>2]);break}}while(0);e=e+64|0}while((0|e)!=(0|f))}}function fo(A,e,r,i){A|=0,r|=0,i|=0;var f=0;f=0|ar[(e|=0)+56>>2],e=0|ar[e+60>>2];A:do{if((0|f)!=(0|e)){for(;(0|ar[f+48>>2])!=(0|r)||(0|ar[f+20>>2])!=(0|i);)if((0|(f=f+64|0))==(0|e))break A;return void Ge(A,f+52|0)}}while(0);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0}function no(A,e){e|=0;var r,i,f,n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(ur=(u=ur)+32|0,o=u+20|0,t=u+16|0,n=u+12|0,a=u+8|0,c=u+4|0,l=u,(0|(b=0|ar[(A|=0)+92>>2]))==(0|(f=0|ar[A+96>>2])))return ur=u,1;r=e+4|0,i=e+8|0;A:for(;;){if((0|(A=0|ar[b+4>>2]))!=(0|(p=0|ar[b+8>>2])))do{if(w=((0|ar[(Z=A+4|0)>>2])-(0|ar[A>>2])|0)>>>24&255,s=0|ar[r>>2],(d=g=0|ar[i>>2])>>>0<=s>>>0){if(m=g=0|ar[e>>2],(0|(s=(v=s-g|0)+1|0))<0){A=9;break A}k=(h=d-g|0)<<1,h=(k=h>>>0<1073741823?k>>>0>>0?s:k:2147483647)?0|hu(k):0,tr[(d=h+v|0)>>0]=w,s=d+1|0,d=d+(0-v)|0,0<(0|v)&&hb(0|d,0|m,0|v),ar[e>>2]=d,ar[r>>2]=s,ar[i>>2]=h+k,g&&(vu(m),s=0|ar[r>>2])}else tr[s>>0]=w,s=1+(0|ar[r>>2])|0,ar[r>>2]=s;if(w=((0|ar[Z>>2])-(0|ar[A>>2])|0)>>>16&255,(d=g=0|ar[i>>2])>>>0<=s>>>0){if(m=g=0|ar[e>>2],(0|(s=(v=s-g|0)+1|0))<0){A=19;break A}k=(h=d-g|0)<<1,h=(k=h>>>0<1073741823?k>>>0>>0?s:k:2147483647)?0|hu(k):0,tr[(d=h+v|0)>>0]=w,s=d+1|0,d=d+(0-v)|0,0<(0|v)&&hb(0|d,0|m,0|v),ar[e>>2]=d,ar[r>>2]=s,ar[i>>2]=h+k,g&&(vu(m),s=0|ar[r>>2])}else tr[s>>0]=w,s=1+(0|ar[r>>2])|0,ar[r>>2]=s;if(w=((0|ar[Z>>2])-(0|ar[A>>2])|0)>>>8&255,(d=g=0|ar[i>>2])>>>0<=s>>>0){if(m=g=0|ar[e>>2],(0|(s=(v=s-g|0)+1|0))<0){A=29;break A}k=(h=d-g|0)<<1,h=(k=h>>>0<1073741823?k>>>0>>0?s:k:2147483647)?0|hu(k):0,tr[(d=h+v|0)>>0]=w,s=d+1|0,d=d+(0-v)|0,0<(0|v)&&hb(0|d,0|m,0|v),ar[e>>2]=d,ar[r>>2]=s,ar[i>>2]=h+k,g&&(vu(m),s=0|ar[r>>2])}else tr[s>>0]=w,s=1+(0|ar[r>>2])|0,ar[r>>2]=s;if(w=(0|ar[Z>>2])-(0|ar[A>>2])&255,(d=g=0|ar[i>>2])>>>0<=s>>>0){if(m=g=0|ar[e>>2],(0|(s=(v=s-g|0)+1|0))<0){A=39;break A}k=(h=d-g|0)<<1,h=(k=h>>>0<1073741823?k>>>0>>0?s:k:2147483647)?0|hu(k):0,tr[(d=h+v|0)>>0]=w,s=d+1|0,d=d+(0-v)|0,0<(0|v)&&hb(0|d,0|m,0|v),ar[e>>2]=d,ar[r>>2]=s,ar[i>>2]=h+k,g&&(vu(m),s=0|ar[r>>2])}else tr[s>>0]=w,s=1+(0|ar[r>>2])|0,ar[r>>2]=s;ar[a>>2]=s,ar[c>>2]=ar[A>>2],ar[l>>2]=ar[Z>>2],ar[n>>2]=ar[a>>2],ar[t>>2]=ar[c>>2],ar[o>>2]=ar[l>>2],to(e,n,t,o),A=A+12|0}while((0|A)!=(0|p));if((0|(b=b+16|0))==(0|f)){A=3;break}}return 3==(0|A)?(ur=u,1):(9!=(0|A)&&19!=(0|A)&&29!=(0|A)&&39!=(0|A)||zl(),0)}function to(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(e=(u=f=0|ar[(A|=0)>>2])+(b=(0|ar[e>>2])-u|0)|0,a=0|ar[r>>2],t=c=0|ar[i>>2],(0|(s=c-a|0))<=0)return 0|(d=e);if((0|s)<=((l=0|ar[(o=A+8|0)>>2])-(i=n=0|ar[(d=A+4|0)>>2])|0)){if((0|(l=i-e|0))<(0|s)){if((0|(c=i=a+l|0))==(0|t))i=n;else{for(a=n;tr[a>>0]=0|tr[i>>0],i=i+1|0,a=1+(0|ar[d>>2])|0,ar[d>>2]=a,(0|i)!=(0|t););i=a}if(!(0<(0|l)))return 0|(d=e);u=i}else u=n;if((i=e+(l=u-(e+s)|0)|0)>>>0>>0)for(a=u;tr[a>>0]=0|tr[i>>0],i=i+1|0,a=1+(0|ar[d>>2])|0,ar[d>>2]=a,(0|i)!=(0|n););if(0|l&&wb(u+(0-l)|0,0|e,0|l),(0|(i=0|ar[r>>2]))==(0|c))return 0|(d=e);for(a=e;tr[a>>0]=0|tr[i>>0],(0|(i=i+1|0))!=(0|c);)a=a+1|0;return 0|e}if((0|(i=i-u+s|0))<0&&zl(),c=(u=l-u|0)<<1,c=u>>>0<1073741823?c>>>0>>0?i:c:2147483647,u=e,i=s=(l=c?0|hu(c):0)+b|0,b=l+c|0,(0|a)==(0|t))c=f;else{for(c=s;tr[c>>0]=0|tr[a>>0],i=c=i+1|0,(0|(a=a+1|0))!=(0|t););c=0|ar[A>>2]}return l=s+(0-(a=u-c|0))|0,0<(0|a)&&hb(0|l,0|c,0|a),e=0<(0|(a=(0|ar[d>>2])-u|0))?(hb(0|i,0|e,0|a),i=i+a|0,0|ar[A>>2]):c,ar[A>>2]=l,ar[d>>2]=i,ar[o>>2]=b,e&&vu(e),0|(d=s)}function oo(A,e,r,i){e|=0,r|=0,i|=0,ar[(A|=0)>>2]=e,ar[A+4>>2]=r,yu(A+8|0,i)}function ao(A,e,r){A|=0,r|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(n=ur)+176|0,o=n+160|0,i=n+16|0,f=n,t=0|ar[(e|=0)>>2],!r)return ar[A>>2]=t,ar[A+4>>2]=ar[e+4>>2],e=0|ar[(e=6168)>>2],ar[(A=A+8|0)>>2]=e,void(ur=n);if(t){switch(u=64+i|0,ar[(s=8+i|0)>>2]=4524,b=12+i|0,ar[i>>2]=188,ar[u>>2]=208,Jf(64+i|(ar[4+i>>2]=0),b),ar[136+i>>2]=0,ar[140+i>>2]=-1,ar[i>>2]=4504,ar[u>>2]=4544,ar[s>>2]=4524,Sf(b),ar[b>>2]=4340,ar[(s=44+i|0)>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s+12>>2]=0,ar[60+i>>2]=24,ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,Xe(b,o),(0|tr[o+11>>0])<0&&vu(0|ar[o>>2]),l=8+i|0,0|ar[e>>2]){case 0:a=32215;break;case 1:a=24245;break;case 2:a=24231;break;case 3:a=24209;break;case 4:a=24189;break;case 5:a=24177;break;case 6:a=24153;break;case 7:a=24119;break;case 8:a=24085;break;case 9:a=24040;break;case 10:a=24011;break;default:sr(55739,23985,74,23994)}c=0|We(0|We(l,a,0|Vc(a)),25392,2),We(c,a=0|function(A){var e=0;switch(0|(A|=0)){case 0:e=25380;break;case 100:e=25357;break;case 101:e=25340;break;case 118:e=25322;break;case 119:e=25302;break;case 102:e=25288;break;case 103:e=25274;break;case 104:e=25260;break;case 105:e=25246;break;case 106:e=25232;break;case 131:e=25218;break;case 107:e=25204;break;case 108:e=25190;break;case 109:e=25176;break;case 110:e=25162;break;case 111:e=25148;break;case 112:e=25134;break;case 113:e=25120;break;case 125:e=25106;break;case 114:e=25085;break;case 115:e=25039;break;case 116:e=25008;break;case 117:e=24991;break;case 120:e=24954;break;case 121:e=24933;break;case 122:e=24896;break;case 123:e=24860;break;case 124:e=24833;break;case 126:e=24806;break;case 127:e=24775;break;case 128:e=24749;break;case 129:e=24730;break;case 130:e=24713;break;case 1e3:e=24689;break;case 2e3:e=24657;break;case 2001:e=24634;break;case 2002:e=24596;break;case 2003:e=24546;break;case 2004:e=24496;break;case 2005:e=24474;break;case 2006:e=24450;break;case 3e3:e=24432;break;case 3001:e=24409;break;case 3002:e=24384;break;case 3003:e=24355;break;case 3004:e=24318;break;case 4e3:e=24296;break;case 5e3:e=24271;break;default:sr(55739,23985,198,23994)}return 0|e}(0|ar[(o=e+4|0)>>2]),0|Vc(a)),(t=0|tr[(c=(a=e+8|0)+11|0)>>0])<<24>>24<0?t=0|ar[e+12>>2]:t&=255,0|t&&(d=0|We(l,25392,2),We(d,(t=(c=0|tr[c>>0])<<24>>24<0)?0|ar[a>>2]:a,t?0|ar[e+12>>2]:255&c)),Ie(f,b),Eu(r,f),t=(0|tr[r+11>>0])<0?0|ar[r>>2]:r,ar[(a=r+12|0)>>2]=t,(0|tr[f+11>>0])<0&&vu(0|ar[f>>2]),ar[i>>2]=4504,ar[u>>2]=4544,ar[l>>2]=4524,ar[b>>2]=4340,(0|tr[s+11>>0])<0&&vu(0|ar[s>>2]),kf(b),bf(u),t=0|ar[e>>2]}else ar[(a=r+12|0)>>2]=32215,o=e+4|0,t=0;ar[A>>2]=t,ar[A+4>>2]=ar[o>>2],e=0|ar[(e=a)>>2],ar[(d=A+8|0)>>2]=e,ur=n}function co(A){var e,r,i;for(ar[(A|=0)+112>>2]=0,r=A+112|(ar[A+116>>2]=0),e=i=A+108|0;(0|(A=A+4|(ar[A>>2]=0)))<(0|e););ar[i>>2]=r}function lo(A){var e,r=0,i=0,f=0,n=0;if(uo((A|=0)+108|0,0|ar[A+112>>2]),0|(r=0|ar[A+104>>2])&&du(r),0|(r=0|ar[A+96>>2])&&du(r),0|(r=0|ar[A+88>>2])&&du(r),0|(r=0|ar[A+80>>2])&&du(r),0|(r=0|ar[A+72>>2])&&du(r),0|(r=0|ar[A+64>>2])&&du(r),0|(r=0|ar[A+56>>2])&&du(r),0|(r=0|ar[A+48>>2])&&du(r),0|(r=0|ar[A+40>>2])&&du(r),0|(r=0|ar[A+32>>2])&&du(r),0|(r=0|ar[A+24>>2])&&du(r),0|(r=0|ar[(e=A+8|0)>>2])){if((0|(i=0|ar[(n=A+12|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}(r=0|ar[A+4>>2])&&du(r)}function uo(A,e){A|=0,(e|=0)&&(uo(A,0|ar[e>>2]),uo(A,0|ar[e+4>>2]),0|(A=0|ar[e+24>>2])&&du(A),vu(e))}function bo(A,e,r){A|=0,e|=0;var i,f,n,t,o,a=0;ur=(o=ur)+48|0,n=(t=o)+32|0,f=0|ar[(r|=0)>>2],0|(a=0|ar[r+4>>2])&&bu(a),ar[e>>2]=f,r=0|ar[(i=e+4|0)>>2],ar[i>>2]=a,r?(du(r),r=0|ar[e>>2],a=0|ar[i>>2]):r=f,ar[n>>2]=r,0|(ar[(r=4+n|0)>>2]=a)&&bu(a),WA(t,n,-1,2147483647,0),0|(r=0|ar[r>>2])&&du(r),function(A,e,r){A|=0;var i,f,n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0;ur=(s=ur)+288|0,t=s+264|0,C=s+108|0,o=s+96|0,c=s+84|0,l=s+72|0,u=s+60|0,R=s+48|0,N=s+36|0,_=s+24|0,Q=s+12|0,i=4+(b=(D=s)+276|0)|0,w=24+(r|=0)|0,v=r+16|0,m=12+(e|=0)|0,g=e+16|0,Z=e+8|0,p=e+36|0,y=e+40|0,B=e+20|0,E=e+24|0,n=11+(f=8+(a=s+120|0)|0)|0;for(;;){if(ar[b>>2]=0,ar[i>>2]=0,Ae(a,r,b),(0|ar[a>>2])!=(0|ar[14148])){Y=40;break}if(0|tr[w>>0]){Y=35;break}if(0==(0|ar[(Y=v)>>2])&0==(0|ar[Y+4>>2])){Y=30;break}(0|(d=0|ar[m>>2]))==(0|ar[g>>2])?Ut(Z,b):(ar[d>>2]=ar[b>>2],k=0|ar[i>>2],(ar[d+4>>2]=k)&&(bu(k),d=0|ar[m>>2]),ar[m>>2]=d+8),k=0|ar[b>>2],1835365473==(0|(d=0|ar[k+20>>2]))&&(0!=(0|k)&&0!=(0|(X=0|qu(k,128,160,0)))?(d=X,h=0|ar[i>>2],(k=h)&&bu(h)):k=d=0,ar[p>>2]=d,d=0|ar[y>>2],ar[y>>2]=k,0|d&&du(d),k=0|ar[b>>2],d=0|ar[k+20>>2]),1718909296==(0|d)&&(0!=(0|k)&&0!=(0|(W=0|qu(k,128,144,0)))?(d=W,h=0|ar[i>>2],(k=h)&&bu(h)):k=d=0,ar[B>>2]=d,d=0|ar[E>>2],ar[E>>2]=k,0|d&&du(d)),(0|tr[n>>0])<0&&vu(0|ar[f>>2]),0|(d=0|ar[i>>2])&&du(d)}30!=(0|Y)&&35!=(0|Y)&&40!=(0|Y)||((0|tr[n>>0])<0&&vu(0|ar[f>>2]),0|(d=0|ar[i>>2])&&du(d));if(!(k=0|ar[(d=e+20|0)>>2]))return ar[t>>2]=0,ar[4+t>>2]=0,ar[8+t>>2]=0,oo(A,2,102,t),0<=(0|tr[11+t>>0])||vu(0|ar[t>>2]),ur=s;if(!(0|St(k,1751476579)||0|St(0|ar[d>>2],1751476600)||0|St(0|ar[d>>2],1835623985))&&!(0|St(0|ar[d>>2],1635150182)))return k=64+a|0,ar[(w=8+a|0)>>2]=4524,h=12+a|0,ar[a>>2]=188,ar[k>>2]=208,ar[4+a>>2]=0,Jf(64+a|0,h),ar[136+a>>2]=0,ar[140+a>>2]=-1,ar[a>>2]=4504,ar[k>>2]=4544,ar[w>>2]=4524,Sf(h),ar[h>>2]=4340,ar[(w=44+a|0)>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,ar[w+12>>2]=0,ar[60+a>>2]=24,ar[b>>2]=0,ar[4+b>>2]=0,ar[8+b>>2]=0,Xe(h,b),(0|tr[11+b>>0])<0&&vu(0|ar[b>>2]),We(d=8+a|0,25395,44),Ie(C,h),oo(A,3,0,C),(0|tr[C+11>>0])<0&&vu(0|ar[C>>2]),ar[a>>2]=4504,ar[k>>2]=4544,ar[d>>2]=4524,ar[h>>2]=4340,(0|tr[w+11>>0])<0&&vu(0|ar[w>>2]),kf(h),bf(k),ur=s;if(!(d=0|ar[(v=e+36|0)>>2]))return ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,oo(A,2,104,o),0<=(0|tr[11+o>>0])||vu(0|ar[o>>2]),ur=s;Tt(b,d,1751411826),k=0!=(0|(d=0|ar[b>>2]))&&0!=(0|(I=0|qu(d,128,1128,0)))?(d=I,k=0|ar[4+b>>2],(h=k)&&bu(k),h):d=0;ar[(h=e+28|0)>>2]=d,d=0|ar[(C=e+32|0)>>2],ar[C>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(0|(C=0|ar[h>>2])&&1885954932!=(0|ar[C+60>>2]))return ar[c>>2]=0,ar[4+c>>2]=0,ar[8+c>>2]=0,oo(A,2,114,c),0<=(0|tr[11+c>>0])||vu(0|ar[c>>2]),ur=s;Tt(b,0|ar[v>>2],1885959277),k=0!=(0|(d=0|ar[b>>2]))&&0!=(0|(G=0|qu(d,128,1096,0)))?(d=G,k=0|ar[4+b>>2],(h=k)&&bu(k),h):d=0;ar[(h=e+84|0)>>2]=d,d=0|ar[(G=e+88|0)>>2],ar[G>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(0|ar[h>>2]))return ar[l>>2]=0,ar[4+l>>2]=0,ar[8+l>>2]=0,oo(A,2,107,l),0<=(0|tr[11+l>>0])||vu(0|ar[l>>2]),ur=s;Tt(b,0|ar[v>>2],1768977008),k=0!=(0|(d=0|ar[b>>2]))&&0!=(0|(V=0|qu(d,128,968,0)))?(d=V,k=0|ar[4+b>>2],(h=k)&&bu(k),h):d=0;ar[(w=e+100|0)>>2]=d,d=0|ar[(V=e+104|0)>>2],ar[V>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(d=0|ar[w>>2]))return ar[u>>2]=0,ar[4+u>>2]=0,ar[8+u>>2]=0,oo(A,2,112,u),0<=(0|tr[11+u>>0])||vu(0|ar[u>>2]),ur=s;Tt(b,d,1768973167),k=0!=(0|(d=0|ar[b>>2]))&&0!=(0|(F=0|qu(d,128,936,0)))?(d=F,k=0|ar[4+b>>2],(h=k)&&bu(k),h):d=0;ar[(h=e+44|0)>>2]=d,d=0|ar[(F=e+48|0)>>2],ar[F>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(0|ar[h>>2]))return ar[R>>2]=0,ar[R+4>>2]=0,ar[R+8>>2]=0,oo(A,2,108,R),0<=(0|tr[R+11>>0])||vu(0|ar[R>>2]),ur=s;Tt(b,0|ar[w>>2],1768975713),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,904,0))){k=d=0;break}if(k=0|ar[4+b>>2],!(h=k)){k=h;break}bu(k),k=h}else k=d=0}while(0);ar[(h=e+52|0)>>2]=d,d=0|ar[(R=e+56|0)>>2],ar[R>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(0|ar[h>>2]))return ar[N>>2]=0,ar[N+4>>2]=0,ar[N+8>>2]=0,oo(A,2,109,N),0<=(0|tr[N+11>>0])||vu(0|ar[N>>2]),ur=s;Tt(b,0|ar[v>>2],1768714083),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,1064,0))){k=d=0;break}if(k=0|ar[4+b>>2],!(h=k)){k=h;break}bu(k),k=h}else k=d=0}while(0);ar[(h=e+60|0)>>2]=d,d=0|ar[(N=e+64|0)>>2],ar[N>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(0|ar[h>>2]))return ar[_>>2]=0,ar[_+4>>2]=0,ar[_+8>>2]=0,oo(A,2,110,_),0<=(0|tr[_+11>>0])||vu(0|ar[_>>2]),ur=s;Tt(b,0|ar[v>>2],1768186228),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,616,0))){k=d=0;break}if(h=0|ar[4+b>>2],!(k=h))break;bu(h)}else k=d=0}while(0);ar[e+68>>2]=d,d=0|ar[(_=e+72|0)>>2],ar[_>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);Tt(b,0|ar[v>>2],1769104742),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,712,0))){k=d=0;break}if(h=0|ar[4+b>>2],!(k=h))break;bu(h)}else k=d=0}while(0);ar[e+76>>2]=d,d=0|ar[(_=e+80|0)>>2],ar[_>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);Tt(b,0|ar[v>>2],1768517222),d=0|ar[b>>2];do{if(d){if(!(d=0|qu(d,128,1032,0))){k=d=0;break}if(k=0|ar[4+b>>2],!(h=k)){k=h;break}bu(k),k=h}else k=d=0}while(0);ar[(h=e+92|0)>>2]=d,d=0|ar[(_=e+96|0)>>2],ar[_>>2]=k,0|d&&du(d);0|(d=0|ar[4+b>>2])&&du(d);if(!(d=0|ar[h>>2]))return ar[Q>>2]=0,ar[Q+4>>2]=0,ar[Q+8>>2]=0,oo(A,2,111,Q),0<=(0|tr[Q+11>>0])||vu(0|ar[Q>>2]),ur=s;(function(A,e,r){e|=0,r|=0;var i,f,n,t=0,o=0;if(ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,((ar[A+8>>2]=0)|(t=0|ar[e+44>>2]))!=(0|(f=0|ar[e+48>>2]))){i=A+8|0;do{o=e=0|ar[t>>2];do{if((0|ar[e+20>>2])==(0|r)){if((0|(e=0|ar[n>>2]))==(0|ar[i>>2])){Ut(A,t);break}ar[e>>2]=o,o=0|ar[t+4>>2],(ar[e+4>>2]=o)&&(bu(o),e=0|ar[n>>2]),ar[n>>2]=e+8}}while(0);t=t+8|0}while((0|t)!=(0|f))}})(b,d,1768842853),d=0|ar[b>>2],p=0|ar[(W=4+b|0)>>2];A:do{if((0|d)==(0|p))Y=186;else for(y=D+11|0,B=e+108|0,X=E=e+112|0,Z=e+116|0;;){k=0|ar[d>>2];do{if(k){if(!(h=0|qu(k,128,1e3,0))){k=0,Y=164;break}if(g=h,(k=0|ar[d+4>>2])?bu(k):k=0,!h){Y=164;break}m=0|ar[h+56>>2],0|(r=k)&&bu(k),h=0|ar[E>>2];do{if(h){for(v=X;;)if(w=0|ar[h+16>>2],m>>>0>>0){if(!(w=0|ar[h>>2])){Y=172;break}v=h,h=w}else{if(m>>>0<=w>>>0){Y=176;break}if(!(w=0|ar[(v=h+4|0)>>2])){Y=175;break}h=w}if(172==(0|Y)){Y=0,v=w=h;break}if(175==(0|Y)){Y=0,w=h;break}if(176==(0|Y)){Y=0,w=h;break}}else v=w=E}while(0);if(0|ar[v>>2]){if(!k){h=0;break}du(k),h=0;break}h=0|hu(28),ar[h+16>>2]=m,ar[h+20>>2]=g,ar[h+24>>2]=r,ar[h>>2]=0,ar[h+4>>2]=0,ar[h+8>>2]=w,ar[v>>2]=h,(w=0|ar[ar[B>>2]>>2])&&(ar[B>>2]=w,h=0|ar[v>>2]),so(0|ar[X>>2],h),ar[Z>>2]=1+(0|ar[Z>>2]),h=0}else k=0,Y=164}while(0);do{if(164==(0|Y)){if(Y=0,ar[D>>2]=0,ar[D+4>>2]=0,ar[D+8>>2]=0,oo(A,2,125,D),0<=(0|tr[y>>0])){h=1;break}vu(0|ar[D>>2]),h=1}}while(0);if(0|k&&du(k),d=d+8|0,0|h)break A;if((0|d)==(0|p)){Y=186;break}}}while(0);186==(0|Y)&&(e=0|ar[(Q=56592)+4>>2],ar[(D=A)>>2]=ar[Q>>2],ar[D+4>>2]=e,yu(A+8|0,56600));if(0|(d=0|ar[b>>2])){if((0|(k=0|ar[W>>2]))!=(0|d)){for(;h=k+-8|0,ar[W>>2]=h,(0|(k=(k=0|ar[k+-4>>2])?(du(k),0|ar[W>>2]):h))!=(0|d););d=0|ar[b>>2]}vu(d)}ur=s}(A,e,t),ur=((r=0|ar[t+4>>2])&&du(r),o)}function so(A,e){var r=0,i=0,f=0,n=0,t=0;if(t=(0|(e|=0))==(0|(A|=0)),tr[e+12>>0]=1&t,!t){for(;;){if(t=0|ar[e+8>>2],0|tr[(f=t+12|0)>>0]){r=23;break}if(i=0|ar[(n=t+8|0)>>2],(0|(r=0|ar[i>>2]))==(0|t)){if(!(r=0|ar[i+4>>2])){r=7;break}if(0|tr[(r=r+12|0)>>0]){r=7;break}e=r}else{if(!r){r=16;break}if(0|tr[(r=r+12|0)>>0]){r=16;break}e=r}if(tr[f>>0]=1,t=(0|i)==(0|A),tr[i+12>>0]=1&t,tr[e>>0]=1,t){r=23;break}e=i}if(7==(0|r))return f=(0|ar[t>>2])==(0|e)?(e=t,i):(r=0|ar[(A=t+4|0)>>2],e=0|ar[r>>2],e=(ar[A>>2]=e)?(ar[e+8>>2]=t,0|ar[n>>2]):i,ar[r+8>>2]=e,e=0|ar[n>>2],ar[((0|ar[e>>2])==(0|t)?e:e+4|0)>>2]=r,ar[r>>2]=t,ar[n>>2]=r,0|ar[(e=r)+8>>2]),tr[e+12>>0]=1,e=(tr[f+12>>0]=0)|ar[f>>2],i=0|ar[(r=e+4|0)>>2],0|(ar[f>>2]=i)&&(ar[i+8>>2]=f),t=f+8|0,ar[e+8>>2]=ar[t>>2],n=0|ar[t>>2],ar[((0|ar[n>>2])==(0|f)?n:n+4|0)>>2]=e,ar[r>>2]=f,void(ar[t>>2]=e);if(16==(0|r))return(0|ar[t>>2])==(0|e)?(f=0|ar[t>>2],e=0|ar[(r=f+4|0)>>2],(ar[t>>2]=e)&&(ar[e+8>>2]=t,i=0|ar[n>>2]),ar[f+8>>2]=i,e=0|ar[n>>2],ar[((0|ar[e>>2])==(0|t)?e:e+4|0)>>2]=f,ar[r>>2]=t,ar[n>>2]=f,i=0|ar[(e=f)+8>>2]):e=t,tr[e+12>>0]=1,e=(tr[i+12>>0]=0)|ar[(t=i+4|0)>>2],r=0|ar[e>>2],0|(ar[t>>2]=r)&&(ar[r+8>>2]=i),t=i+8|0,ar[e+8>>2]=ar[t>>2],n=0|ar[t>>2],ar[((0|ar[n>>2])==(0|i)?n:n+4|0)>>2]=e,ar[e>>2]=i,void(ar[t>>2]=e)}}function ko(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a;ur=(n=ur)+16|0,o=n,t=0|hu(48),ar[4+t>>2]=0,ar[8+t>>2]=0,ar[t>>2]=6180,function(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n=0;if(ar[(A|=0)>>2]=4232,ar[(n=A+8|0)>>2]=r,ar[n+4>>2]=i,ar[(n=A+16|0)>>2]=0,ar[n+4>>2]=0,ar[(n=A+24|0)>>2]=0,!f)return i=e,ar[(f=A+4|0)>>2]=i;i=0|wu(f=i>>>0<0|0==(0|i)&r>>>0<4294967295?r:-1),hb(0|(ar[n>>2]=i),0|e,0|r),ar[(f=A+4|0)>>2]=i}(a=16+t|0,r,i,0,f),ar[o>>2]=a,bu(ar[o+4>>2]=t),bo(A,e,o),du(t),du(t),ur=n}function ho(A,e,r){A|=0,r|=0;var i,f=0,n=0,t=0;if(f=0|ar[(i=(e|=0)+112|0)>>2]){e=i,n=f;A:for(;;){for(f=n;!((0|ar[f+16>>2])>>>0>=r>>>0);)if(!(f=0|ar[f+4>>2]))break A;if(!(n=0|ar[f>>2])){e=f;break}e=f}(0|e)!=(0|i)&&(0|ar[e+16>>2])>>>0<=r>>>0?(f=0|ar[e+20>>2],(e=0|ar[e+24>>2])?bu(e):e=0,f?yu(A,f+64|0):t=11):(e=0,t=11)}else e=0,t=11;11==(0|t)&&(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0),e&&du(e)}function wo(A,e,r){A|=0,r|=0;var i,f=0,n=0,t=0;if(f=0|ar[(i=(e|=0)+112|0)>>2]){e=i,n=f;A:for(;;){for(f=n;!((0|ar[f+16>>2])>>>0>=r>>>0);)if(!(f=0|ar[f+4>>2]))break A;if(!(n=0|ar[f>>2])){e=f;break}e=f}(0|e)!=(0|i)&&(0|ar[e+16>>2])>>>0<=r>>>0?(f=0|ar[e+20>>2],(e=0|ar[e+24>>2])?bu(e):e=0,f?yu(A,f+88|0):t=11):(e=0,t=11)}else e=0,t=11;11==(0|t)&&(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0),e&&du(e)}function vo(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o;return ur=(o=ur)+32|0,f=o+12|0,n=o,(t=0|ar[(e|=0)+44>>2])?0|ar[(e=e+52|0)>>2]?(Ht(A,t,r,e,i),void(ur=o)):(ar[n>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,oo(A,2,109,n),void(ur=(0<=(0|tr[n+11>>0])||vu(0|ar[n>>2]),o))):(ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,oo(A,2,108,f),0<=(0|tr[11+f>>0])||vu(0|ar[f>>2]),void(ur=o))}function mo(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0;if(ur=(d=ur)+352|0,l=d+192|0,C=d+328|0,V=d+304|0,b=d+340|0,s=d+316|0,u=d+292|0,T=d+48|0,R=d+280|0,F=d+268|0,M=d+24|0,n=d+256|0,t=(c=d)+248|0,o=d+232|0,a=d+224|0,f=d+216|0,0|(W=0|ar[(G=(e|=0)+112|0)>>2])){E=G,I=W;A:for(;;){for(X=I;!((0|ar[X+16>>2])>>>0>=r>>>0);)if(!(X=0|ar[X+4>>2]))break A;if(!(I=0|ar[X>>2])){E=X;break}E=X}if((0|E)!=(0|G)&&(0|ar[E+16>>2])>>>0<=r>>>0){E=G;A:for(;;){for(X=W;!((0|ar[X+16>>2])>>>0>=r>>>0);)if(!(X=0|ar[X+4>>2]))break A;if(!(W=0|ar[X>>2])){E=X;break}E=X}if((0|E)!=(0|G)&&(0|ar[E+16>>2])>>>0<=r>>>0)if(W=0|ar[E+20>>2],(E=0|ar[E+24>>2])?bu(E):E=0,X=W){if(yu(b,X+64|0),yu(s,X+88|0),function(A,e){e|=0;var r,i,f,n=0;if(ar[(A|=0)>>2]=0,ar[(f=A+4|0)>>2]=0,ar[A+8>>2]=0,n=(0|ar[(i=e+4|0)>>2])-(0|ar[e>>2])|0,!(r=n>>5))return;134217727>>0&&zl();if(n=0|hu(n),ar[f>>2]=n,ar[A>>2]=n,ar[A+8>>2]=n+(r<<5),A=0|ar[e>>2],e=0|ar[i>>2],(0|A)==(0|e))return;for(;ar[n>>2]=ar[A>>2],ar[n+4>>2]=ar[A+4>>2],ar[n+8>>2]=ar[A+8>>2],ar[n+12>>2]=ar[A+12>>2],Dt(n+16|0,A+16|0),A=A+32|0,n=32+(0|ar[f>>2])|0,ar[f>>2]=n,(0|A)!=(0|e););}(u,56+(0|ar[(Q=e+60|0)>>2])|0),(0|(X=0|ar[u>>2]))!=(0|(W=0|ar[(U=4+u|0)>>2]))){for(J=0;J=(V=(0|ar[X>>2])==(0|r))?X:J,!(V|(0|(X=X+32|0))==(0|W)););if(J){ar[F>>2]=0,ar[F+4>>2]=0,ar[F+8>>2]=0,oo(l,4,3e3,F),(0|tr[F+11>>0])<0&&vu(0|ar[F>>2]),W=0|tr[(I=11+b|0)>>0],X=0|ar[(C=4+b|0)>>2];do{if(4==(0|(W<<24>>24<0?X:255&W))){if(0|Yu(b,0,-1,30298,4)){W=0|tr[I>>0],X=0|ar[C>>2],S=72;break}ar[T>>2]=0,ar[(G=T+4|0)>>2]=0,Ht(M,(ar[T+8>>2]=0)|ar[e+44>>2],r,e+52|0,T);do{if(0|ar[M>>2])C=0|ar[(e=M)+4>>2],ar[(i=A)>>2]=ar[e>>2],ar[i+4>>2]=C,C=M+8|0,ar[(i=A+8|0)>>2]=ar[C>>2],ar[i+4>>2]=ar[C+4>>2],ar[i+8>>2]=ar[C+8>>2],ar[C>>2]=0,ar[C+4>>2]=0,ar[C+8>>2]=0,C=1;else{for((0|(X=0|ar[T>>2]))==(0|(C=0|ar[G>>2]))?sr(55739,25520,565,25571):(Y=X,_=0);;){if(X=0|ar[Y+4>>2],1752589123==(0|ar[X+20>>2])){do{if(X){if(!(X=0|qu(X,128,680,0))){D=N=0;break}if(!(I=W=0|ar[Y+8>>2])){N=X,D=I;break}bu(W),N=X,D=I}else D=N=0}while(0);if(0|_&&du(_),N)break;X=D}else X=_;if((0|(Y=Y+12|0))==(0|C)){S=48;break}_=X}48==(0|S)&&sr(55739,25520,565,25571);do{if(0|no(N,i))X=0|ar[Q>>2],ar[t>>2]=ar[e>>2],C=4+t|0,W=0|ar[e+4>>2],0|(ar[C>>2]=W)&&bu(W),Ot(c,X,J,t,e+68|0,i),X=0|ar[(W=c)+4>>2],ar[(I=l)>>2]=ar[W>>2],ar[I+4>>2]=X,X=c+8|0,(0|tr[(W=(I=8+l|0)+11|0)>>0])<0?(tr[ar[I>>2]>>0]=0,ar[12+l>>2]=0):(tr[I>>0]=0,tr[W>>0]=0),Cu(I,0),ar[I>>2]=ar[X>>2],ar[I+4>>2]=ar[X+4>>2],ar[I+8>>2]=ar[X+8>>2],ar[X>>2]=0,ar[X+4>>2]=0,(ar[X+8>>2]=0)|(X=0|ar[C>>2])&&du(X),X=0;else{if(ar[n>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,oo(A,2,117,n),0<=(0|tr[11+n>>0])){X=1;break}vu(0|ar[n>>2]),X=1}}while(0);if(!D){C=X;break}du(D),C=X}}while(0);if((0|tr[(X=M+8|0)+11>>0])<0&&vu(0|ar[X>>2]),0|(X=0|ar[T>>2])){if((0|(W=0|ar[G>>2]))!=(0|X)){for(;I=W+-12|0,ar[G>>2]=I,(0|(W=(W=0|ar[W+-4>>2])?(du(W),0|ar[G>>2]):I))!=(0|X););X=0|ar[T>>2]}vu(X)}C||(S=118)}else S=72}while(0);do{if(72==(0|S)){if(4==(0|(W<<24>>24<0?X:255&W))&&0==(0|Yu(b,0,-1,30318,4))){ar[T>>2]=0,ar[(R=T+4|0)>>2]=0,Ht(M,(ar[T+8>>2]=0)|ar[e+44>>2],r,e+52|0,T);do{if(0|ar[M>>2])C=0|ar[(e=M)+4>>2],ar[(i=A)>>2]=ar[e>>2],ar[i+4>>2]=C,C=M+8|0,ar[(i=A+8|0)>>2]=ar[C>>2],ar[i+4>>2]=ar[C+4>>2],ar[i+8>>2]=ar[C+8>>2],ar[C>>2]=0,ar[C+4>>2]=0,ar[C+8>>2]=0,C=1;else{X=0|ar[T>>2],V=0|ar[R>>2];A:do{if((0|X)==(0|V))X=0,S=86;else{for(G=X,X=0;;){if(W=0|ar[G+4>>2],1635135811==(0|ar[W+20>>2])){do{if(W){if(!(W=0|qu(W,128,648,0))){F=W=0;break}if(!(C=I=0|ar[G+8>>2])){F=C;break}bu(I),F=C}else F=W=0}while(0);if(0|X&&du(X),W)break;X=F}if((0|(G=G+12|0))==(0|V)){S=86;break A}}(0|(W=(X=W)+68|0))!=(0|i)&&(k=i,h=0|ar[W>>2],w=0|ar[X+72>>2],B=y=p=Z=g=m=v=void 0,m=(B=w|=B=y=p=Z=g=0)-(v=h|=0)|0,((g=0|ar[(p=8+(k|=0)|0)>>2])-(y=Z=0|ar[k>>2])|0)>>>0>>0?(Z&&((0|ar[(g=k+4|0)>>2])!=(0|y)&&(ar[g>>2]=y),vu(y),ar[p>>2]=0,ar[g>>2]=0,g=ar[k>>2]=0),(0|m)<0&&zl(),B=g<<1,(0|(g=g>>>0<1073741823?B>>>0>>0?m:B:2147483647))<0&&zl(),y=0|hu(g),ar[(B=k+4|0)>>2]=y,ar[k>>2]=y,ar[p>>2]=y+g,hb(0|y,0|h,0|m),ar[B>>2]=y+m):(0|(g=(Z=w=(k=(Z=(0|ar[(p=k+4|0)>>2])-Z|0)>>>0>>0)?h+Z|0:w)-v|0)&&wb(0|y,0|h,0|g),g=y+g|0,k?(0|(g=B-Z|0))<=0||(hb(0|ar[p>>2],0|w,0|g),ar[p>>2]=(0|ar[p>>2])+g):(0|ar[p>>2])!=(0|g)&&(ar[p>>2]=g))),X=0|ar[Q>>2],ar[a>>2]=ar[e>>2],C=4+a|0,W=0|ar[e+4>>2],0|(ar[C>>2]=W)&&bu(W),Ot(c,X,J,a,e+68|0,i),X=0|ar[(W=c)+4>>2],ar[(I=l)>>2]=ar[W>>2],ar[I+4>>2]=X,X=c+8|0,(0|tr[(W=(I=8+l|0)+11|0)>>0])<0?(tr[ar[I>>2]>>0]=0,ar[12+l>>2]=0):(tr[I>>0]=0,tr[W>>0]=0),Cu(I,0),ar[I>>2]=ar[X>>2],ar[I+4>>2]=ar[X+4>>2],ar[I+8>>2]=ar[X+8>>2],ar[X>>2]=0,ar[X+4>>2]=0,(ar[X+8>>2]=0)|(X=0|ar[C>>2])&&du(X),W=0,X=F}}while(0);do{if(86==(0|S)){if(ar[o>>2]=0,ar[4+o>>2]=0,ar[8+o>>2]=0,oo(A,2,131,o),0<=(0|tr[11+o>>0])){W=1;break}vu(0|ar[o>>2]),W=1}}while(0);if(!X){C=W;break}du(X),C=W}}while(0);if((0|tr[(X=M+8|0)+11>>0])<0&&vu(0|ar[X>>2]),0|(X=0|ar[T>>2])){if((0|(W=0|ar[R>>2]))!=(0|X)){for(;I=W+-12|0,ar[R>>2]=I,(0|(W=(W=0|ar[W+-4>>2])?(du(W),0|ar[R>>2]):I))!=(0|X););X=0|ar[T>>2]}vu(X)}if(C)break;S=118;break}X=0|ar[Q>>2],ar[f>>2]=ar[e>>2],C=4+f|0,W=0|ar[e+4>>2],0|(ar[C>>2]=W)&&bu(W),Ot(T,X,J,f,e+68|0,i),X=0|ar[(W=T)+4>>2],ar[(I=l)>>2]=ar[W>>2],ar[I+4>>2]=X,X=T+8|0,(0|tr[(W=(I=8+l|0)+11|0)>>0])<0?(tr[ar[I>>2]>>0]=0,ar[12+l>>2]=0):(tr[I>>0]=0,tr[W>>0]=0),Cu(I,0),ar[I>>2]=ar[X>>2],ar[I+4>>2]=ar[X+4>>2],ar[I+8>>2]=ar[X+8>>2],ar[X>>2]=0,ar[X+4>>2]=0,(ar[X+8>>2]=0)|(X=0|ar[C>>2])&&du(X),S=118}}while(0);do{if(118==(0|S)){if((0|ar[l>>2])==(0|ar[14148])){M=0|ar[(i=56592)+4>>2],ar[(T=A)>>2]=ar[i>>2],ar[T+4>>2]=M,yu(A+8|0,56600);break}M=0|ar[(i=l)+4>>2],ar[(T=A)>>2]=ar[i>>2],ar[T+4>>2]=M,T=A+8|0,A=8+l|0,ar[T>>2]=ar[A>>2],ar[T+4>>2]=ar[A+4>>2],ar[T+8>>2]=ar[A+8>>2],ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;break}}while(0);(0|tr[(X=8+l|0)+11>>0])<0&&vu(0|ar[X>>2])}else S=24}else S=24;if(24==(0|S)&&(W=T+64|0,ar[(C=T+8|0)>>2]=4524,I=T+12|0,ar[T>>2]=188,ar[W>>2]=208,Jf(T+64|(ar[T+4>>2]=0),I),ar[T+136>>2]=0,ar[T+140>>2]=-1,ar[T>>2]=4504,ar[W>>2]=4544,ar[C>>2]=4524,Sf(I),ar[I>>2]=4340,ar[(C=T+44|0)>>2]=0,ar[C+4>>2]=0,ar[C+8>>2]=0,ar[C+12>>2]=0,ar[T+60>>2]=24,ar[l>>2]=0,ar[4+l>>2]=0,ar[8+l>>2]=0,Xe(I,l),(0|tr[11+l>>0])<0&&vu(0|ar[l>>2]),We(0|Lf(0|We(X=T+8|0,25533,13),r),25547,23),Ie(R,I),oo(A,2,117,R),(0|tr[R+11>>0])<0&&vu(0|ar[R>>2]),ar[T>>2]=4504,ar[W>>2]=4544,ar[X>>2]=4524,ar[I>>2]=4340,(0|tr[C+11>>0])<0&&vu(0|ar[C>>2]),kf(I),bf(W)),0|(X=0|ar[u>>2])){if((0|(W=0|ar[U>>2]))!=(0|X)){do{if(I=W+-32|0,ar[U>>2]=I,F=0|ar[(V=W+-16|0)>>2]){if((0|(W=0|ar[(G=W+-12|0)>>2]))==(0|F))W=F;else{for(;I=W+-40|0,ar[G>>2]=I,(0|(W=(C=0|ar[W+-16>>2])?((0|ar[(W=W+-12|0)>>2])!=(0|C)&&(ar[W>>2]=C),vu(C),0|ar[G>>2]):I))!=(0|F););W=0|ar[V>>2]}vu(W),W=0|ar[U>>2]}else W=I}while((0|W)!=(0|X));X=0|ar[u>>2]}vu(X)}(0|tr[11+s>>0])<0&&vu(0|ar[s>>2]),(0|tr[11+b>>0])<0&&vu(0|ar[b>>2])}else S=19;else E=0,S=19;return(19==(0|S)&&(ar[V>>2]=0,ar[V+4>>2]=0,ar[V+8>>2]=0,oo(A,5,2e3,V),(0|tr[V+11>>0])<0&&vu(0|ar[V>>2])),E)?(du(E),void(ur=d)):void(ur=d)}}ar[C>>2]=0,ar[C+4>>2]=0,ar[C+8>>2]=0,oo(A,5,2e3,C),ur=(0<=(0|tr[C+11>>0])||vu(0|ar[C>>2]),d)}function go(A){return(A|=0)>>>0<4?16908801>>>(A<<3)&255|0:(sr(55739,25597,47,25611),0)}function Zo(A){return(A|=0)>>>0<4?16843265>>>(A<<3)&255|0:(sr(55739,25597,66,25632),0)}function po(A){var e,r,i=0,f=0,n=0;if((0|(i=0|ar[(e=(A|=0)+56|0)>>2]))!=(0|(r=A+60|0)))for(n=i;;){if(0|(i=0|ar[n+44>>2])&&mu(i),i=0|ar[n+4>>2])for(;f=0|ar[i>>2];)i=f;else if(i=0|ar[(f=n+8|0)>>2],(0|ar[i>>2])!=(0|n))for(;n=0|ar[f>>2],i=0|ar[(f=n+8|0)>>2],(0|ar[i>>2])!=(0|n););if((0|i)==(0|r))break;n=i}!function A(e,r){e|=0;r|=0;return r?(A(e,0|ar[r>>2]),A(e,0|ar[r+4>>2]),void vu(r)):void 0}(e,0|ar[r>>2]),0|(i=0|ar[A+52>>2])&&du(i),0|(i=0|ar[A+44>>2])&&du(i),(0|tr[(i=A+8|0)+11>>0])<0&&vu(0|ar[i>>2]),(i=0|ar[A+4>>2])&&ku(i)}function yo(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0,ar[(A|=0)+24>>2]=e,ar[A+28>>2]=r,ar[A+32>>2]=i,ar[A+36>>2]=f}function Bo(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o=0,a=0;if(ur=(t=ur)+64|0,tr[(o=(n=t)+32|0)>>0]=0,ar[(a=o+4|0)>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,ar[a+12>>2]=0,ar[a+16>>2]=0,ar[a+20>>2]=0,!((ar[a+24>>2]=0)|function(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0;(0|(e|=0))<=-1&&sr(25686,25597,157,25697);(0|r)<=-1&&sr(25703,25597,158,25697);(0|i)<=0&&sr(25715,25597,159,25697);33<=(0|i)&&sr(25730,25597,160,25697);ar[A+4>>2]=e,ar[A+8>>2]=r,n=64<(n=e+1&-2)>>>0?n:64,ar[A+12>>2]=n,r=64<(r=r+1&-2)>>>0?r:64,ar[A+16>>2]=r,e=11==(0|f)&32==(0|(e=24==(0|i)&10==(0|f)?8:i))?8:e,17<=(0|cr[A>>0])&&sr(25746,25597,181,25697);switch(e=(7+(255&(tr[A>>0]=e))|0)>>>3,0|f){case 3:case 2:case 1:case 0:case 99:t=1;break;case 14:case 12:case 10:t=3;break;case 15:case 13:case 11:t=4;break;default:sr(55739,25597,118,25653)}return t=15+(0|br(0|br(t,e),n))&-16,ar[A+28>>2]=t,t=0|wu(15|br(t,r)),ar[A+24>>2]=t,f=15&t,ar[A+20>>2]=0==(0|f)?t:t+(16-f)|0,1}(o,r,i,f,0|ar[A+36>>2])))return ur=t,(A=0)|A;a=A+56|0,ar[n>>2]=ar[o>>2],ar[n+4>>2]=ar[o+4>>2],ar[n+8>>2]=ar[o+8>>2],ar[n+12>>2]=ar[o+12>>2],ar[n+16>>2]=ar[o+16>>2],ar[n+20>>2]=ar[o+20>>2],ar[n+24>>2]=ar[o+24>>2],ar[n+28>>2]=ar[o+28>>2],r=0|ar[(i=A+60|0)>>2];do{if(r){for(f=A+60|0;;)if((0|e)<(0|(i=0|ar[r+16>>2]))){if(!(i=0|ar[r>>2])){i=7;break}f=r,r=i}else{if((0|e)<=(0|i)){i=11;break}if(!(i=0|ar[(f=r+4|0)>>2])){i=10;break}r=i}if(7==(0|i)){f=o=r;break}if(10==(0|i)){o=r;break}if(11==(0|i)){o=r;break}}else f=o=i}while(0);return 0|ar[f>>2]||(r=0|hu(52),ar[r+16>>2]=e,ar[(i=r+20|0)>>2]=ar[n>>2],ar[i+4>>2]=ar[n+4>>2],ar[i+8>>2]=ar[n+8>>2],ar[i+12>>2]=ar[n+12>>2],ar[i+16>>2]=ar[n+16>>2],ar[i+20>>2]=ar[n+20>>2],ar[i+24>>2]=ar[n+24>>2],ar[i+28>>2]=ar[n+28>>2],ar[r>>2]=0,ar[r+4>>2]=0,ar[r+8>>2]=o,ar[f>>2]=r,(i=0|ar[ar[a>>2]>>2])&&(ar[a>>2]=i,r=0|ar[f>>2]),so(0|ar[A+60>>2],r),ar[(A=A+64|0)>>2]=1+(0|ar[A>>2])),ur=t,0|(A=1)}function Eo(A,e){e|=0;var r,i=0,f=0;if(0|(i=0|ar[(r=(A|=0)+60|0)>>2])){A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}if((0|A)!=(0|r)&&(0|ar[A+16>>2])<=(0|e))return 0|(e=(0|(e=A))!=(0|r))}return 0|(e=(0|(e=r))!=(0|r))}function Xo(A,e){e|=0;var r,i=0,f=0;if(!(i=0|ar[(r=(A|=0)+60|0)>>2]))return 0|(e=-1);A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}return(0|A)==(0|r)||(0|ar[A+16>>2])>(0|e)?0|(e=-1):0|(e=0|ar[A+24>>2])}function Wo(A,e){e|=0;var r,i=0,f=0;if(!(i=0|ar[(r=(A|=0)+60|0)>>2]))return 0|(e=-1);A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}return(0|A)==(0|r)||(0|ar[A+16>>2])>(0|e)?0|(e=-1):0|(e=0|ar[A+28>>2])}function Io(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0;if(ar[(i=(A|=0)+4|0)>>2]=0,n=A+4|(ar[(f=A+8|0)>>2]=0),ar[A>>2]=n,(0|(t=0|ar[e+56>>2]))!=(0|(r=e+60|0)))for(l=t,e=0;;){c=l+16|0;do{if(e){for(a=0|ar[c>>2],o=i;;){if((0|a)<(0|(t=0|ar[e+16>>2]))){if(!(t=0|ar[e>>2])){t=9;break}}else{if((0|a)<=(0|t)){t=13;break}if(!(t=0|ar[(o=e+4|0)>>2])){t=12;break}e=o}o=e,e=t}if(9==(0|t)){o=a=e;break}if(12==(0|t)){a=e;break}if(13==(0|t)){a=e;break}}else o=a=n}while(0);if(0|ar[o>>2]||(e=0|hu(20),ar[e+16>>2]=ar[c>>2],ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=a,ar[o>>2]=e,(t=0|ar[ar[A>>2]>>2])&&(ar[A>>2]=t,e=0|ar[o>>2]),so(0|ar[i>>2],e),ar[f>>2]=1+(0|ar[f>>2])),e=0|ar[l+4>>2])for(;t=0|ar[e>>2];)e=t;else if(e=0|ar[(t=l+8|0)>>2],(0|ar[e>>2])!=(0|l))for(;l=0|ar[t>>2],e=0|ar[(t=l+8|0)>>2],(0|ar[e>>2])!=(0|l););if((0|e)==(0|r))break;l=e,e=0|ar[n>>2]}}function Co(A,e){return A|=0,(e|=0)&&(Co(A,0|ar[e>>2]),Co(A,0|ar[e+4>>2]),void vu(e))}function Go(A,e){A|=0;var r,i=0,f=0;if(10==(0|(e|=0)))switch(0|ar[A+36>>2]){case 11:return 0|(e=32);case 14:case 12:return 0|(e=48);case 15:case 13:return 0|(e=64);case 10:return 0|(e=24);default:return 0|(e=-1)}if(i=0|ar[(r=A+60|0)>>2]){A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}A=(0|A)!=(0|r)&&(0|ar[A+16>>2])<=(0|e)?0|tr[A+20>>0]:-1}else A=-1;return 256<=(A=7+(255&A)&504)>>>0&&sr(25764,25597,362,25775),0|(e=255&A)}function Vo(A,e){e|=0;var r,i=0,f=0;if(!(i=0|ar[(r=(A|=0)+60|0)>>2]))return 0|(e=-1);A=r,f=i;A:for(;;){for(i=f;!((0|ar[i+16>>2])>=(0|e));)if(!(i=0|ar[i+4>>2]))break A;if(!(f=0|ar[i>>2])){A=i;break}A=i}return(0|A)==(0|r)||(0|ar[A+16>>2])>(0|e)?0|(e=-1):0|(e=0|tr[A+20>>0])}function Fo(A,e,r){e|=0,r|=0;var i,f=0,n=0;if(!(f=0|ar[(i=(A|=0)+60|0)>>2]))return(r=0)|r;A=i,n=f;A:for(;;){for(f=n;!((0|ar[f+16>>2])>=(0|e));)if(!(f=0|ar[f+4>>2]))break A;if(!(n=0|ar[f>>2])){A=f;break}A=f}return(0|A)==(0|i)||(0|ar[A+16>>2])>(0|e)?(r=0)|r:(0|r&&(ar[r>>2]=ar[A+48>>2]),0|(r=0|ar[A+40>>2]))}function Ro(A,e,r){e|=0,r|=0;var i,f=0,n=0;if(!(f=0|ar[(i=(A|=0)+60|0)>>2]))return(r=0)|r;A=i,n=f;A:for(;;){for(f=n;!((0|ar[f+16>>2])>=(0|e));)if(!(f=0|ar[f+4>>2]))break A;if(!(n=0|ar[f>>2])){A=f;break}A=f}return(0|A)==(0|i)||(0|ar[A+16>>2])>(0|e)?(r=0)|r:(0|r&&(ar[r>>2]=ar[A+48>>2]),0|(r=0|ar[A+40>>2]))}function No(A,e,r,i){A|=0,r|=0,i|=0;var f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;if(b=60+(0|ar[(e|=0)>>2])|0,l=0==(0|(u=0|ar[b>>2])))d=n=s=-1;else{n=b,o=u;A:for(;;){for(t=o;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break A;if(!(o=0|ar[t>>2])){n=t;break}n=t}if(c=(0|n)!=(0|b)&&(0|ar[n+16>>2])<=(0|r)?0|ar[n+24>>2]:-1,l)s=c,d=n=-1;else{n=b,o=u;A:for(;;){for(t=o;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break A;if(!(o=0|ar[t>>2])){n=t;break}n=t}if(a=(0|n)!=(0|b)&&(0|ar[n+16>>2])<=(0|r)?0|ar[n+28>>2]:-1,l)s=c,n=-1,d=a;else{n=b,o=u;A:for(;;){for(t=o;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break A;if(!(o=0|ar[t>>2])){n=t;break}n=t}d=(n=(0|n)!=(0|b)&&(0|ar[n+16>>2])<=(0|r)?(s=c,0|tr[n+20>>0]):(s=c,-1),a)}}}if(Bo(A,i,s,d,255&n),l=0|ar[e>>2],u=0==(0|(o=0|ar[(f=l+60|0)>>2])))b=e=0;else{n=f,a=o;A:for(;;){for(t=a;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break A;if(!(a=0|ar[t>>2])){n=t;break}n=t}b=(0|n)!=(0|f)&&(0|ar[n+16>>2])<=(0|r)?(e=0|ar[n+40>>2],0|ar[n+48>>2]):e=0}if(t=0|ar[(c=A+60|0)>>2]){n=c;A:for(;;){for(a=t;!((0|ar[a+16>>2])>=(0|i));){if(!(t=0|ar[a+4>>2]))break A;a=t}if(!(t=0|ar[a>>2])){n=a;break}n=a}a=(0|n)!=(0|c)&&(0|ar[n+16>>2])<=(0|i)?(c=0|ar[n+40>>2],0|ar[n+48>>2]):c=0}else a=c=0;A:do{if(10!=(0|r)){if(u)n=-1;else{n=f;e:for(;;){for(t=o;!((0|ar[t+16>>2])>=(0|r));)if(!(t=0|ar[t+4>>2]))break e;if(!(o=0|ar[t>>2])){n=t;break}n=t}n=(0|n)!=(0|f)&&(0|ar[n+16>>2])<=(0|r)?0|tr[n+20>>0]:-1}if((n=7+(255&n)|0)>>>0<256){k=(255&n)>>>3;break}sr(25764,25597,362,25775)}else switch(0|ar[l+36>>2]){case 10:k=3;break A;case 11:k=4;break A;case 14:case 12:k=6;break A;case 15:case 13:k=8;break A;default:k=31;break A}}while(0);if(t=0|br(255&k,s),0<(0|d))for(n=0;hb(c+(0|br(n,a))|0,e+(0|br(n,b))|0,0|t),(0|(n=n+1|0))!=(0|d););}function _o(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;ur=(t=ur)+64|0,f=t+32|0,n=t,u=(s=0|ar[(e|=0)>>2])+56|0,b=0|ar[(o=s+60|0)>>2];do{if(b){for(c=s+60|0,o=b;;)if((0|r)<(0|(a=0|ar[o+16>>2]))){if(!(a=0|ar[o>>2])){a=6;break}c=o,o=a}else{if((0|r)<=(0|a)){a=10;break}if(!(a=0|ar[(c=o+4|0)>>2])){a=9;break}o=a}if(6==(0|a)){c=l=o;break}if(9==(0|a)){l=o;break}if(10==(0|a)){l=o;break}}else c=l=o}while(0);if((o=0|ar[c>>2])||(a=0|hu(52),ar[a+16>>2]=r,ar[(o=a+20|0)>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o+12>>2]=0,ar[o+16>>2]=0,ar[o+20>>2]=0,ar[o+24>>2]=0,ar[o+28>>2]=0,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=l,ar[c>>2]=a,o=(o=0|ar[ar[u>>2]>>2])?(ar[u>>2]=o,0|ar[c>>2]):a,so(0|ar[s+60>>2],o),ar[(b=s+64|0)>>2]=1+(0|ar[b>>2]),b=0|ar[e>>2],o=a,b=0|ar[(s=b)+60>>2]),u=o+20|0,ar[f>>2]=ar[u>>2],ar[4+f>>2]=ar[u+4>>2],ar[8+f>>2]=ar[u+8>>2],ar[12+f>>2]=ar[u+12>>2],ar[16+f>>2]=ar[u+16>>2],ar[20+f>>2]=ar[u+20>>2],ar[24+f>>2]=ar[u+24>>2],ar[28+f>>2]=ar[u+28>>2],u=s+56|0,l=s+60|0,0|b){c=l,a=b;A:for(;;){for(o=a;!((0|ar[o+16>>2])>=(0|r));)if(!(o=0|ar[o+4>>2]))break A;if(!(a=0|ar[o>>2])){c=o;break}c=o}if((0|c)!=(0|l)&&(0|ar[c+16>>2])<=(0|r)){if(o=0|ar[c+4>>2])for(;a=0|ar[o>>2];)o=a;else if(o=0|ar[(a=c+8|0)>>2],(0|ar[o>>2])!=(0|c))for(;r=0|ar[a>>2],o=0|ar[(a=r+8|0)>>2],(0|ar[o>>2])!=(0|r););(0|ar[u>>2])==(0|c)&&(ar[u>>2]=o),ar[(r=s+64|0)>>2]=(0|ar[r>>2])-1,function(A,e){A|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(t=0|ar[(e|=0)>>2])if(n=0|ar[e+4>>2])for(;;){if(!(t=0|ar[n>>2])){t=0;break}n=t}else n=e;else n=e,t=0;r=n+4|0,i=0|ar[(0|t?n:r)>>2],l=n+8|0,(f=0!=(0|i))&&(ar[8+i>>2]=ar[l>>2]);t=0|ar[l>>2],(0|ar[t>>2])==(0|n)?(ar[t>>2]=i,(0|n)==(0|A)?(A=i,c=0):(t=t+4|0,u=10)):(ar[t+4>>2]=i,u=10);10==(0|u)&&(c=0|ar[t>>2]);a=0!=(0|tr[(o=n+12|0)>>0]),(0|n)!=(0|e)&&(t=0|ar[(u=e+8|0)>>2],ar[l>>2]=t,ar[((0|ar[ar[u>>2]>>2])==(0|e)?t:t+4|0)>>2]=n,t=0|ar[e>>2],ar[n>>2]=t,ar[t+8>>2]=n,t=0|ar[e+4>>2],0|(ar[r>>2]=t)&&(ar[t+8>>2]=n),tr[o>>0]=0|tr[e+12>>0],A=(0|A)==(0|e)?n:A);if(!(a&0!=(0|A)))return;if(f)return tr[12+i>>0]=1;for(;;){if(a=0|ar[c+8>>2],t=0!=(0|tr[(n=c+12|0)>>0]),(0|ar[a>>2])==(0|c)){if(t?l=c:(tr[n>>0]=1,tr[a+12>>0]=0,n=0|ar[a>>2],o=0|ar[(t=n+4|0)>>2],0|(ar[a>>2]=o)&&(ar[o+8>>2]=a),u=a+8|0,ar[n+8>>2]=ar[u>>2],l=0|ar[u>>2],ar[((0|ar[l>>2])==(0|a)?l:l+4|0)>>2]=n,ar[t>>2]=a,ar[u>>2]=n,u=0|ar[c+4>>2],l=0|ar[u>>2],A=(0|A)==(0|u)?c:A),n=0|ar[l>>2],!(o=0==(0|n))&&0==(0|tr[n+12>>0])){A=l,u=55;break}if(0|(a=0|ar[(t=l+4|0)>>2])&&0==(0|tr[a+12>>0])){u=49;break}if(((tr[l+12>>0]=0)|(n=0|ar[l+8>>2]))==(0|A)|0==(0|tr[(t=n+12|0)>>0])){u=48;break}}else{if(t?o=c:(tr[n>>0]=1,tr[a+12>>0]=0,n=0|ar[(u=a+4|0)>>2],t=0|ar[n>>2],0|(ar[u>>2]=t)&&(ar[t+8>>2]=a),u=a+8|0,ar[n+8>>2]=ar[u>>2],o=0|ar[u>>2],ar[((0|ar[o>>2])==(0|a)?o:o+4|0)>>2]=n,ar[n>>2]=a,ar[u>>2]=n,u=0|ar[c>>2],o=0|ar[u+4>>2],A=(0|A)==(0|u)?c:A),0|(t=0|ar[o>>2])&&0==(0|tr[t+12>>0])){u=31;break}if(0|(n=0|ar[o+4>>2])&&0==(0|tr[n+12>>0])){A=n,u=32;break}if(((tr[o+12>>0]=0)|(n=0|ar[o+8>>2]))==(0|A)){u=30;break}if(!(0|tr[n+12>>0])){A=n,u=30;break}}c=0|ar[n+8>>2],c=0|ar[((0|ar[c>>2])==(0|n)?c+4|0:c)>>2]}do{if(30==(0|u))return tr[A+12>>0]=1;if(31==(0|u))A=0|ar[o+4>>2],u=A?32:33;else{if(48==(0|u))return tr[t>>0]=1;if(49==(0|u)){if(o)A=a;else{if(!(0|tr[n+12>>0])){A=l,u=55;break}A=0|ar[(t=A=l+4|0)>>2]}tr[A+12>>0]=1,tr[l+12>>0]=0,n=0|ar[A>>2],0|(ar[t>>2]=n)&&(ar[n+8>>2]=l),n=l+8|0,ar[A+8>>2]=ar[n>>2],u=0|ar[n>>2],ar[((0|ar[u>>2])==(0|l)?u:u+4|0)>>2]=A,ar[A>>2]=l,ar[n>>2]=A,n=l,u=55}}}while(0);if(32==(0|u))0|tr[A+12>>0]?u=33:n=o;else if(55==(0|u))return o=0|ar[A+8>>2],t=o+12|0,tr[A+12>>0]=0|tr[t>>0],tr[t>>0]=1,tr[n+12>>0]=1,A=0|ar[o>>2],t=0|ar[(n=A+4|0)>>2],0|(ar[o>>2]=t)&&(ar[t+8>>2]=o),u=o+8|0,ar[A+8>>2]=ar[u>>2],e=0|ar[u>>2],ar[((0|ar[e>>2])==(0|o)?e:e+4|0)>>2]=A,ar[n>>2]=o,ar[u>>2]=A;33==(0|u)&&(tr[t+12>>0]=1,tr[o+12>>0]=0,n=0|ar[(A=t+4|0)>>2],0|(ar[o>>2]=n)&&(ar[n+8>>2]=o),n=o+8|0,ar[t+8>>2]=ar[n>>2],u=0|ar[n>>2],ar[((0|ar[u>>2])==(0|o)?u:u+4|0)>>2]=t,ar[A>>2]=o,ar[n>>2]=t,n=t,A=o);t=0|ar[n+8>>2],u=t+12|0,tr[n+12>>0]=0|tr[u>>0],tr[u>>0]=1,tr[A+12>>0]=1,A=0|ar[(u=t+4|0)>>2],n=0|ar[A>>2],0|(ar[u>>2]=n)&&(ar[n+8>>2]=t);u=t+8|0,ar[A+8>>2]=ar[u>>2],e=0|ar[u>>2],ar[((0|ar[e>>2])==(0|t)?e:e+4|0)>>2]=A,ar[A>>2]=t,ar[u>>2]=A}(b,c),vu(c)}}u=A+56|0,ar[n>>2]=ar[f>>2],ar[n+4>>2]=ar[4+f>>2],ar[n+8>>2]=ar[8+f>>2],ar[n+12>>2]=ar[12+f>>2],ar[n+16>>2]=ar[16+f>>2],ar[n+20>>2]=ar[20+f>>2],ar[n+24>>2]=ar[24+f>>2],ar[n+28>>2]=ar[28+f>>2],o=0|ar[(a=A+60|0)>>2];do{if(o){for(c=A+60|0;;)if((0|i)<(0|(a=0|ar[o+16>>2]))){if(!(a=0|ar[o>>2])){a=36;break}c=o,o=a}else{if((0|i)<=(0|a)){a=40;break}if(!(a=0|ar[(c=o+4|0)>>2])){a=39;break}o=a}if(36==(0|a)){c=l=o;break}if(39==(0|a)){l=o;break}if(40==(0|a)){l=o;break}}else c=l=a}while(0);ur=(0|ar[c>>2]||(o=0|hu(52),ar[o+16>>2]=i,ar[(a=o+20|0)>>2]=ar[n>>2],ar[a+4>>2]=ar[n+4>>2],ar[a+8>>2]=ar[n+8>>2],ar[a+12>>2]=ar[n+12>>2],ar[a+16>>2]=ar[n+16>>2],ar[a+20>>2]=ar[n+20>>2],ar[a+24>>2]=ar[n+24>>2],ar[a+28>>2]=ar[n+28>>2],ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=l,ar[c>>2]=o,(a=0|ar[ar[u>>2]>>2])&&(ar[u>>2]=a,o=0|ar[c>>2]),so(0|ar[A+60>>2],o),ar[(A=A+64|0)>>2]=1+(0|ar[A>>2])),t)}function Yo(A,e){A|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(f=ur)+16|0,r=f,((tr[(e|=0)>>0]=0)|(t=n=0|ar[(i=A+377216|0)>>2]))==(0|(o=b=0|ar[(d=A+377220|0)>>2])))return ur=f,(d=0)|d;u=0|ar[n>>2],a=0|ar[u+10636>>2],b=c=0|ar[u+10632>>2];A:do{if((0|a)!=(0|c)){for(c=a-c>>2,a=0;l=0|ar[b+(a<<2)>>2],a=a+1|0,0|ar[l+40>>2];)if(c>>>0<=a>>>0)break A;if(l){if(0|tr[l+36>>0]&&ra(A+376148|0),tr[e>>0]=1,n=0|Qo(A,u,l))return ur=f,0|(d=n);t=n=0|ar[i>>2],o=0|ar[d>>2];break}}}while(0);if(1>2>>>0?(u=0|ar[n>>2],(0|(b=0|ar[u+10636>>2]))!=(0|ar[u+10632>>2])&&0==(0|ar[40+(0|ar[b+-4>>2])>>2])&&(s=14)):s=14,14==(0|s)){if((0|o)==(0|(n=s=0|ar[i>>2])))return ur=f,(d=0)|d;if(b=0|ar[n>>2],(0|(s=0|ar[b+10636>>2]))!=(0|ar[b+10632>>2])&&0==(0|ar[40+(0|ar[s+-4>>2])>>2]))return ur=f,(d=0)|d;if((0!=(0|ar[A+556>>2])|0)!=(0-(0|ar[A+580>>2])|0))return ur=f,(d=0)|d;if(0==(0|tr[A+548>>0])&&0==(0|tr[A+549>>0]))return ur=f,(d=0)|d}if(c=0|ar[n>>2],tr[e>>0]=1,n=0|ar[c>>2],0<(0|ar[(o=n+10344|0)>>2])){for(t=n+10524|0,n=0;Tn((0|ar[t>>2])+(80*n|0)|0,1),(0|(n=n+1|0))<(0|ar[o>>2]););a=0|ar[c>>2]}else a=n;n=0|ar[(o=a+10332|0)>>2],t=0==(0|tr[n+532>>0]),0|ar[375892+(0|ar[10332+(0|ar[A+376224>>2])>>2])>>2]?(t?(function(A){var e,r,i,f,n,t,o,a=0,c=0,l=0;if(ur=(o=ur)+16|0,r=o,i=0|ar[(A|=0)>>2],l=0|ar[10332+i>>2],ca(i,ar[(f=5828+i|0)>>2]<<1),n=A+10668|0,t=A+10672|0,l=l+375396|0,e=A+10664|0,0<(0|ar[f>>2])){for(c=0;A=0|hu(20),ar[A+4>>2]=0,ar[A>>2]=9552,ar[A+8>>2]=i,ar[A+12>>2]=c,tr[A+16>>0]=1,ar[r>>2]=A,(a=0|ar[n>>2])>>>0<(0|ar[t>>2])>>>0?(ar[a>>2]=A,ar[n>>2]=4+(0|ar[n>>2])):Oe(e,r),Sn(l,A),(0|(c=c+1|0))<(0|(A=0|ar[f>>2])););if(0<(0|A)){for(A=0;a=0|hu(20),ar[a+4>>2]=0,ar[a>>2]=9552,ar[a+8>>2]=i,ar[a+12>>2]=A,tr[a+16>>0]=0,ar[r>>2]=a,(c=0|ar[n>>2])>>>0<(0|ar[t>>2])>>>0?(ar[c>>2]=a,ar[n>>2]=4+(0|ar[n>>2])):Oe(e,r),Sn(l,a),(0|(A=A+1|0))<(0|ar[f>>2]););ur=o}else ur=o}else ur=o}(c),t=3,n=0|ar[o>>2]):t=1,0|tr[n+533>>0]||function(A,e){e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0;if(ur=(n=ur)+16|0,f=n,b=0|ar[(A|=0)>>2],!(0|tr[b+5467>>0]))return ur=n,b=0;if(o=0|ar[(t=b+10332|0)>>2],u=b+10480|0,0|ta(i=A+8|0,0|ar[b+24>>2],0|ar[b+28>>2],0|ar[b+20>>2],b+764|0,0,o,0|ar[b+10336>>2],0|ar[u>>2],0|ar[u+4>>2],0|ar[b+10488>>2],1))return er(4+(0|ar[t>>2])|0,1024,0),ur=n,b=0;if(r=0|ar[b+5828>>2],ca(b,r),0<(0|r))for(l=A+10668|0,u=A+10672|0,c=o+375396|0,o=A+10664|0,t=0;A=0|hu(28),ar[A+4>>2]=0,ar[A>>2]=7752,ar[A+16>>2]=b,ar[A+20>>2]=i,ar[A+12>>2]=b,ar[A+8>>2]=t,ar[A+24>>2]=e,ar[f>>2]=A,(a=0|ar[l>>2])>>>0<(0|ar[u>>2])>>>0?(ar[a>>2]=A,ar[l>>2]=4+(0|ar[l>>2])):Oe(o,f),Sn(c,A),(0|(t=t+1|0))!=(0|r););sa(b),function(A,e){var r,i=0,f=0,n=0;n=(e=e|0)+4|0,f=0|ar[(i=(A=A|0)+4|0)>>2],ar[i>>2]=ar[n>>2],ar[n>>2]=f,f=e+60|0,i=0|ar[(n=A+60|0)>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=i,i=e+10492|0,n=0|ar[(f=A+10492|0)>>2],ar[f>>2]=ar[i>>2],ar[i>>2]=n,n=e+8|0,f=0|ar[(i=A+8|0)>>2],ar[i>>2]=ar[n>>2],ar[n>>2]=f,f=e+64|0,i=0|ar[(n=A+64|0)>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=i,i=e+10496|0,n=0|ar[(f=A+10496|0)>>2],ar[f>>2]=ar[i>>2],ar[i>>2]=n,n=e+12|0,f=0|ar[(i=A+12|0)>>2],ar[i>>2]=ar[n>>2],ar[n>>2]=f,f=e+68|0,i=0|ar[(n=A+68|0)>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=i,i=e+10500|0,n=0|ar[(f=A+10500|0)>>2],ar[f>>2]=ar[i>>2],ar[i>>2]=n,n=e+40|0,f=0|ar[(i=A+40|0)>>2],ar[i>>2]=ar[n>>2],ar[n>>2]=f,f=e+44|0,i=0|ar[(n=A+44|0)>>2],ar[n>>2]=ar[f>>2],ar[f>>2]=i,e=e+10504|0,i=0|ar[(A=f=A+10504|0)>>2],A=0|ar[A+4>>2],r=0|ar[(n=e)+4>>2],ar[f>>2]=ar[n>>2],ar[f+4>>2]=r,ar[e>>2]=i,ar[e+4>>2]=A}(b,i),ur=n,b=1}(c,t),sa(a)):(t&&(function(A){var e,r,i,f=0,n=0,t=0;if(0<(0|ar[(t=(A|=0)+5828|0)>>2])){for(n=f=0;f=0|f|Zt(A,n),(0|(n=n+1|0))<(0|ar[t>>2]););if(f){i=A+10472|0,pt(A,1,0,0|ar[(r=A+10476|0)>>2],0,0|ar[i>>2]),f=0|ar[r>>2],n=0|ar[i>>2],(8<(0|ar[(e=A+5760|0)>>2])?yt:Bt)(A,1,0,f,0,n),t=A+5776|0;do{if(0|ar[t>>2]){if(f=0|ar[r>>2],n=0|ar[i>>2],8<(0|ar[A+5768>>2])){Et(A,1,0,f,0,n);break}Xt(A,1,0,f,0,n);break}}while(0);if(pt(A,0,0,0|ar[r>>2],0,0|ar[i>>2]),f=0|ar[r>>2],n=0|ar[i>>2],(8<(0|ar[e>>2])?yt:Bt)(A,0,0,f,0,n),0|ar[t>>2])n=0|ar[r>>2],f=0|ar[i>>2],8<(0|ar[A+5768>>2])?Et(A,0,0,n,0,f):Xt(A,0,0,n,0,f)}}}(a),n=0|ar[o>>2]),0|tr[n+533>>0]||function(A){var e,r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0;if(!(0|tr[5467+(A|=0)>>0]))return;d=A+40|0,C=0|br(0|ar[(k=A+28|0)>>2],0|ar[d>>2]),C=0|br(C,(7+(0|ar[(h=A+5760|0)>>2])|0)/8|0),e=A+44|0,V=0|br(0|ar[(r=A+36|0)>>2],0|ar[e>>2]),V=0|br(V,(7+(0|ar[(i=A+5768|0)>>2])|0)/8|0),V=0|wu(-1<(0|(V=(0|V)<(0|C)?C:V))?V:-1),C=0==(0|ar[A+5776>>2])?1:3,n=A+5820|0,t=A+10352|0,o=A+10340|0,a=A+48|0,c=A+52|0,l=A+5804|0,u=A+4|0,b=A+5780|0,s=A+5784|0,w=0|ar[(f=A+5828|(G=0))>>2];A:for(;;){if(B=0|ar[(X=(W=0==(0|G))?d:e)>>2],I=A+4+(G<<2)|0,y=0|br(0|ar[(W?k:r)>>2],B),E=W?h:i,hb(0|V,0|ar[I>>2],0|br(y,(7+(0|ar[E>>2])|0)/8|0)),0<(0|w))for(w=(y=0)|ar[n>>2];;){if(0<(0|w))for(p=0;;){if(w=(0|br(0|ar[t>>2],y))+p|0,w=0|lr[(0|ar[o>>2])+(24*w|0)+2>>1],v=0|ar[a>>2],w>>>0>=(0|ar[c>>2])-v>>2>>>0){w=21;break A}if(!(Z=0|ar[v+(w<<2)>>2])){w=21;break A}do{if(W){if(0|tr[Z+325>>0]){if(v=1<>2],m=0|ar[u>>2],w=0|ar[d>>2],8<(0|ar[h>>2])){Ra(A,p,y,Z,0,v,v,V,B,m,w);break}Na(A,p,y,Z,0,v,v,V,B,m,w);break}}else if(0|tr[Z+326>>0]){if(m=1<>2],v=(0|m)/(0|ar[b>>2])|0,m=(0|m)/(0|ar[s>>2])|0,g=0|ar[I>>2],w=0|ar[X>>2],8<(0|ar[E>>2])){Ra(A,p,y,Z,G,v,m,V,B,g,w);break}Na(A,p,y,Z,G,v,m,V,B,g,w);break}}while(0);if(p=p+1|0,(0|(w=0|ar[n>>2]))<=(0|p)){v=w;break}}else v=w;if(y=y+1|0,(0|(w=0|ar[f>>2]))<=(0|y))break;w=v}if((0|C)<=(0|(G=G+1|0))){w=20;break}}{if(20==(0|w))return mu(V);if(21==(0|w));}}(a)),a=c+10648|0,n=0|ar[(o=c+10644|0)>>2];A:do{if((0|ar[a>>2])==(0|n))a=0;else for(t=0;;){if(n=0|Qa(n+(80*t|0)|0,0|ar[c>>2]),t=t+1|0,0|n){a=n;break A}if(n=0|ar[o>>2],t>>>0>=(((0|ar[a>>2])-n|0)/80|0)>>>0){a=0;break}}}while(0);if(0|(n=0|ar[c>>2])){do{if(0|tr[n+100>>0]){if(0|tr[n+10516>>0]&&0|tr[A+514>>0])break;ar[r>>2]=n,(0|(o=0|ar[(t=A+376172|0)>>2]))==(0|ar[A+376176>>2])?Do(A+376168|0,r):(ar[o>>2]=n,ar[t>>2]=4+(0|ar[t>>2]))}}while(0);((0|ar[A+376172>>2])-(0|ar[A+376168>>2])>>2|0)>(0|ar[n+596+(12*((0|ar[n+116>>2])-1|0)|0)+4>>2])&&Aa(A+376148|0)}if(Te(c),vu(c),1<(n=0|ar[d>>2])-(t=0|ar[i>>2])>>2>>>0)for(o=1;ar[(n=t)+(o+-1<<2)>>2]=ar[n+(o<<2)>>2],(o=o+1|0)>>>0<(n=0|ar[d>>2])-(t=0|ar[i>>2])>>2>>>0;);return ar[d>>2]=n+-4,ur=f,0|(d=a)}function Qo(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0;if(l=(u=0|ar[(f=(r|=0)+4|0)>>2])+1344|0,u=u+1348|0,t=0|ar[l>>2],(0|ar[u>>2])!=(0|t))for(a=A+376148|0,c=A+376156|0,o=0;-1<(0|(t=0|$o(a,0|ar[t+(o<<2)>>2])))&&(ar[96+(0|ar[(0|ar[c>>2])+(t<<2)>>2])>>2]=0),o=o+1|0,t=0|ar[l>>2],o>>>0<(0|ar[u>>2])-t>>2>>>0;);u=0|ar[e>>2],ar[(i=r+40|0)>>2]=1,c=0|ar[u+10332>>2];A:do{if(0<(0|ar[c+375892>>2]))if(l=(k=0|tr[u+5965>>0])<<24>>24!=0,t=(h=0|tr[u+5966>>0])<<24>>24!=0,(k|h)<<24>>24)d=t;else{if(0<(0|(a=0|ar[(o=c+168|0)>>2]))){t=0;do{if(1e3==(0|ar[c+88+(t<<2)>>2])){d=0;break A}t=t+1|0}while((0|t)<(0|a));(0|a)<20&&(v=12)}else v=12;12==(0|v)&&(ar[o>>2]=a+1,ar[c+88+(a<<2)>>2]=1e3),20==(0|(t=0|ar[(o=c+84|0)>>2]))?(o=1001,t=19):(ar[o>>2]=t+1,o=1e3),ar[c+4+(t<<2)>>2]=o,d=0}else l=d=0}while(0);if(k=e+10632|0,(0|(t=0|ar[(h=e+10636|0)>>2]))!=(0|(o=0|ar[k>>2]))){if((0|ar[o>>2])==(0|r)&&0<(0|(b=0|ar[16+(0|ar[f>>2])>>2]))){for(o=u+10524|0,t=0;Tn((0|ar[o>>2])+(80*t|0)|0,1),(0|(t=t+1|0))!=(0|b););o=0|ar[k>>2],t=0|ar[h>>2]}}else o=t;a=t-o>>2;A:do{if(1>>0){for(t=1;(0|ar[o+(t<<2)>>2])!=(0|r);)if(a>>>0<=(t=t+1|0)>>>0)break A;if(0|(c=0|ar[o+(t+-1<<2)>>2])&&2==(0|ar[c+40>>2])){a=a+-1|0,t=0;do{if(a>>>0<=t>>>0)break A;t=(b=t)+1|0}while((0|ar[o+(b<<2)>>2])!=(0|c));if(0|(t=0|ar[o+(t<<2)>>2])&&(0|(n=0|ar[16+(0|ar[c+4>>2])>>2]))<(0|ar[16+(0|ar[(s=t+4|0)>>2])>>2]))do{if(t=0|ar[e>>2],(0|n)>=(0|ar[t+10344>>2]))break A;Tn((0|ar[t+10524>>2])+(80*n|0)|0,1),n=n+1|0}while((0|n)<(0|ar[16+(0|ar[s>>2])>>2]))}}}while(0);if(!(l|d)){a=0|function(A,e,r){A|=0,e|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(n=ur)+18624|0,f=n,t=0|ar[(i=4+(r|=0)|0)>>2],b=t+1348|0,o=0|ar[(u=t+1344|0)>>2],(0|ar[b>>2])!=(0|o)){for(c=A+376148|0,l=A+376156|0,a=0,t=o;-1<(0|(t=0|$o(c,0|ar[t+(a<<2)>>2])))&&(ar[96+(0|ar[(0|ar[l>>2])+(t<<2)>>2])>>2]=0),a=a+1|0,t=0|ar[u>>2],a>>>0<(0|ar[b>>2])-t>>2>>>0;);t=0|ar[i>>2]}if(b=0|ar[e>>2],(0|ar[t+16>>2])>>>0>=(0|ar[b+10276>>2])-(0|ar[b+10272>>2])>>2>>>0)return ur=n,0|(s=6);if(st(b=f+18580|0),t=f+48|0,ar[(u=f+18508|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,vb(0|(ar[f+2112>>2]=t),0,2048),t=0|ar[i>>2],ar[f+18600>>2]=t,u=0|ar[e>>2],ar[f+18596>>2]=u,ar[f+18592>>2]=A,ar[f+18604>>2]=e,ar[f+18608>>2]=r,ar[f+4>>2]=ar[(0|ar[u+10272>>2])+(ar[t+16>>2]<<2)>>2],Se(ar[f+18612>>2]=0,f),(0|(t=0|ar[r+12>>2]))<1)t=17;else{nt(f+18556|0,0|ar[r+8>>2],t);do{if(0|tr[A+93817>>0]&&0|tr[4+(0|ar[i>>2])>>0]){if(u=e+10676|0,c=(0|ar[5828+(0|ar[A+376224>>2])>>2])-1|0,t=0|ar[(l=e+10680|0)>>2],o=0|ar[u>>2],(a=t-o>>3)>>>0>>0){Jo(u,c-a|0);break}if(c>>>0>>0&&(0|t)!=(0|(s=o+(c<<3)|0)))for(;e=t+-8|0,kt(ar[l>>2]=e),(0|(t=0|ar[l>>2]))!=(0|s););}}while(0);ar[r+124>>2]=1,t=0|function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0;l=0|ar[18596+(A|=0)>>2],a=0|ar[A+4>>2],o=0|ar[l+5836>>2],c=0|ar[l+5820>>2],(0|a)<(0|o)&&(o=0|ar[(0|ar[l+10284>>2])+(a<<2)>>2]);if(ar[A>>2]=o,ar[A+8>>2]=(0|o)%(0|c)|0,ar[A+12>>2]=(0|o)/(0|c)|0,a=0|ar[(i=A+18600|0)>>2],!(0|Da(A)))return 0|(A=18);tt(f=A+18556|0),n=A+18560|0,t=A+18592|0,l=l+5966|0,e=A+18580|0,r=A+18588|0,a=0==(0|tr[a+12>>(o=0)]);for(;;){do{if(0<(0|o)){if(c=o+-1|0,b=0|ar[i>>2],u=0|ar[b+776>>2],c>>>0<(0|ar[b+780>>2])-u>>2>>>0&&((0|ar[n>>2])-2-(0|ar[f>>2])|0)==(0|ar[u+(c<<2)>>2]))break;er(4+(0|ar[t>>2])|0,1003,1)}}while(0);if(o=o+1|0,2==(2|Ja(A,0,a))){o=0,a=14;break}if(0|tr[l>>0]){if(a=0|ar[i>>2],3<=(c=0|ar[a+796>>2])>>>0){a=12;break}ht(e,c,0|ar[a+792>>2]),tr[r>>0]=0,tr[1+r>>0]=0,tr[2+r>>0]=0,tr[3+r>>0]=0,a=0}else a=0}if(12==(0|a))sr(39211,39242,1508,39251);else if(14==(0|a))return 0|o;return 0}(f),Tn(r+44|0,1)}return kt(b),ur=n,0|(s=t)}(A,e,r),ar[i>>2]=2,o=0|ar[k>>2],t=((0|ar[h>>2])-o>>2)-1|0,n=0;do{if(t>>>0<=n>>>0){w=a,v=60;break}n=(s=n)+1|0}while((0|ar[o+(s<<2)>>2])!=(0|r));if(60==(0|v))return 0|w;if(!(n=0|ar[o+(n<<2)>>2]))return 0|(e=a);if(!((0|(t=0|ar[16+(0|ar[f>>2])>>2]))<(0|ar[16+(0|ar[(o=n+4|0)>>2])>>2])))return 0|(e=a);for(n=t;;){if(t=0|ar[e>>2],(0|n)>=(0|ar[t+10344>>2])){w=a,v=60;break}if(Tn((0|ar[t+10524>>2])+(80*n|0)|0,1),(0|(n=n+1|0))>=(0|ar[16+(0|ar[o>>2])>>2])){w=a,v=60;break}}if(60==(0|v))return 0|w}if(l&d)return 0|(e=1006);if(l){!function(A,e,r){A|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0;ur=(a=ur)+16|0,t=a,o=0|ar[(e|=0)>>2],n=0|ar[r+4>>2],f=0|ar[768+n>>2],h=1+f|0,i=0|ar[5820+o>>2],(0|ar[10536+o>>2])!=(0-(0|ar[10532+o>>2])|0)&&sr(34762,34700,989,34867);do{if(0|tr[4+n>>0]){if(l=e+10676|0,u=(0|ar[5828+o>>2])-1|0,c=0|ar[(d=e+10680|0)>>2],b=0|ar[l>>2],(s=c-b>>3)>>>0>>0){Jo(l,u-s|0);break}if(u>>>0>>0&&(0|c)!=(0|(k=b+(u<<3)|0)))for(;X=c+-8|0,kt(ar[d>>2]=X),(0|(c=0|ar[d>>2]))!=(0|k););}}while(0);Ue(r,h),c=0|ar[16+n>>2],s=(0|c)/(0|i)|0;A:do{if(0<=(0|f)){if(m=r+140|0,g=r+136|0,Z=10332+o|0,p=10272+o|0,y=r+12|0,B=r+8|0,E=r+124|0,X=A+375396|0,v=776+n|0,!f){if((0|ar[m>>2])<=0&&sr(34817,34837,170,34848),u=0|ar[g>>2],ar[u+18600>>2]=n,ar[u+18592>>2]=ar[Z>>2],ar[u+18596>>2]=o,ar[(l=u+18604|0)>>2]=e,ar[u+18608>>2]=r,ar[u+4>>2]=ar[(0|ar[p>>2])+(c<<2)>>2],Se(0,u),(0|(c=0|ar[y>>2]))<=0)break;nt(u+18556|0,0|ar[B>>2],c),ca(o,1),ar[E>>2]=1+(0|ar[E>>2]),b=0|hu(20),ar[b+4>>2]=0,ar[b>>2]=7972,tr[b+8>>0]=1,ar[b+16>>2]=u,ar[b+12>>2]=s,ar[u+18612>>2]=b,Sn(X,b),c=0|ar[l>>2],ar[t>>2]=b,(u=0|ar[(l=c+10668|0)>>2])>>>0<(0|ar[c+10672>>2])>>>0?(ar[u>>2]=b,ar[l>>2]=4+(0|ar[l>>2])):Oe(c+10664|0,t);break}for(l=s,w=0;;){if((0|w)<=0){if((0|c)%(0|i)|0)break A}else c=0|br(l=c=l+1|0,i);if((0|ar[m>>2])<=(0|w))break;if(s=0|ar[g>>2],d=s+(18624*w|0)|0,ar[s+(18624*w|0)+18600>>2]=n,ar[s+(18624*w|0)+18592>>2]=ar[Z>>2],ar[s+(18624*w|0)+18596>>2]=o,ar[(k=s+(18624*w|0)+18604|0)>>2]=e,ar[s+(18624*w|0)+18608>>2]=r,ar[s+(18624*w|0)+4>>2]=ar[(0|ar[p>>2])+(c<<2)>>2],Se(0,d),b=(h=0==(0|w))?0:0|ar[(0|ar[v>>2])+(w+-1<<2)>>2],u=(0|w)==(0|f)?y:(0|ar[v>>2])+(w<<2)|0,u=0|ar[u>>2],(0|b)<0)break A;if(!((0|b)<(0|u)&&(0|u)<=(0|ar[y>>2])))break A;if(nt(s+(18624*w|0)+18556|0,(0|ar[B>>2])+b|0,u-b|0),ca(o,1),ar[E>>2]=1+(0|ar[E>>2]),A=0|hu(20),ar[A+4>>2]=0,ar[A>>2]=7972,tr[A+8>>0]=1&h,ar[A+16>>2]=d,ar[A+12>>2]=l,ar[s+(18624*w|0)+18612>>2]=A,Sn(X,A),s=0|ar[k>>2],ar[t>>2]=A,(b=0|ar[(u=s+10668|0)>>2])>>>0<(0|ar[s+10672>>2])>>>0?(ar[b>>2]=A,ar[u>>2]=4+(0|ar[u>>2])):Oe(s+10664|0,t),!((0|w)<(0|f)))break A;w=w+1|0}sr(34817,34837,170,34848)}}while(0);if(sa(o),d=e+10664|0,l=0|ar[(k=e+10668|0)>>2],b=0|ar[d>>2],(0|(c=l))!=(0|(u=b))){for(s=0;(u=0|ar[u+(s<<2)>>2])&&(is[511&ar[4+(0|ar[u>>2])>>2]](u),c=0|ar[k>>2],b=0|ar[d>>2],l=c),(s=s+1|0)>>>0>2>>>0;);l=b}ur=((0|c)!=(0|u)&&(ar[k>>2]=c+(~((c+-4-l|0)>>>2)<<2)),a)}(A,e,r),ar[i>>2]=2,o=0|ar[k>>2],t=((0|ar[h>>2])-o>>2)-1|0,n=0;do{if(t>>>0<=n>>>0){w=0,v=60;break}n=(s=n)+1|0}while((0|ar[o+(s<<2)>>2])!=(0|r));if(60==(0|v))return 0|w;if(!(n=0|ar[o+(n<<2)>>2]))return(e=0)|e;if(!((0|(t=0|ar[16+(0|ar[f>>2])>>2]))<(0|ar[16+(0|ar[(o=n+4|0)>>2])>>2])))return(e=0)|e;for(n=t;;){if(t=0|ar[e>>2],(0|n)>=(0|ar[t+10344>>2])){w=0,v=60;break}if(Tn((0|ar[t+10524>>2])+(80*n|0)|0,1),(0|(n=n+1|0))>=(0|ar[16+(0|ar[o>>2])>>2])){w=0,v=60;break}}if(60==(0|v))return 0|w}d||sr(55739,34700,971,34735),a=0|function(A,e,r){A|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0;ur=(a=ur)+16|0,f=a,n=0|ar[(e|=0)>>2],t=0|ar[r+4>>2],o=0|ar[768+t>>2],i=0|ar[5820+n>>2],(0|ar[10536+n>>2])!=(0-(0|ar[10532+n>>2])|0)&&sr(34762,34700,1103,34793);Ue(r,1+o|0),c=0|ar[16+t>>2];A:do{if((0|o)<0)C=0;else{for(g=5968+n|0,Z=5972+n|0,p=r+140|0,y=r+136|0,B=10332+n|0,E=10272+n|0,X=r+12|0,W=r+8|0,I=r+124|0,v=A+375396|0,m=776+t|0,l=c,A=0|ar[(0|ar[10308+n>>2])+(c<<2)>>2],w=0;;){if(0<(0|w)){if(c=A+1|0,A=0|ar[g>>2],(0|c)>=(0|br(0|ar[Z>>2],A))){C=1007;break A}l=(0|br(0|ar[10228+n+(((0|c)/(0|A)|0)<<2)>>2],i))+(0|ar[10184+n+(((0|c)%(0|A)|0)<<2)>>2])|0,A=c}if((0|ar[p>>2])<=(0|w))break;if(b=0|ar[y>>2],s=b+(18624*w|0)|0,ar[b+(18624*w|0)+18600>>2]=t,ar[b+(18624*w|0)+18592>>2]=ar[B>>2],ar[b+(18624*w|0)+18596>>2]=n,ar[(d=b+(18624*w|0)+18604|0)>>2]=e,ar[b+(18624*w|0)+18608>>2]=r,ar[b+(18624*w|0)+4>>2]=ar[(0|ar[E>>2])+(l<<2)>>2],Se(0,s),u=(k=0==(0|w))?0:0|ar[(0|ar[m>>2])+(w+-1<<2)>>2],c=(0|w)==(0|o)?X:(0|ar[m>>2])+(w<<2)|0,c=0|ar[c>>2],(0|u)<0){C=17;break A}if(!((0|u)<(0|c)&&(0|c)<=(0|ar[X>>2]))){C=17;break A}if(nt(b+(18624*w|0)+18556|0,(0|ar[W>>2])+u|0,c-u|0),ca(n,1),ar[I>>2]=1+(0|ar[I>>2]),h=0|hu(24),ar[h+4>>2]=0,ar[h>>2]=7932,tr[h+8>>0]=1&k,ar[h+20>>2]=s,ar[h+12>>2]=(0|l)%(0|i)|0,ar[h+16>>2]=(0|l)/(0|i)|0,ar[b+(18624*w|0)+18612>>2]=h,Sn(v,h),c=0|ar[d>>2],ar[f>>2]=h,(b=0|ar[(u=c+10668|0)>>2])>>>0<(0|ar[c+10672>>2])>>>0?(ar[b>>2]=h,ar[u>>2]=4+(0|ar[u>>2])):Oe(c+10664|0,f),!((0|w)<(0|o))){C=0;break A}w=w+1|0}sr(34817,34837,170,34848)}}while(0);if(sa(n),s=e+10664|0,c=0|ar[(d=e+10668|0)>>2],u=0|ar[s>>2],(0|(A=c))!=(0|(l=u))){for(b=0;(l=0|ar[l+(b<<2)>>2])&&(is[511&ar[4+(0|ar[l>>2])>>2]](l),A=0|ar[d>>2],u=0|ar[s>>2],c=A),(b=b+1|0)>>>0>2>>>0;);c=u}return ur=((0|A)!=(0|l)&&(ar[d>>2]=A+(~((A+-4-c|0)>>>2)<<2)),a),0|C}(A,e,r),ar[i>>2]=2,o=0|ar[k>>2],t=((0|ar[h>>2])-o>>2)-1|0,n=0;do{if(t>>>0<=n>>>0){w=a,v=60;break}n=(A=n)+1|0}while((0|ar[o+(A<<2)>>2])!=(0|r));if(60==(0|v))return 0|w;if(!(t=0|ar[o+(n<<2)>>2]))return 0|(e=a);if((0|(n=0|ar[16+(0|ar[f>>2])>>2]))>=(0|ar[16+(0|ar[(o=t+4|0)>>2])>>2]))return 0|(e=a);for(;;){if(t=0|ar[e>>2],(0|n)>=(0|ar[t+10344>>2])){w=a,v=60;break}if(Tn((0|ar[t+10524>>2])+(80*n|0)|0,1),(0|(n=n+1|0))>=(0|ar[16+(0|ar[o>>2])>>2])){w=a,v=60;break}}return 60==(0|v)?0|w:0}function Do(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function Jo(A,e){var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((e|=0)>>>0<=(t=0|ar[(i=(A|=0)+8|0)>>2])-(f=0|ar[(l=A+4|0)>>2])>>3>>>0)for(;st(f),f=8+(0|ar[l>>2])|0,ar[l>>2]=f,0!=(0|(e=e+-1|0)););else{536870911<(f=(o=f-(n=0|ar[A>>2])>>3)+e|0)>>>0&&zl(),c=(a=t-n|0)>>2,f=a>>3>>>0<268435455?c>>>0>>0?f:c:536870911;do{if(f){if(!(536870911>>0)){n=0|hu(f<<3);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else n=0}while(0);for(c=n+(f<<3)|0,a=o=r=n+(o<<3)|0,f=r;st(f),a=f=a+8|0,0!=(0|(e=e+-1|0)););if(t=0|ar[A>>2],(0|(f=0|ar[l>>2]))==(0|t))e=o,f=n=t;else{for(n=o,e=r;dt(e+-8|0,f=f+-8|0),n=e=n+-8|0,(0|f)!=(0|t););e=n,n=0|ar[A>>2],f=0|ar[l>>2]}if(ar[A>>2]=e,ar[l>>2]=a,ar[i>>2]=c,(0|f)!=(0|(e=n)))for(;kt(f=f+-8|0),(0|f)!=(0|e););n&&vu(n)}}function Mo(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function To(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t=0,o=0,a=0,c=0;if(0|Lo(t=(e|=0)+376148|0,1)||sr(35044,34700,1433,35080),(0|(n=0|ia(t,0|ar[e+375388>>2],A,0,0,0,0)))<=-1&&sr(35119,34700,1436,35080),A=0|ar[e+376156>>2],A=(0|ar[e+376160>>2])-A>>2>>>0>n>>>0?0|ar[A+(n<<2)>>2]:0,e=1<<(0|ar[r+5004>>2])-1,function(A,e,r,i){A|=0,r|=0,i|=0,-1<(0|(e|=0))&&vb(0|ar[A+4>>2],255&e|0,0|br(0|ar[A+28>>2],0|ar[A+40>>2]));-1<(0|r)&&vb(0|ar[A+8>>2],255&r|0,0|br(0|ar[A+36>>2],0|ar[A+44>>2]));if((0|i)<=-1)return;vb(0|ar[A+12>>2],255&i|0,0|br(0|ar[A+36>>2],0|ar[A+44>>2]))}(A,1<<(0|ar[r+4996>>2])-1,e,e),0<(0|ar[(e=A+10364|0)>>2]))for(o=A+10360|0,t=0;a=(0|ar[o>>2])+(3*t|0)|0,c=-769&(cr[a>>0]|cr[a+1>>0]<<8),tr[a>>0]=c,tr[a+1>>0]=c>>8,(0|(t=t+1|0))<(0|ar[e>>2]););return ar[A+92>>2]=i,ar[A+88>>2]=(0|ar[r+5032>>2])-1&i,tr[A+100>>0]=0,ar[A+96>>2]=f?2:1,tr[A+10516>>0]=1,0|n}function Uo(A,e){A|=0;var r,i,f=0,n=0,t=0,o=0,a=0;if(ur=(i=ur)+112|0,r=i+24|0,t=(o=i)+104|0,function(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;ar[(A|=0)>>2]=e,ar[(i=A+4|0)>>2]=r,ar[(c=a=A+8|0)>>2]=0,ar[c+4>>2]=0,ar[(c=A+16|0)>>2]=0,r?(f=e+1|0,ar[A>>2]=f,n=0|cr[e>>0],o=r+-1|0,ar[i>>2]=o,n=0|db(0|n,0,56),t=D,ar[(l=a)>>2]=n,ar[l+4>>2]=t,o?(o=e+2|0,ar[A>>2]=o,f=0|cr[f>>0],l=r+-2|0,ar[i>>2]=l,f=0|db(0|f,0,48),f|=n,n=t|D,ar[(t=a)>>2]=f,ar[t+4>>2]=n,l?(t=e+3|0,ar[A>>2]=t,o=0|cr[o>>0],l=r+-3|0,ar[i>>2]=l,o=0|db(0|o,0,40),o|=f,f=n|D,ar[(n=a)>>2]=o,ar[n+4>>2]=f,l?(n=e+4|0,ar[A>>2]=n,t=0|cr[t>>0],l=r+-4|0,ar[i>>2]=l,f|=t,ar[(t=a)>>2]=o,ar[t+4>>2]=f,l?(t=e+5|0,ar[A>>2]=t,n=0|cr[n>>0],l=r+-5|0,ar[i>>2]=l,n=0|db(0|n,0,24),n|=o,f|=D,ar[(o=a)>>2]=n,ar[o+4>>2]=f,l?(o=e+6|0,ar[A>>2]=o,t=0|cr[t>>0],l=r+-6|0,ar[i>>2]=l,n|=t=0|db(0|t,0,16),f|=D,ar[(t=a)>>2]=n,ar[t+4>>2]=f,l?(t=e+7|0,ar[A>>2]=t,o=0|cr[o>>0],l=r+-7|0,ar[i>>2]=l,n|=o=0|db(0|o,0,8),f|=D,ar[(o=a)>>2]=n,ar[o+4>>2]=f,l=l?(ar[A>>2]=e+8,e=0|cr[t>>0],ar[i>>2]=r+-8,ar[(l=a)>>2]=n|e,ar[l+4>>2]=f,64-(l=0)|0):64-(l=8)|0,ar[c>>2]=l):(l=64-(l=16)|0,ar[c>>2]=l)):(l=64-(l=24)|0,ar[c>>2]=l)):(l=64-(l=32)|0,ar[c>>2]=l)):(l=64-(l=40)|0,ar[c>>2]=l)):(l=64-(l=48)|0,ar[c>>2]=l)):(l=64-(l=56)|0,ar[c>>2]=l)):(a=(a=64)-a|0,ar[c>>2]=a)}(o,0|ar[(e|=0)+20>>2],0|ar[e+24>>2]),tr[t>>0]=0,tr[(a=t+1|0)>>0]=0,tr[(f=t+2|0)>>0]=0,function(A,e){A|=0;var r=0;et(e=e|0,1),r=255&(0|At(e,6)),tr[A>>0]=r,r=255&(0|At(e,6)),tr[A+1>>0]=r,e=255+(0|At(e,3))&255,tr[A+2>>0]=e}(t,o),n=0|tr[t>>0],tr[A+377212>>0]=n,tr[A+377213>>0]=(n+-19&255)<2&1,tr[A+377214>>0]=(-8&n)<<24>>24==16&1,0|tr[a>>0])return Ba(A+548|0,e),ur=i,(e=0)|e;if((0|cr[f>>0])>(0|ar[A+375912>>2]))return Ba(A+548|0,e),ur=i,(e=0)|e;if((255&n)<32)return e=0|rr(A,o,e,t),ur=i,0|e;switch(n<<24>>24){case 32:return a=0|ze(A,o),Ba(A+548|0,e),ur=i,0|(e=a);case 33:return a=0|Le(A,o),Ba(A+548|0,e),ur=i,0|(e=a);case 34:return a=0|qe(A,o),Ba(A+548|0,e),ur=i,0|(e=a);case 40:case 39:a=0|function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0;r=0;for(;n=0|At(A,8),r=n+r|0,255==(0|n););f=0;for(;n=0|At(A,8),f=n+f|0,255==(0|n););if(ar[e>>2]=r,ar[e+4>>2]=f,132!=(0|r))return(e=0)|e;if(f=0|At(A,8),ar[(n=e+8|0)>>2]=f,!i)return 0|(e=1025);i=0==(0|ar[i+476>>2])?1:3,r=0;for(;;){switch(0|f){case 0:f=255&(0|At(A,8)),tr[e+12+(r<<4)>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+1>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+2>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+3>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+4>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+5>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+6>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+7>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+8>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+9>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+10>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+11>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+12>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+13>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+14>>0]=f,f=255&(0|At(A,8)),tr[e+12+(r<<4)+15>>0]=f;break;case 1:f=65535&(0|At(A,16)),or[e+60+(r<<1)>>1]=f;break;case 2:f=0|At(A,32),ar[e+68+(r<<2)>>2]=f}if((0|i)<=(0|(r=r+1|0))){r=0;break}f=0|ar[n>>2]}return 0|r}(o,r,n=n<<24>>24==40,0|ar[A+375388>>2]);do{if(a)20==(0|(f=0|ar[(n=A+84|0)>>2]))?(n=1001,f=19):(ar[n>>2]=f+1,n=a),ar[A+4+(f<<2)>>2]=n;else if(f=0|ar[A+377220>>2],!((0|ar[A+377216>>2])==(0|f)|1^n)){if(f=0|ar[f+-4>>2],(0|(n=0|ar[(o=f+10648|0)>>2]))==(0|ar[f+10652>>2])){Ar(f+10644|0,r);break}for(f=r,t=n+80|0;ar[n>>2]=ar[f>>2],f=f+4|0,(0|(n=n+4|0))<(0|t););ar[o>>2]=80+(0|ar[o>>2]);break}}while(0);return Ba(A+548|0,e),ur=i,0|(e=a);case 36:return tr[A+376211>>0]=1,Ba(A+548|0,e),ur=i,(e=0)|e;default:return Ba(A+548|0,e),ur=i,(e=0)|e}return 0}function So(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0;if(ur=(u=ur)+2048|0,l=u,1<(0|(e|=0)))for(s=e,b=0;b=b+1|0,3>>0;)s>>>=1;else b=0;if(a=5-b|0,c=1<>1]){f=0,s=10;break}d=b}if(8==(0|s))for(;d=l+((0|br(b,e))+k<<1)|0,or[d>>1]=h,(0|(b=b+1|0))!=(0|e);)s=8;else if(10==(0|s))for(;;){for(s=b=0;v=r+((0|br(b,e))+k<<1)|0,s=(0|br(0|or[v>>1],0|tr[35206+(b<>0]))+s|0,(0|(b=b+1|0))!=(0|d););if(s=s+64>>7,v=l+((0|br(f,e))+k<<1)|0,or[v>>1]=(0|s)<(0|t)?t:(0|s)<(0|w)?s:n,(0|(f=f+1|0))==(0|e))break;s=10}k=k+1|0}while((0|k)!=(0|e));if(o){h=c>>i,k=0;do{for(w=0|br(k,e),d=e;;){if(b=d+-1|0,(0|d)<=0){b=0,s=18;break}if(0|or[l+(b+w<<1)>>1]){f=0,s=20;break}d=b}if(18==(0|s))for(;ar[A+(b+w<<2)>>2]=h,(0|(b=b+1|0))!=(0|e);)s=18;else if(20==(0|s))for(;;){for(s=b=0;s=(0|br(0|or[l+(b+w<<1)>>1],0|tr[35206+(b<>0]))+s|0,(0|(b=b+1|0))!=(0|d););if(ar[A+(f+w<<2)>>2]=s+c>>i,(0|(f=f+1|0))==(0|e))break;s=20}k=k+1|0}while((0|k)!=(0|e));ur=u}else ur=u}else ur=u}function Oo(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(c=ur)+2048|0,t=c,a=1<<(o=20-(f|=0)|0)-1,1<(0|(r|=0)))for(u=r,l=0;l=l+1|0,3>>0;)u>>>=1;else l=0;if(n=5-l|0,k=0<(0|r)){d=0;do{for(s=r;;){if(l=s+-1|0,(0|s)<=0){l=0,u=7;break}if(w=i+((0|br(l,r))+d<<1)|0,0|or[w>>1]){b=0,u=9;break}s=l}if(7==(0|u))for(;w=t+((0|br(l,r))+d<<1)|0,((or[w>>1]=0)|(l=l+1|0))!=(0|r);)u=7;else if(9==(0|u))for(;;){for(u=l=0;w=i+((0|br(l,r))+d<<1)|0,u=(0|br(0|or[w>>1],0|tr[35206+(l<>0]))+u|0,(0|(l=l+1|0))!=(0|s););if(h=u+64>>7,w=t+((0|br(b,r))+d<<1)|0,or[w>>1]=(0|h)<-32768?-32768:65535&((0|h)<32767?h:32767),(0|(b=b+1|0))==(0|r))break;u=9}d=d+1|0}while((0|d)!=(0|r));if(k){h=(f=1<>o,i=0;do{for(k=0|br(i,r),d=r;;){if(l=d+-1|0,(0|d)<=0){u=18;break}if(0|or[t+(l+k<<1)>>1]){u=19;break}d=l}if(18==(0|u))for(u=0|br(i,e),l=0;d=(0|cr[(k=A+(l+u)|0)>>0])+w|0,tr[k>>0]=(0|d)<0?0:255&((0|d)<(0|f)?d:h),(0|(l=l+1|0))!=(0|r););else if(19==(0|u)){s=0|br(i,e),b=0;do{for(u=l=0;u=(0|br(0|or[t+(l+k<<1)>>1],0|tr[35206+(l<>0]))+u|0,(0|(l=l+1|0))!=(0|d););u=(0|cr[(l=A+(b+s)|0)>>0])+(u+a>>o)|0,tr[l>>0]=(0|u)<0?0:255&((0|u)<(0|f)?u:h),b=b+1|0}while((0|b)!=(0|r))}i=i+1|0}while((0|i)!=(0|r));ur=c}else ur=c}else ur=c}function zo(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(c=ur)+2048|0,t=c,a=1<<(o=20-(f|=0)|0)-1,1<(0|(r|=0)))for(u=r,l=0;l=l+1|0,3>>0;)u>>>=1;else l=0;if(n=5-l|0,k=0<(0|r)){d=0;do{for(s=r;;){if(l=s+-1|0,(0|s)<=0){l=0,u=7;break}if(w=i+((0|br(l,r))+d<<1)|0,0|or[w>>1]){b=0,u=9;break}s=l}if(7==(0|u))for(;w=t+((0|br(l,r))+d<<1)|0,((or[w>>1]=0)|(l=l+1|0))!=(0|r);)u=7;else if(9==(0|u))for(;;){for(u=l=0;w=i+((0|br(l,r))+d<<1)|0,u=(0|br(0|or[w>>1],0|tr[35206+(l<>0]))+u|0,(0|(l=l+1|0))!=(0|s););if(h=u+64>>7,w=t+((0|br(b,r))+d<<1)|0,or[w>>1]=(0|h)<-32768?-32768:65535&((0|h)<32767?h:32767),(0|(b=b+1|0))==(0|r))break;u=9}d=d+1|0}while((0|d)!=(0|r));if(k){h=(f=1<>o,i=0;do{for(k=0|br(i,r),d=r;;){if(l=d+-1|0,(0|d)<=0){u=18;break}if(0|or[t+(l+k<<1)>>1]){u=19;break}d=l}if(18==(0|u))for(u=0|br(i,e),l=0;d=(0|lr[(k=A+(l+u<<1)|0)>>1])+w|0,or[k>>1]=(0|d)<0?0:65535&((0|d)<(0|f)?d:h),(0|(l=l+1|0))!=(0|r););else if(19==(0|u)){s=0|br(i,e),b=0;do{for(u=l=0;u=(0|br(0|or[t+(l+k<<1)>>1],0|tr[35206+(l<>0]))+u|0,(0|(l=l+1|0))!=(0|d););u=(0|lr[(l=A+(b+s<<1)|0)>>1])+(u+a>>o)|0,or[l>>1]=(0|u)<0?0:65535&((0|u)<(0|f)?u:h),b=b+1|0}while((0|b)!=(0|r))}i=i+1|0}while((0|i)!=(0|r));ur=c}else ur=c}else ur=c}function jo(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(t=ur)+2048|0,n=t,1<(0|(e|=0))){for(o=e,u=0;;){if(!(3>>0)){o=e,a=0;break}o>>>=1,u=u+1|0}for(;3>>0;)o>>>=1,a=a+1|0;for(b=a+7|0,c=1<>>0)){d=u,h=l,k=b;break}a>>>=1}}else c=o=0,d=-1,h=32,k=6;if(f=5-o|0,b=0<(0|e)){o=0;do{u=0;do{for(s=u<>1],0|tr[35206+(s<<5)+a>>0]))+l|0,(0|(a=a+1|0))!=(0|e););w=n+((0|br(u,e))+o<<1)|0,or[w>>1]=l+c>>d,u=u+1|0}while((0|u)!=(0|e));o=o+1|0}while((0|o)!=(0|e));if(b){l=0;do{u=0|br(l,e),c=0;do{for(b=c<>1],0|tr[35206+(b<<5)+o>>0]))+a|0,(0|(o=o+1|0))!=(0|e););or[A+(c+u<<1)>>1]=a+h>>k,c=c+1|0}while((0|c)!=(0|e));l=l+1|0}while((0|l)!=(0|e));ur=t}else ur=t}else ur=t}function Ho(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;if(ur=(t=ur)+2176|0,n=t+128|0,f=0<(0|(e|=0))){for(w=0==(0|(h=e>>>1)),v=e>>>2,m=7>>0,b=(l=t)+64|(k=0);;){if(a=0|br(k,i),!w)for(c=b,o=0;u=r+(o+a<<1)|0,s=r+((d=o+h|0)+a<<1)|0,or[c+(o<<1)>>1]=(0|lr[s>>1])+(0|lr[u>>1]),or[c+(d<<1)>>1]=(0|lr[u>>1])-(0|lr[s>>1]),(0|(o=o+1|0))!=(0|h););if(m)for(s=v,d=h,u=l,l=b;;){c=l,b=u,a=0;do{for(o=0;p=c+((y=o+a|0)<<1)|0,Z=c+((g=y+s|0)<<1)|0,or[b+(y<<1)>>1]=(0|lr[Z>>1])+(0|lr[p>>1]),or[b+(g<<1)>>1]=(0|lr[p>>1])-(0|lr[Z>>1]),(0|(o=o+1|0))!=(0|s););a=a+d|0}while((0|a)<(0|e));if((0|(s>>=1))<=1)break;y=l,d>>=1,l=u,u=y}else u=b;for(a=u,c=0|br(k,e),o=0;Z=0|or[a+(o<<1)>>1],p=0|or[a+((y=1|o)<<1)>>1],or[n+(o+c<<1)>>1]=p+Z,or[n+(y+c<<1)>>1]=Z-p,(0|(o=o+2|0))<(0|e););if((0|(k=k+1|0))==(0|e))break;b=u}if(f){for(w=0==(0|(h=e>>>1)),v=e>>>2,m=7>>0,k=0;;){if(!w)for(a=u,o=0;Z=n+((0|br(o,e))+k<<1)|0,Z=0|or[Z>>1],p=n+((0|br(y=o+h|0,e))+k<<1)|0,p=0|or[p>>1],or[a+(o<<1)>>1]=p+Z,or[a+(y<<1)>>1]=Z-p,(0|(o=o+1|0))!=(0|h););if(m)for(s=v,d=h,c=l,l=u;;){u=l,b=c,a=0;do{for(o=0;Z=u+((g=o+a|0)<<1)|0,p=u+((y=g+s|0)<<1)|0,or[b+(g<<1)>>1]=(0|lr[p>>1])+(0|lr[Z>>1]),or[b+(y<<1)>>1]=(0|lr[Z>>1])-(0|lr[p>>1]),(0|(o=o+1|0))!=(0|s););a=a+d|0}while((0|a)<(0|e));if((0|(s>>=1))<=1)break;y=l,d>>=1,l=c,c=y}else c=u;for(a=c,o=0;Z=a+(o<<1)|0,p=a+((y=1|o)<<1)|0,g=A+((0|br(o,e))+k<<1)|0,or[g>>1]=(0|lr[p>>1])+(0|lr[Z>>1]),y=A+((0|br(y,e))+k<<1)|0,or[y>>1]=(0|lr[Z>>1])-(0|lr[p>>1]),(0|(o=o+2|0))<(0|e););if((0|(k=k+1|0))==(0|e))break;u=c}ur=t}else ur=t}else ur=t}function xo(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,a|=0,c|=0;var l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;switch(d=0|ar[9768+((o|=0)<<2)>>2],b=(u=0|ar[9768+(a<<2)>>2])+n+(s=0|ar[9784+(a<<2)>>2])|0,l=c+-8|0,0|o){case 0:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(v=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+(0|br(c,i))+v|0;or[d>>1]=0|cr[k>>0],(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0,k=k+1|0;c=c+1|0}while((0|c)!=(0|h));break;case 1:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(m=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+(0|br(c,i))+m|0;v=(v=(cr[(k=(g=k)+1|0)>>0]<<2)-(0|cr[g>>0])+(0|br(0|cr[g+2>>0],-10))|0)+(58*(0|cr[g+3>>0])|0)+(17*(0|cr[g+4>>0])|0)+(0|br(0|cr[g+5>>0],-5))|0,or[d>>1]=v+(0|cr[g+6>>0])>>l,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h));break;case 2:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(g=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+(0|br(c,i))+g|0;m=(cr[(k=(m=k)+1|0)>>0]<<2)-(0|cr[m>>0])+(40*((0|cr[m+4>>0])+(0|cr[m+3>>0])|0)|0)+(cr[m+6>>0]<<2)-(0|cr[m+7>>0])+(0|br((0|cr[m+5>>0])+(0|cr[m+2>>0])|0,-11))>>l&65535,or[d>>1]=m,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h));break;case 3:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(w=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+(0|br(c,i))+w|0;m=(m=(0|br(0|cr[(k=(g=k)+1|0)>>0],-5))+(0|cr[g>>0])|0)+(17*(0|cr[g+2>>0])|0)+(58*(0|cr[g+3>>0])|0)+(0|br(0|cr[g+4>>0],-10))|0,or[d>>1]=m+(cr[g+5>>0]<<2)-(0|cr[g+6>>0])>>l,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h))}switch(h=0==(0|o)?l:6,0|a){case 0:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;or[s>>1]=0|or[d>>1],(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0,d=d+2|0;k=k+1|0}while((0|k)!=(0|f));return;case 1:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;o=(o=(or[(d=(a=d)+2|0)>>1]<<2)-(0|or[a>>1])+(0|br(0|or[a+4>>1],-10))|0)+(58*(0|or[a+6>>1])|0)+(17*(0|or[a+8>>1])|0)+(0|br(0|or[a+10>>1],-5))|0,or[s>>1]=o+(0|or[a+12>>1])>>h,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;case 2:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;a=(or[(d=(a=d)+2|0)>>1]<<2)-(0|or[a>>1])+(40*((0|or[a+8>>1])+(0|or[a+6>>1])|0)|0)+(or[a+12>>1]<<2)-(0|or[a+14>>1])+(0|br((0|or[a+10>>1])+(0|or[a+4>>1])|0,-11))>>h&65535,or[s>>1]=a,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;case 3:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;o=(o=(0|br(0|or[(d=(a=d)+2|0)>>1],-5))+(0|or[a>>1])|0)+(17*(0|or[a+4>>1])|0)+(58*(0|or[a+6>>1])|0)+(0|br(0|or[a+8>>1],-10))|0,or[s>>1]=o+(or[a+10>>1]<<2)-(0|or[a+12>>1])>>h,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;default:return}}function Po(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,a|=0,c|=0;var l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;switch(d=0|ar[9768+((o|=0)<<2)>>2],b=(u=0|ar[9768+(a<<2)>>2])+n+(s=0|ar[9784+(a<<2)>>2])|0,l=c+-8|0,0|o){case 0:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(v=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+((0|br(c,i))<<1)+(v<<1)|0;or[d>>1]=0|or[k>>1],(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0,k=k+2|0;c=c+1|0}while((0|c)!=(0|h));break;case 1:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(m=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+((0|br(c,i))<<1)+(m<<1)|0;v=(v=(lr[(k=(g=k)+2|0)>>1]<<2)-(0|lr[g>>1])+(0|br(0|lr[g+4>>1],-10))|0)+(58*(0|lr[g+6>>1])|0)+(17*(0|lr[g+8>>1])|0)+(0|br(0|lr[g+10>>1],-5))|0,or[d>>1]=v+(0|lr[g+12>>1])>>l,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h));break;case 2:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(g=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+((0|br(c,i))<<1)+(g<<1)|0;m=(lr[(k=(m=k)+2|0)>>1]<<2)-(0|lr[m>>1])+(40*((0|lr[m+8>>1])+(0|lr[m+6>>1])|0)|0)+(lr[m+12>>1]<<2)-(0|lr[m+14>>1])+(0|br((0|lr[m+10>>1])+(0|lr[m+4>>1])|0,-11))>>l&65535,or[d>>1]=m,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h));break;case 3:if((0|(c=0-u|0))<(0|(h=s+n|0))&&(w=0-d|0,0<(0|f)))do{for(d=t+(c+u<<1)|(s=0),k=r+((0|br(c,i))<<1)+(w<<1)|0;m=(m=(0|br(0|lr[(k=(g=k)+2|0)>>1],-5))+(0|lr[g>>1])|0)+(17*(0|lr[g+4>>1])|0)+(58*(0|lr[g+6>>1])|0)+(0|br(0|lr[g+8>>1],-10))|0,or[d>>1]=m+(lr[g+10>>1]<<2)-(0|lr[g+12>>1])>>l,(0|(s=s+1|0))!=(0|f);)d=d+(b<<1)|0;c=c+1|0}while((0|c)!=(0|h))}switch(h=0==(0|o)?l:6,0|a){case 0:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;or[s>>1]=0|or[d>>1],(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0,d=d+2|0;k=k+1|0}while((0|k)!=(0|f));return;case 1:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;o=(o=(or[(d=(a=d)+2|0)>>1]<<2)-(0|or[a>>1])+(0|br(0|or[a+4>>1],-10))|0)+(58*(0|or[a+6>>1])|0)+(17*(0|or[a+8>>1])|0)+(0|br(0|or[a+10>>1],-5))|0,or[s>>1]=o+(0|or[a+12>>1])>>h,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;case 2:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;a=(or[(d=(a=d)+2|0)>>1]<<2)-(0|or[a>>1])+(40*((0|or[a+8>>1])+(0|or[a+6>>1])|0)|0)+(or[a+12>>1]<<2)-(0|or[a+14>>1])+(0|br((0|or[a+10>>1])+(0|or[a+4>>1])|0,-11))>>h&65535,or[s>>1]=a,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;case 3:if(!(0<(0|f)&0<(0|n)))return;k=0;do{for(s=A+(k<<1)|(c=0),d=t+((0|br(k,b))<<1)|0;o=(o=(0|br(0|or[(d=(a=d)+2|0)>>1],-5))+(0|or[a>>1])|0)+(17*(0|or[a+4>>1])|0)+(58*(0|or[a+6>>1])|0)+(0|br(0|or[a+8>>1],-10))|0,or[s>>1]=o+(or[a+10>>1]<<2)-(0|or[a+12>>1])>>h,(0|(c=c+1|0))!=(0|n);)s=s+(e<<1)|0;k=k+1|0}while((0|k)!=(0|f));return;default:return}}function Lo(A,e){var r,i=0,f=0;if(e|=0)return 0|(f=1);if(e=0|ar[(A|=0)+12>>2],r=i=0|ar[A+8>>2],(f=e-i>>2)>>>0<(0|ar[A>>2])>>>0)return 0|(f=1);if((0|e)==(0|i))return(f=0)|f;for(e=0;;){if(A=0|ar[r+(e<<2)>>2],0==(0|tr[A+100>>0])&&0==(0|ar[A+96>>2])){e=1,i=7;break}if(f>>>0<=(e=e+1|0)>>>0){e=0,i=7;break}}return 7==(0|i)?0|e:0}function Ko(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0;A:do{if(i){if(n=A+8|0,(0|(t=0|ar[A+12>>2]))==(0|(A=o=0|ar[n>>2])))return 0|(r=-1);for(f=t-o>>2,i=0;a=0|ar[A+(i<<2)>>2],!((0|ar[a+92>>2])==(0|e)&&(0|ar[a+104>>2])>(0|r)&&2==(0|ar[a+96>>2]));)if(f>>>0<=(i=i+1|0)>>>0){f=t,i=o;break A}return 0|i}a=0|ar[(n=A+8|0)>>2],f=0|ar[A+12>>2],A=i=a}while(0);if((0|f)==(0|i))return 0|(a=-1);for(i=0;;){if(a=0|ar[A+(i<<2)>>2],(0|ar[a+92>>2])==(0|e)&&(0|ar[a+104>>2])>(0|r)&&0|ar[a+96>>2]){A=14;break}if((i=i+1|0)>>>0>=f-(0|ar[n>>2])>>2>>>0){i=-1,A=14;break}}return 14==(0|A)?0|i:0}function qo(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0;A:do{if(i){if(n=A+8|0,(0|(t=0|ar[A+12>>2]))==(0|(A=o=0|ar[n>>2])))return 0|(r=-1);for(f=t-o>>2,i=0;a=0|ar[A+(i<<2)>>2],!((0|ar[a+88>>2])==(0|e)&&(0|ar[a+104>>2])>(0|r)&&2==(0|ar[a+96>>2]));)if(f>>>0<=(i=i+1|0)>>>0){f=t,i=o;break A}return 0|i}a=0|ar[(n=A+8|0)>>2],f=0|ar[A+12>>2],A=i=a}while(0);if((0|f)==(0|i))return 0|(a=-1);for(i=0;;){if(a=0|ar[A+(i<<2)>>2],(0|ar[a+88>>2])==(0|e)&&(0|ar[a+104>>2])>(0|r)&&0|ar[a+96>>2]){A=14;break}if((i=i+1|0)>>>0>=f-(0|ar[n>>2])>>2>>>0){i=-1,A=14;break}}return 14==(0|A)?0|i:0}function $o(A,e){e|=0;var r,i=0;if((0|(i=0|ar[(A|=0)+12>>2]))==(0|(r=A=0|ar[A+8>>2])))return 0|(e=-1);for(i=i-A>>2,A=0;;){if((0|ar[ar[r+(A<<2)>>2]>>2])==(0|e)){i=5;break}if(i>>>0<=(A=A+1|0)>>>0){A=-1,i=5;break}}return 5==(0|i)?0|A:0}function Aa(A){var e,r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if((0|(i=0|ar[(r=(A|=0)+20|0)>>2]))==(0|(n=0|ar[(f=A+24|0)>>2]))&&sr(36524,36554,147,36561),1<(l=n-i>>2)>>>0)for(t=(n=0)|ar[92+(0|ar[i>>2])>>2],o=1;;){if(n=(c=(0|(a=0|ar[92+(0|ar[i+(o<<2)>>2])>>2]))<(0|t))?o:n,l>>>0<=(o=o+1|0)>>>0){l=n;break}t=c?a:t}else l=0;n=0|ar[(c=A+36|0)>>2],u=(0|ar[A+40>>2])-n|0,a=0|ar[(o=A+48|0)>>2],(0|(0==(0|u)?0:(u<<8)-1|0))==((t=0|ar[(e=A+52|0)>>2])+a|0)&&(function(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(s=ur)+32|0,c=s+4|0,a=s,1023<(r=0|ar[(e=16+(A|=0)|0)>>2])>>>0){ar[e>>2]=r+-1024,c=0|ar[(l=A+4|0)>>2],b=0|ar[c>>2],c=c+4|0,ar[l>>2]=c,o=0|ar[(u=A+8|0)>>2],t=0|ar[(a=A+12|0)>>2],e=t,n=o;do{if((0|o)==(0|t)){if(r=0|ar[A>>2],(i=r)>>>0>>0){f=(e=c)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|c,0|e),0|ar[l>>2]):c,A=f+(r<<2)|0,ar[u>>2]=A,ar[l>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),f=0|hu(e<<2),t=i=(n=f)+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|c)==(0|o))e=t;else{for(e=t,r=c;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[l>>2]=t,ar[u>>2]=e,ar[a>>2]=f,r&&(vu(r),e=0|ar[u>>2])}else e=o}while(0);return ar[e>>2]=b,ar[u>>2]=4+(0|ar[u>>2]),ur=s}if(e=0|ar[(b=A+8|0)>>2],f=e-(0|ar[(u=A+4|0)>>2])|0,r=0|ar[(l=A+12|0)>>2],i=r-(0|ar[A>>2])|0,i>>>0<=f>>>0){for(e=0==(0|(e=i>>1))?1:e,ar[c+12>>2]=0,ar[c+16>>2]=A+12,1073741823>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),i=0|hu(e<<2),ar[c>>2]=i,t=i+(f>>2<<2)|0,ar[(o=c+8|0)>>2]=t,ar[(n=c+4|0)>>2]=t,ar[(t=c+12|0)>>2]=i+(e<<2),f=0|hu(4096),ar[a>>2]=f,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(c,a),f=0|ar[b>>2];e=0|ar[u>>2],(0|f)!=(0|e);)ea(c,a=f+-4|0),f=a;return r=e,i=0|ar[A>>2],ar[A>>2]=ar[c>>2],ar[c>>2]=i,ar[u>>2]=ar[n>>2],ar[n>>2]=r,e=0|ar[b>>2],ar[b>>2]=ar[o>>2],ar[o>>2]=e,A=0|ar[l>>2],ar[l>>2]=ar[t>>2],ar[t>>2]=A,(0|e)!=(0|f)&&(ar[o>>2]=e+(~((e+-4-r|0)>>>2)<<2)),0|i&&vu(i),ur=s}if((0|r)!=(0|e))return b=0|hu(4096),ar[c>>2]=b,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(A,c),ur=s;a=0|hu(4096),ar[c>>2]=a,function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=4+(A|=0)|0)>>2],b=0|ar[A>>2],n=b;do{if((0|r)==(0|b)){if(f=0|ar[(b=A+8|0)>>2],l=0|ar[(u=A+12|0)>>2],f>>>0<(i=l)>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),a=0|hu(n<<2),l=i=(c=a)+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}(A,c),a=0|ar[u>>2],c=0|ar[a>>2],a=a+4|0,ar[u>>2]=a,o=0|ar[b>>2],t=0|ar[l>>2],e=t,n=o;do{if((0|o)==(0|t)){if(r=0|ar[A>>2],(i=r)>>>0>>0){f=(e=a)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|a,0|e),0|ar[u>>2]):a,A=f+(r<<2)|0,ar[b>>2]=A,ar[u>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),f=0|hu(e<<2),t=i=(n=f)+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|a)==(0|o))e=t;else{for(e=t,r=a;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[u>>2]=t,ar[b>>2]=e,ar[l>>2]=f,r&&(vu(r),e=0|ar[b>>2])}else e=o}while(0);ar[e>>2]=c,ar[b>>2]=4+(0|ar[b>>2]),ur=s}(A+32|0),a=0|ar[o>>2],t=0|ar[e>>2],n=0|ar[c>>2]),ar[(0|ar[n+((u=t+a|0)>>>10<<2)>>2])+((1023&u)<<2)>>2]=ar[i+(l<<2)>>2],ar[e>>2]=t+1,ar[(0|ar[r>>2])+(l<<2)>>2]=ar[(0|ar[f>>2])-4>>2],ar[f>>2]=(0|ar[f>>2])-4}function ea(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=(A|=0)+4|0)>>2],n=b=0|ar[A>>2];do{if((0|r)==(0|b)){if((f=0|ar[(b=A+8|0)>>2])>>>0<(i=l=0|ar[(u=A+12|0)>>2])>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),l=i=(c=a=0|hu(n<<2))+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}function ra(A){var e,r=0;if(r=(A|=0)+24|0,(0|ar[(e=A+20|0)>>2])==(0|ar[r>>2]))return(r=0)|r;for(;Aa(A),(0|ar[e>>2])!=(0|ar[r>>2]););return 0|(A=1)}function ia(A,e,r,i,f,n,t){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0;ur=(u=ur)+16|0,a=u,l=(A|=0)+8|0,s=0|ar[(c=A+12|0)>>2],o=k=0|ar[l>>2],b=s;A:do{if((0|s)==(0|k))d=-1,k=s;else{for(w=s-k>>2,d=0;h=0|ar[o+(d<<2)>>2],0!=(0|tr[h+100>>0])||0!=(0|ar[h+96>>2]);)if(w>>>0<=(d=d+1|0)>>>0){d=-1;break A}oa(h),b=0|ar[c>>2],k=0|ar[l>>2],s=b}}while(0);return(0|d)==((w=s-k>>2)+-1|0)||w>>>0<=(0|ar[A+4>>2])>>>0||(v=0|ar[b+-4>>2],0!=(0|tr[v+100>>0]))||0!=(0|ar[v+96>>2])?b=s:((s=0|ar[b+-4>>2])&&(aa(s),vu(s),b=0|ar[c>>2]),b=b+-4|0,ar[c>>2]=b),-1==(0|d)&&(d=b-(0|ar[l>>2])>>2,na(b=0|hu(10624)),ar[a>>2]=b,(s=0|ar[c>>2])>>>0<(0|ar[A+16>>2])>>>0?(ar[s>>2]=b,ar[c>>2]=4+(0|ar[c>>2])):function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=4+(A|=0)|0,n=0|ar[A>>2],t=(0|ar[f>>2])-n|0,1073741823<(o=1+(i=t>>2)|0)>>>0&&zl();c=(0|ar[(l=A+8|0)>>2])-n|0,a=c>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t);if(ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),!n)return;vu(n)}(l,a)),b=0|ar[(0|ar[l>>2])+(d<<2)>>2],(s=0|ar[e+476>>2])>>>0<4?(ta(b,0|ar[e+484>>2],0|ar[e+488>>2],s,e,1,r,0,i,f,n,t),tr[b+10516>>0]=0,ur=u,0|d):(sr(44456,36554,259,36599),0)}function fa(A){var e,r;e=(A|=0)+36|0,r=A+48|0,ar[(A=A+52|0)>>2]=(0|ar[A>>2])-1,A=1+(0|ar[r>>2])|0,(ar[r>>2]=A)>>>0<=2047||(vu(0|ar[ar[e>>2]>>2]),ar[e>>2]=4+(0|ar[e>>2]),ar[r>>2]=(0|ar[r>>2])-1024)}function na(A){var e,r,i=0;ar[(A|=0)+48>>2]=0,ar[A+52>>2]=0,ar[A+56>>2]=0,ar[A+700>>2]=0,ar[A+704>>2]=0,ar[A+708>>2]=0,ar[(i=A+736|0)>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,$a(A+764|(ar[i+20>>2]=0)),Ia(A+5932|0),tr[A+10518>>0]=0,tr[A+10519>>0]=0,vb(A+10340|(tr[A+10520>>0]=0),0,140),ar[A>>2]=-1,ar[A+104>>2]=0,ar[A+10332>>2]=0,ar[A+10336>>2]=0,ar[A+10512>>2]=0,ar[A+4>>2]=0,ar[A+60>>2]=0,ar[A+8>>2]=0,ar[A+64>>2]=0,ar[A+12>>2]=0,ar[A+68>>2]=0,ar[A+28>>2]=0,i=A+10480|(ar[A+24>>2]=0),ar[A+10524>>2]=0,ar[i>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,ar[i+20>>2]=0,tr[A+10516>>0]=2,ar[A+88>>2]=-1,ar[A+92>>2]=-1,ar[A+96>>2]=0,tr[A+100>>0]=0,ar[(i=A+10528|0)>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,e=A+10548|0,pA(0|(e|=0),0),r=A+10576|0,dA(0|(r|=0),0)}function ta(A,e,r,i,f,n,t,o,a,c,l,u){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0;var b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;switch(ur=(s=ur)+48|0,b=s,(f|=0)||sr(36749,36663,240,36753),hb(0|(h=A+764|0),0|f,4717),(0|h)!=(0|f)&&Ke(A+5484|0,0|ar[f+4720>>2],0|ar[f+4724>>2]),hb(A+5496|0,f+4732|0,436),oa(A),k=0|ar[14326],ar[14326]=k+1,ar[A>>2]=k,ar[A+104>>2]=2147483647,ar[A+10332>>2]=t,ar[A+10336>>2]=o,ar[A+20>>2]=i,ar[A+24>>2]=e,ar[A+28>>2]=r,ar[(k=A+32|0)>>2]=e,ar[(h=A+36|0)>>2]=r,ar[A+10488>>2]=l,ar[(l=A+10480|0)>>2]=a,ar[l+4>>2]=c,0|i){case 3:case 0:d=m=1;break;case 1:d=2,p=8;break;case 2:d=1,p=8;break;default:sr(44456,36663,276,36753)}switch(8==(0|p)&&(m=2),0|i){case 1:w=(e+1|0)/(ar[b>>2]=2)|0,ar[k>>2]=w,v=(r+1|0)/2|0,ar[h>>2]=v;break;case 2:ar[b>>2]=3,w=(e+1|0)/2|0,ar[k>>2]=w,v=r;break;case 3:ar[b>>2]=4,w=e,v=r;break;case 0:ar[b>>2]=1,ar[k>>2]=0,v=w=ar[h>>2]=0;break;default:sr(55739,36663,302,36753)}ar[b+4>>2]=e,ar[b+8>>2]=r,ar[b+12>>2]=16,i=0|ar[f+496>>2],a=0|ar[f+500>>2],k=0|ar[f+504>>2],h=0|ar[f+508>>2],e=e-(0|br(y=a+i|0,m))|0,ar[A+72>>2]=e,l=r-(0|br(c=h+k|0,d))|0,ar[A+76>>2]=l,ar[A+80>>2]=w-y,ar[A+84>>2]=v-c,c=0|br(i,m),ar[b+16>>2]=c,a=0|br(a,m),ar[b+20>>2]=a,a=0|br(k,d),ar[b+24>>2]=a,m=0|br(h,d),ar[b+28>>2]=m,ar[b+32>>2]=e,ar[b+36>>2]=l,tr[A+16>>0]=8<(0|ar[f+4996>>2])&1,l=8<(0|ar[f+5004>>2])&1,tr[A+17>>0]=l,tr[A+18>>0]=l,d=(l=0==(0|t))?0:0|ar[t+544>>2];do{if(o){if(d=0|ar[o+3060>>2],u){if(y=0|ar[o+3064>>2],l=A+10504|0,ar[A+10512>>2]=y){ar[l>>2]=0,ar[A+10508>>2]=0;break}Z=0|ar[(p=7736)>>2],p=0|ar[p+4>>2],ar[(g=l)>>2]=Z,ar[g+4>>2]=p,g=d,p=25;break}p=24}else p=l|1^u?24:(Z=0|ar[(p=t+536|0)>>2],p=0|ar[p+4>>2],ar[(g=A+10504|0)>>2]=Z,ar[g+4>>2]=p,g=d,25)}while(0);if(24==(0|p)&&(Z=0|ar[(y=7736)>>2],y=0|ar[y+4>>2],ar[(g=A+10504|0)>>2]=Z,ar[g+4>>2]=y,g=d,p=25),25==(0|p)&&0|Z&&(y=0==(0|Pb[7&Z](t,b,A,g)),t=(0|ar[A+4>>2])+c+(0|br(0|ar[A+40>>2],a))|0,ar[A+60>>2]=t,t=0|br(0|ar[A+44>>2],k),ar[A+64>>2]=(0|ar[A+8>>2])+i+t,ar[A+68>>2]=(0|ar[A+12>>2])+i+t,y))return ur=s,0|(y=7);do{if(n){i=0|ar[(e=f+5112|0)>>2],k=0|ar[(w=f+5116|0)>>2],h=0|ar[(v=f+5108|0)>>2],a=0|br(k,i),c=A+10404|0,d=0|ar[(l=A+10400|0)>>2];do{if((0|a)!=(0|ar[c>>2])){if(Bc(d),d=0|yc(a),ar[l>>2]=d){ar[c>>2]=a,p=32;break}r=ar[c>>2]=0;break}p=32}while(0);32==(0|p)&&(ar[A+10412>>2]=i,ar[A+10416>>2]=k,ar[A+10408>>2]=h,r=0!=(0|d)),h=0|ar[e>>2],k=0|ar[w>>2],i=0|ar[v>>2],a=0|br(k,h),c=A+10424|0,d=0|ar[(l=A+10420|0)>>2];do{if((0|a)!=(0|ar[c>>2])){if(Bc(d),d=0|yc(a),ar[l>>2]=d){ar[c>>2]=a,p=37;break}d=ar[c>>2]=0;break}p=37}while(0);37==(0|p)&&(ar[A+10432>>2]=h,ar[A+10436>>2]=k,ar[A+10428>>2]=i,d=0!=(0|d)),e=r&d,l=A+10360|0,i=0|ar[(r=f+5052|0)>>2],k=0|ar[(v=f+5060|0)>>2],h=0|ar[(w=f+5036|0)>>2],a=0|br(k,i),c=A+10364|0;do{if((0|a)!=(0|ar[c>>2])){if(Bc(0|ar[l>>2]),d=0|yc(3*a|0),ar[l>>2]=d){ar[c>>2]=a,p=43;break}d=ar[c>>2]=0;break}d=0|ar[l>>2],p=43}while(0);43==(0|p)&&(ar[A+10372>>2]=i,ar[A+10376>>2]=k,ar[A+10368>>2]=h,d=0!=(0|d)),h=e&d,i=(0|ar[w>>2])-2|0,k=ar[r>>2]<>2]<>2])){if(Bc(0|ar[l>>2]),d=0|yc(12*a|0),ar[l>>2]=d){ar[c>>2]=a,p=49;break}d=ar[c>>2]=0;break}d=0|ar[l>>2],p=49}while(0);49==(0|p)&&(ar[A+10392>>2]=k,ar[A+10396>>2]=i,ar[A+10388>>2]=2,d=0!=(0|d)),e=h&d,i=0|ar[f+5088>>2],k=0|ar[f+5092>>2],h=0|ar[f+5100>>2],a=0|br(k,i),c=A+10444|0,d=0|ar[(l=A+10440|0)>>2];do{if((0|a)!=(0|ar[c>>2])){if(Bc(d),d=0|yc(a),ar[l>>2]=d){ar[c>>2]=a,p=54;break}d=ar[c>>2]=0;break}p=54}while(0);54==(0|p)&&(ar[A+10452>>2]=i,ar[A+10456>>2]=k,ar[A+10448>>2]=h,d=0!=(0|d)),h=e&d,i=(3+(0|ar[f+484>>2])|0)/4|0,k=(3+(0|ar[f+488>>2])|0)/4|0,a=0|br(k,i),c=A+10464|0,d=0|ar[(l=A+10460|0)>>2];do{if((0|a)!=(0|ar[c>>2])){if(Bc(d),d=0|yc(a),ar[l>>2]=d){ar[c>>2]=a,p=59;break}d=ar[c>>2]=0;break}p=59}while(0);if(59==(0|p)&&(ar[A+10472>>2]=i,ar[A+10476>>2]=k,ar[A+10468>>2]=2,d=0!=(0|d)),r=h&d,h=A+10340|0,(0|(d=0|ar[(e=A+10344|0)>>2]))==(0|ar[f+5072>>2])){if(r)break;return ur=s,0|(d=7)}if(a=0|ar[(w=A+10524|0)>>2]){if(0|(d=0|ar[(l=a+-4|0)>>2]))for(d=a+(80*d|0)|0;Jn(d=d+-80|0),(0|d)!=(0|a););mu(l),d=0|ar[e>>2]}i=0|ar[f+5056>>2],k=0|ar[f+5064>>2],c=0|ar[f+5040>>2],l=0|br(k,i);do{if((0|l)!=(0|d)){if(Bc(0|ar[h>>2]),d=0|yc(24*l|0),ar[h>>2]=d){ar[e>>2]=l,a=d,p=71;break}l=d=ar[e>>2]=0;break}a=0|ar[h>>2],l=d,p=71}while(0);if(71==(0|p)&&(ar[A+10352>>2]=i,ar[A+10356>>2]=k,ar[A+10348>>2]=c,d=0!=(0|a)),a=r&d,c=0|wu(53687091>>0|4294967291<(c=80*l|0)>>>0?-1:c+4|0),ar[c>>2]=l,c=c+4|0,0|l)for(d=c+(80*l|0)|0,l=c;Dn(l),(0|(l=l+80|0))!=(0|d););if(ar[w>>2]=c,!a)return ur=s,0|(y=7)}}while(0);return ur=s,(y=0)|y}function oa(A){var e,r=0,i=0,f=0,n=0,t=0,o=0;if(0|ar[(f=(A|=0)+4|0)>>2]&&((r=0|ar[A+10512>>2])?(o=0|ar[A+10336>>2],ns[127&r](o,A,0|ar[o+3060>>2])):(i=(r=0|ar[A+10332>>2])?0|ar[r+544>>2]:0,ns[127&ar[A+10508>>2]](r,A,i)),ar[f>>2]=0,ar[A+60>>2]=0,ar[A+8>>2]=0,ar[A+64>>2]=0,ar[A+12>>2]=0,ar[A+68>>2]=0),e=A+48|0,(0|(r=i=0|ar[(o=A+52|0)>>2]))!=(0|(f=A=0|ar[e>>2]))){for(t=0;(n=0|ar[f+(t<<2)>>2])&&(0|(r=0|ar[n+1344>>2])&&((0|(f=0|ar[(i=n+1348|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-4-r|0)>>>2)<<2)),vu(r)),kt(n+1332|0),0|(r=0|ar[n+776>>2])&&((0|(f=0|ar[(i=n+780|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-4-r|0)>>>2)<<2)),vu(r)),vu(n),r=0|ar[o>>2],A=0|ar[e>>2],i=r),(t=t+1|0)>>>0>2>>>0;);i=A}(0|r)!=(0|f)&&(ar[o>>2]=r+(~((r+-4-i|0)>>>2)<<2))}function aa(A){var e,r,i,f=0,n=0,t=0,o=0;if(oa(A|=0),0|(n=0|ar[A+10524>>2])){if(0|(f=0|ar[(t=n+-4|0)>>2]))for(f=n+(80*f|0)|0;Jn(f=f+-80|0),(0|f)!=(0|n););mu(t)}if(r=A+10576|0,sA(0|(r|=0)),i=A+10548|0,ZA(0|(i|=0)),Bc(0|ar[A+10460>>2]),Bc(0|ar[A+10440>>2]),Bc(0|ar[A+10420>>2]),Bc(0|ar[A+10400>>2]),Bc(0|ar[A+10380>>2]),Bc(0|ar[A+10360>>2]),Bc(0|ar[A+10340>>2]),Ga(A+5932|0),Ac(A+764|0),0|(f=0|ar[A+748>>2])&&((0|ar[(n=A+752|0)>>2])!=(0|f)&&(ar[n>>2]=f),vu(f)),0|(f=0|ar[A+736>>2])&&((0|(t=0|ar[(n=A+740|0)>>2]))!=(0|f)&&(ar[n>>2]=t+(~((t+-2-f|0)>>>1)<<1)),vu(f)),0|(f=0|ar[(e=A+700|0)>>2])){if((0|(n=0|ar[(o=A+704|0)>>2]))!=(0|f)){for(;n=n+-12|0,ar[o>>2]=n,(t=0|ar[n>>2])&&(vu(t),n=0|ar[o>>2]),(0|n)!=(0|f););f=0|ar[e>>2]}vu(f)}(t=0|ar[A+48>>2])&&((0|(n=0|ar[(f=A+52|0)>>2]))!=(0|t)&&(ar[f>>2]=n+(~((n+-4-t|0)>>>2)<<2)),vu(t))}function ca(A,e){e|=0;var r,i;Yn(r=(A|=0)+10548|0),ar[(i=A+10528|0)>>2]=(0|ar[i>>2])+e,ar[(A=A+10544|0)>>2]=(0|ar[A>>2])+e,Qn(r)}function la(A,e){e|=0;var r;Yn(e=(A|=0)+10548|0),ar[(r=A+10528|0)>>2]=(0|ar[r>>2])-1,ar[(A=A+10532|0)>>2]=1+(0|ar[A>>2]),Qn(e)}function ua(A,e){e|=0;var r,i,f,n=0;(Yn(e=(A|=0)+10548|0),i=0|ar[(n=A+10532|0)>>2],ar[n>>2]=i-1,r=1+(0|ar[(n=A+10540|0)>>2])|0,ar[n>>2]=r,(0|i)<=0&&sr(36809,36663,642,36830),(0|r)==(0|ar[A+10544>>2]))?(f=A+10576|0,mb(f|=0),Qn(e)):Qn(e)}function ba(A,e,r,i,f){r|=0,i|=0,f|=0,function(A,e,r,i){A|=0,r|=0,i|=0;var f,n;if(!(e|=0))return;if((0|function(A){return 0|ar[(A|=0)>>2]}(r=(0|ar[A+10524>>2])+(80*r|0)|0))>=(0|i))return;Yn(f=A+10548|0),ar[(n=A+10532|0)>>2]=(0|ar[n>>2])-1,ar[(A=A+10536|0)>>2]=1+(0|ar[A>>2]),Qn(f),ar[(e=e+4|0)>>2]=2,Mn(r,i),ar[e>>2]=1,Yn(f),ar[A>>2]=(0|ar[A>>2])-1,ar[n>>2]=1+(0|ar[n>>2]),Qn(f)}(A|=0,e|=0,(0|br(0|ar[A+5820>>2],i))+r|0,f)}function sa(A){var e,r,i;if(Yn(e=(A|=0)+10548|0),i=A+10544|0,(0|ar[(r=A+10540|0)>>2])!=(0|ar[i>>2])){for(A=A+10576|0;f=A,n=e,hA(0|(f|=0),0|(n|=0)),(0|ar[r>>2])!=(0|ar[i>>2]););var f,n;Qn(e)}else Qn(e)}function da(A,e,r,i,f){A|=0,e|=0,r|=0;var n=0,t=0,o=0,a=0;return((f|=0)|(i|=0)|0)<0||(0|ar[A+1248>>2])<=(0|i)||(0|ar[A+1252>>2])<=(0|f)?(A=0)|A:(t=0|ar[A+5864>>2],a=0|ar[A+5852>>2],n=(0|br(f>>t,a))+(i>>t)|0,t=(o=0|ar[A+10320>>2])+((0|br(r>>t,a))+(e>>t)<<2)|0,(0|ar[o+(n<<2)>>2])>(0|ar[t>>2])?(a=0)|a:(t=e>>(a=0|ar[A+5804>>2]),n=r>>a,r=i>>a,e=f>>a,a=0|ar[A+10352>>2],o=(0|br(a,n))+t|0,a=(f=0|ar[A+10340>>2])+(24*((0|br(a,e))+r|0)|0)|0,(0|or[f+(24*o|0)>>1])!=(0|or[a>>1])?(a=0)|a:(a=0|ar[A+5820>>2],o=(0|br(a,n))+t|0,a=(A=0|ar[A+10308>>2])+((0|br(a,e))+r<<2)|0,0|(a=(0|ar[A+(o<<2)>>2])==(0|ar[a>>2])))))}function ka(A,e,r,i,f,n,t,o,a,c,l){if(A|=0,f|=0,n|=0,t|=0,o|=0,a|=0,(0|(l|=0))<((i|=0)+(r|=0)|0)&(1^((i+(e|=0)|0)<=(0|(c|=0))|(0|c)<(0|e)|(0|l)<(0|r)))){if((t<<1|0)==(0|i)&&!((t+e|0)<=(0|c)|1!=(0|a)|(o<<1|0)!=(0|i)|(0|l)<(o+r|0)))return 0}else{if((l|c|0)<0)return 0;if((0|ar[A+1248>>2])<=(0|c))return 0;if((0|ar[A+1252>>2])<=(0|l))return 0;if(a=0|ar[A+5864>>2],i=0|ar[A+5852>>2],o=(0|br(l>>a,i))+(c>>a)|0,a=(t=0|ar[A+10320>>2])+((0|br(n>>a,i))+(f>>a)<<2)|0,(0|ar[t+(o<<2)>>2])>(0|ar[a>>2]))return 0;if(f>>=i=0|ar[A+5804>>2],e=n>>i,r=c>>i,i=l>>i,n=0|ar[A+10352>>2],a=(0|br(n,e))+f|0,n=(o=0|ar[A+10340>>2])+(24*((0|br(n,i))+r|0)|0)|0,(0|or[o+(24*a|0)>>1])!=(0|or[n>>1]))return 0;if(n=0|ar[A+5820>>2],a=(0|br(n,e))+f|0,n=(o=0|ar[A+10308>>2])+((0|br(n,i))+r<<2)|0,(0|ar[o+(a<<2)>>2])!=(0|ar[n>>2]))return 0}return i=c>>(e=0|ar[A+10368>>2]),e=l>>e,(0|i)<=-1&&sr(48482,36846,118,48539),(0|(r=0|ar[A+10372>>2]))<=(0|i)&&sr(48482,36846,118,48539),(0|e)<=-1&&sr(48543,36846,119,48539),(0|e)<(0|ar[A+10376>>2])?(A=(0|ar[A+10360>>2])+(3*((0|br(r,e))+i|0)|0)|0,0!=(768&(cr[A>>0]|cr[A+1>>0]<<8))|0):(sr(48543,36846,119,48539),0)}function ha(A){return((A|=0)+-19&255)<2|0}function wa(A){return((A|=0)+-16&255)<3|0}function va(A){return(1|(A|=0))<<24>>24==9|0}function ma(A){return(-8&(A|=0))<<24>>24==16|0}function ga(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function Za(A,e,r){e|=0,r|=0;var i,f=0;for(i=f=0|ar[(A|=0)+32>>2],A=(0|ar[A+36>>2])-f>>2;;){if(f=A+-1|0,(0|A)<=0){A=0,f=4;break}if(!(((0|ar[i+(f<<2)>>2])-r|0)>(0|e))){f=4;break}A=f}return 4==(0|f)?0|A:0}function pa(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0,l=0;f=(A|=0)+4|0,n=0|ar[A>>2],1073741823<(o=1+(i=(t=(0|ar[f>>2])-n|0)>>2)|0)>>>0&&zl(),a=(c=(0|ar[(l=A+8|0)>>2])-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);ar[(r=c+(i<<2)|0)>>2]=ar[e>>2],o=r+(0-i<<2)|0,0<(0|t)&&hb(0|o,0|n,0|t),ar[A>>2]=o,ar[f>>2]=4+r,ar[l>>2]=c+(a<<2),n&&vu(n)}function ya(A){var e,r,i,f,n=0,t=0,o=0;return(n=0|ar[(e=(A|=0)+32|0)>>2])?(f=0|ar[(i=A+16|0)>>2],o=0|ar[(t=A+28|0)>>2],r=0|ar[(0|ar[f+(o>>>10<<2)>>2])+((1023&o)<<2)>>2],ar[e>>2]=n+-1,n=o+1|0,2047<(ar[t>>2]=n)>>>0&&(vu(0|ar[f>>2]),ar[i>>2]=4+(0|ar[i>>2]),ar[t>>2]=(0|ar[t>>2])-1024),ar[(o=A+36|0)>>2]=(0|ar[o>>2])-(0|ar[24+r>>2]),0|(o=r)):(t=0)|t}function Ba(A,e){A|=0,e|=0;var r,i,f,n,t=0,o=0;if(ur=(n=ur)+16|0,o=ar[(t=n)>>2]=e){if(r=A+40|0,(f=0|ar[(i=A+44|0)>>2])-(0|ar[r>>2])>>2>>>0<16)return(0|f)==(0|ar[A+48>>2])?pa(r,t):(ar[f>>2]=o,ar[i>>2]=4+(0|ar[i>>2])),void(ur=n);Bc(0|ar[e+20>>2]),0|(A=0|ar[e+32>>2])&&((0|(o=0|ar[(t=e+36|0)>>2]))!=(0|A)&&(ar[t>>2]=o+(~((o+-4-A|0)>>>2)<<2)),vu(A)),vu(e),ur=n}else ur=n}function Ea(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(s=ur)+32|0,c=s+4|0,a=s,1023<(r=0|ar[(e=(A|=0)+16|0)>>2])>>>0){ar[e>>2]=r+-1024,c=0|ar[(l=A+4|0)>>2],b=0|ar[c>>2],c=c+4|0,ar[l>>2]=c,o=0|ar[(u=A+8|0)>>2],e=t=0|ar[(a=A+12|0)>>2],n=o;do{if((0|o)==(0|t)){if((i=r=0|ar[A>>2])>>>0>>0){f=(e=c)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|c,0|e),0|ar[l>>2]):c,A=f+(r<<2)|0,ar[u>>2]=A,ar[l>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),t=i=(n=f=0|hu(e<<2))+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|c)==(0|o))e=t;else{for(e=t,r=c;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[l>>2]=t,ar[u>>2]=e,ar[a>>2]=f,r&&(vu(r),e=0|ar[u>>2])}else e=o}while(0);return ar[e>>2]=b,ar[u>>2]=4+(0|ar[u>>2]),void(ur=s)}if(f=(e=0|ar[(b=A+8|0)>>2])-(0|ar[(u=A+4|0)>>2])|0,(i=(r=0|ar[(l=A+12|0)>>2])-(0|ar[A>>2])|0)>>>0<=f>>>0){for(e=0==(0|(e=i>>1))?1:e,ar[c+12>>2]=0,ar[c+16>>2]=A+12,1073741823>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),i=0|hu(e<<2),t=(ar[c>>2]=i)+(f>>2<<2)|0,ar[(o=c+8|0)>>2]=t,ar[(n=c+4|0)>>2]=t,ar[(t=c+12|0)>>2]=i+(e<<2),f=0|hu(4096),ar[a>>2]=f,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(c,a),f=0|ar[b>>2];(0|f)!=(0|(e=0|ar[u>>2]));)Xa(c,a=f+-4|0),f=a;return r=e,i=0|ar[A>>2],ar[A>>2]=ar[c>>2],ar[c>>2]=i,ar[u>>2]=ar[n>>2],ar[n>>2]=r,e=0|ar[b>>2],ar[b>>2]=ar[o>>2],ar[o>>2]=e,A=0|ar[l>>2],ar[l>>2]=ar[t>>2],ar[t>>2]=A,(0|e)!=(0|f)&&(ar[o>>2]=e+(~((e+-4-r|0)>>>2)<<2)),0|i&&vu(i),void(ur=s)}if((0|r)!=(0|e))return b=0|hu(4096),ar[c>>2]=b,function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;r=0|ar[(b=8+(A|=0)|0)>>2],u=0|ar[(i=A+12|0)>>2],t=u,a=r;do{if((0|r)==(0|u)){if(l=0|ar[(u=A+4|0)>>2],n=0|ar[A>>2],(f=n)>>>0>>0){o=(n=l)+((t=(1+(n-f>>2)|0)/-2|0)<<2)|0,f=(n=(f=a-n|0)>>2)?(wb(0|o,0|l,0|f),0|ar[u>>2]):l,l=o+(n<<2)|0,ar[b>>2]=l,ar[u>>2]=f+(t<<2),f=l;break}if(1073741823<(f=0==(0|(f=t-f>>1))?1:f)>>>0&&(Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)),o=0|hu(f<<2),c=t=(a=o)+(f>>>2<<2)|0,o=o+(f<<2)|0,(0|l)==(0|r))f=c;else{for(f=c,n=l;ar[t>>2]=ar[n>>2],f=t=f+4|0,(0|(n=n+4|0))!=(0|r););n=0|ar[A>>2]}ar[A>>2]=a,ar[u>>2]=c,ar[b>>2]=f,ar[i>>2]=o,n&&(vu(n),f=0|ar[b>>2])}else f=r}while(0);ar[f>>2]=ar[e>>2],ar[b>>2]=4+(0|ar[b>>2])}(A,c),void(ur=s);a=0|hu(4096),ar[c>>2]=a,function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=4+(A|=0)|0)>>2],b=0|ar[A>>2],n=b;do{if((0|r)==(0|b)){if(f=0|ar[(b=A+8|0)>>2],l=0|ar[(u=A+12|0)>>2],f>>>0<(i=l)>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),a=0|hu(n<<2),l=i=(c=a)+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}(A,c),a=0|ar[u>>2],c=0|ar[a>>2],a=a+4|0,ar[u>>2]=a,o=0|ar[b>>2],e=t=0|ar[l>>2],n=o;do{if((0|o)==(0|t)){if((i=r=0|ar[A>>2])>>>0>>0){f=(e=a)+((i=(1+(e-i>>2)|0)/-2|0)<<2)|0,e=(r=(e=n-e|0)>>2)?(wb(0|f,0|a,0|e),0|ar[u>>2]):a,A=f+(r<<2)|0,ar[b>>2]=A,ar[u>>2]=e+(i<<2),e=A;break}if(1073741823<(e=0==(0|(e=e-i>>1))?1:e)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),t=i=(n=f=0|hu(e<<2))+(e>>>2<<2)|0,f=f+(e<<2)|0,(0|a)==(0|o))e=t;else{for(e=t,r=a;ar[i>>2]=ar[r>>2],e=i=e+4|0,(0|(r=r+4|0))!=(0|o););r=0|ar[A>>2]}ar[A>>2]=n,ar[u>>2]=t,ar[b>>2]=e,ar[l>>2]=f,r&&(vu(r),e=0|ar[b>>2])}else e=o}while(0);ar[e>>2]=c,ar[b>>2]=4+(0|ar[b>>2]),ur=s}function Xa(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;r=0|ar[(s=(A|=0)+4|0)>>2],n=b=0|ar[A>>2];do{if((0|r)==(0|b)){if((f=0|ar[(b=A+8|0)>>2])>>>0<(i=l=0|ar[(u=A+12|0)>>2])>>>0){t=(i=(n=f)+((o=(1+(i-n>>2)|0)/2|0)<<2)|0)+(0-(u=(n=n-r|0)>>2)<<2)|0,u&&(wb(0|t,0|r,0|n),i=t,f=0|ar[b>>2]),ar[s>>2]=i,ar[b>>2]=f+(o<<2);break}if(1073741823<(n=0==(0|(n=i-n>>1))?1:n)>>>0&&(Zu(s=0|X(8),44519),ar[s>>2]=17660,I(0|s,4016,428)),l=i=(c=a=0|hu(n<<2))+((n+3|0)>>>2<<2)|0,a=a+(n<<2)|0,(0|r)==(0|f))n=l,f=r;else{for(o=i,n=l,t=r;ar[o>>2]=ar[t>>2],n=o=n+4|0,(0|(t=t+4|0))!=(0|f););f=0|ar[A>>2]}ar[A>>2]=c,ar[s>>2]=l,ar[b>>2]=n,ar[u>>2]=a,f&&(vu(f),i=0|ar[s>>2])}else i=r}while(0);ar[i+-4>>2]=ar[e>>2],ar[s>>2]=(0|ar[s>>2])-4}function Wa(A){var e,r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if(!(r=0|ar[(e=(A|=0)+8|0)>>2]))return(l=0)|l;if(6==(0|(i=0|ar[(l=A+4|0)>>2]))){if(a=(i=0|ar[(c=24+r|0)>>2])+1|0,(0|ar[(t=28+r|0)>>2])>(0|i))f=0|ar[20+r>>2];else{if(!(f=0|yc(a)))return 0|(l=7);(n=0|ar[(o=20+r|0)>>2])&&(hb(0|f,0|n,0|i),Bc(n),i=0|ar[c>>2]),ar[o>>2]=f,ar[t>>2]=a}tr[f+i>>0]=0,ar[c>>2]=1+(0|ar[c>>2]),i=0|ar[l>>2]}if(7==(0|i)){if(t=(i=0|ar[(c=24+r|0)>>2])+2|0,(0|ar[(o=28+r|0)>>2])<(0|t)){if(!(f=0|yc(t)))return 0|(l=7);(n=0|ar[(a=20+r|0)>>2])&&(hb(0|f,0|n,0|i),Bc(n),i=0|ar[c>>2]),ar[a>>2]=f,ar[o>>2]=t}else f=0|ar[20+r>>2];tr[(i=f+i|0)>>0]=0,tr[i+1>>0]=0,ar[c>>2]=2+(0|ar[c>>2]),i=0|ar[l>>2]}return 4<(0|i)&&(i=0|ar[(o=A+16|0)>>2],c=(0|ar[A+20>>2])-i|0,n=0|ar[(f=A+28|0)>>2],(0|(0==(0|c)?0:(c<<8)-1|0))==((t=0|ar[(a=A+32|0)>>2])+n|0)?(Ea(A+12|0),n=0|ar[f>>2],f=0|ar[a>>2],i=0|ar[o>>2]):f=t,ar[(0|ar[i+((c=f+n|0)>>>10<<2)>>2])+((1023&c)<<2)>>2]=r,ar[a>>2]=f+1,ar[(A=A+36|0)>>2]=(0|ar[A>>2])+(0|ar[24+r>>2]),ar[e>>2]=0),(l=ar[l>>2]=0)|l}function Ia(A){var e,r=0;for(tr[(A|=0)+4138>>0]=2,r=A+4139|0,tr[A+4155>>0]=0,tr[A+4156>>0]=0,tr[r>>0]=0,tr[r+1>>0]=0,tr[r+2>>0]=0,e=(r=A+4340|(tr[r+3>>0]=0))+60|0;(0|(r=r+4|(ar[r>>2]=0)))<(0|e););Ca(A,0)}function Ca(A,e){e|=0;var r=0,i=0;if(ar[(A|=0)>>2]=0,or[A+4>>1]=0,tr[A+6>>0]=1,tr[A+7>>0]=1,ar[A+8>>2]=27,tr[A+12>>0]=0,tr[A+13>>0]=0,tr[A+14>>0]=0,ar[(e=A+16|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,or[e+16>>1]=0,tr[e+18>>0]=0,ar[A+36>>2]=1,ar[A+40>>2]=1,tr[A+44>>0]=1,tr[A+45>>0]=1,tr[A+46>>0]=1,vb(A+4172|0,0,168),e=0|ar[A+4340>>2],(0|(i=0|ar[(r=A+4344|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),e=0|ar[A+4352>>2],(0|(i=0|ar[(r=A+4356|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),e=0|ar[A+4364>>2],(0|(i=0|ar[(r=A+4368|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),e=0|ar[A+4376>>2],(0|(i=0|ar[(r=A+4380|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),e=0|ar[A+4388>>2],(0|(i=0|ar[(r=A+4392|0)>>2]))==(0|e))return ar[(i=A+4160|0)>>2]=0,tr[(i=A+47|0)>>0]=0,tr[(i=A+48|0)>>0]=0,tr[(i=A+49|0)>>0]=0,ar[(i=A+52|0)>>2]=0,ar[(i=A+56|0)>>2]=0,tr[(i=A+60|0)>>0]=0,tr[(i=A+4125|0)>>0]=0,ar[(i=A+4128|0)>>2]=2,ar[(A=A+4132|0)>>2]=0,void(or[A+4>>1]=0);ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2),ar[(i=A+4160|0)>>2]=0,tr[(i=A+47|0)>>0]=0,tr[(i=A+48|0)>>0]=0,tr[(i=A+49|0)>>0]=0,ar[(i=A+52|0)>>2]=0,ar[(i=A+56|0)>>2]=0,tr[(i=A+60|0)>>0]=0,tr[(i=A+4125|0)>>0]=0,ar[(i=A+4128|0)>>2]=2,ar[(A=A+4132|0)>>2]=0,or[A+4>>1]=0}function Ga(A){var e=0,r=0,i=0;0|(e=0|ar[(A|=0)+4388>>2])&&((0|(i=0|ar[(r=A+4392|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),vu(e)),0|(e=0|ar[A+4376>>2])&&((0|(i=0|ar[(r=A+4380|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),vu(e)),0|(e=0|ar[A+4364>>2])&&((0|(i=0|ar[(r=A+4368|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),vu(e)),0|(e=0|ar[A+4352>>2])&&((0|(i=0|ar[(r=A+4356|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),vu(e)),(i=0|ar[A+4340>>2])&&((0|(r=0|ar[(e=A+4344|0)>>2]))!=(0|i)&&(ar[e>>2]=r+(~((r+-4-i|0)>>>2)<<2)),vu(i))}function Va(A,e){var r,i,f,n,t,o=0,a=0,c=0,l=0;if((e|=0)>>>0<=(a=0|ar[(t=(A|=0)+8|0)>>2])-(o=0|ar[(l=A+4|0)>>2])>>2>>>0)return vb(0|o,0,e<<2|0),void(ar[l>>2]=o+(e<<2));1073741823<(o=(i=(f=o-(n=0|ar[A>>2])|0)>>2)+e|0)>>>0&&zl(),a=(c=a-n|0)>>1,a=c>>2>>>0<536870911?a>>>0>>0?o:a:1073741823;do{if(a){if(!(1073741823>>0)){c=0|hu(a<<2);break}Zu(l=0|X(8),44519),ar[l>>2]=17660,I(0|l,4016,428)}else c=0}while(0);vb(0|(r=c+(i<<2)|0),0,e<<2|0),o=r+(0-i<<2)|0,0<(0|f)&&hb(0|o,0|n,0|f),ar[A>>2]=o,ar[l>>2]=r+(e<<2),ar[t>>2]=c+(a<<2),n&&vu(n)}function Fa(A,e,r){e|=0,r|=0;var i,f=0;if(!(0|tr[(A|=0)+34>>0]))return 0==(r|e|0)|0;i=0|ar[A+36>>2];A:do{if(0<(0|i)){for(f=0;(0|ar[A+4252+(f<<2)>>2])!=(0|e);)if((0|i)<=(0|(f=f+1|0))){e=f=0;break A}if(0<(0|(e=0|ar[A+40>>2])))for(f=0;;){if((0|ar[A+4296+(f<<2)>>2])==(0|r)){e=f=1;break A}if((0|e)<=(0|(f=f+1|0))){f=1,e=0;break}}else f=1,e=0}else e=f=0}while(0);return e&f|0}function Ra(A,e,r,i,f,n,t,o,a,c,l){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0;if(ur=(U=ur)+144|0,D=U+8|0,F=(V=U)+136|0,S=0|ar[(R=(A|=0)+10352|0)>>2],iA=(0|br(S,r))+e|0,J=0|ar[A+10340>>2],z=f<<1,j=(0|cr[J+(24*iA|0)+4>>0])>>>z&3)if(T=(M=1<<(P=0|ar[((O=0==(0|f))?A+5760|0:A+5768|0)>>2]))-1|0,Q=0|br(n,e),Y=0|br(t,r),W=0|ar[(O?A+24|0:A+32|0)>>2],I=0|ar[(O?A+28|0:A+36|0)>>2],e=Y>>(C=0|ar[A+10348>>2]),-1<(0|(i=Q>>C))&(0|i)<(0|S)||sr(48482,48519,118,48539),(0|e)<=-1&&sr(48543,48519,119,48539),(0|(G=0|ar[A+10356>>2]))<=(0|e)&&sr(48543,48519,119,48539),nA=J+(24*((0|br(e,S))+i|0)|0)+2|0,p=A+52|0,y=0|ar[A+48>>2],nA=0|ar[800+(0|ar[y+(lr[nA>>1]<<2)>>2])>>2],B=0|ar[A+5820>>2],E=y,cA=O?aA=0:(aA=(0|ar[A+5780>>2])-1|0,(0|ar[A+5784>>2])-1|0),Z=(fA=0|ar[A+5804>>2])-aA|0,fA=fA-cA|0,_=(0|W)<(Q+n|0)?W-Q|0:n,N=(0|I)<(Y+t|0)?I-Y|0:t,X=0!=(0|tr[J+(24*iA|0)+22>>0]),2==(0|j)){switch((0|cr[J+(24*iA|0)+5>>0])>>>z&3){case 0:H=x=0,tA=-1,oA=1;break;case 1:H=-(x=1),oA=tA=0;break;case 2:tA=H=-(x=1),oA=1;break;case 3:H=-(x=1),oA=-(tA=1)}if(ar[D>>2]=tA,ar[4+D>>2]=oA,ar[V>>2]=H,ar[V+4>>2]=x,g=0|br(H,a),m=0-x&a,tr[F>>0]=0|tr[J+(24*iA|0)+9+(f<<2)>>0],tr[1+F>>0]=0|tr[J+(24*iA|0)+9+(f<<2)+1>>0],tr[2+F>>0]=0,tr[3+F>>0]=0|tr[J+(24*iA|0)+9+(f<<2)+2>>0],tr[4+F>>0]=0|tr[J+(24*iA|0)+9+(f<<2)+3>>0],(0|N)<=0)ur=U;else{f=0<(0|_),u=A+5480|0,b=A+10368|0,s=A+10372|0,d=A+10376|0,k=A+10360|0,h=_+-1|0,w=N+-1|0,v=A+5977|0,P=A+10308|0,L=(0|br(Y>>fA,B))+(Q>>Z)|0,H=0;A:for(;;){if(K=o+((0|br(A=H+Y|0,a))+Q<<1)|0,q=c+((0|br(A,l))+Q<<1)|0,f){AA=0==(0|H),eA=(0|H)==(0|w),iA=(0|(rA=($=A<>C))<0|(0|G)<=(0|rA),x=0;do{if(X&&0!=(0|tr[u>>0])){if(i=x+Q<>(e=0|ar[b>>2]),e=$>>e,(0|i)<=-1){lA=23;break A}if((0|(r=0|ar[s>>2]))<=(0|i)){lA=23;break A}if((0|e)<=-1){lA=26;break A}if((0|e)>=(0|ar[d>>2])){lA=26;break A}j=(0|ar[k>>2])+(3*((0|br(r,e))+i|0)|0)|0,1024&(cr[j>>0]|cr[j+1>>0]<<8)||(lA=28)}else lA=28;e:do{if(28==(0|lA)){if(e=(i=(j=x+Q|(lA=0))<>(r=0|ar[b>>2]),r=$>>r,(0|e)<=-1){lA=30;break A}if((0|(S=0|ar[s>>2]))<=(0|e)){lA=30;break A}if((0|r)<=-1){lA=33;break A}if((0|r)>=(0|ar[d>>2])){lA=33;break A}if(z=(0|ar[k>>2])+(3*((0|br(S,r))+e|0)|0)|0,!(2048&(cr[z>>0]|cr[z+1>>0]<<8))){if(eA|(0|x)==(0|h)|AA|0==(0|x)){O=-1<(0|(S=i>>C)),r=0;do{if(n=(0|ar[D+(r<<2)>>2])+j|0,!((0|(t=(0|ar[V+(r<<2)>>2])+A|0))<(0|I)&(0|n)<(0|W)&-1<(t|n|0)))break e;if(e=t<>C,(0|(i=n<>C))<=-1){lA=40;break A}if((0|(z=0|ar[R>>2]))<=(0|i)){lA=40;break A}if(!(-1<(0|e)&(0|e)<(0|G))){lA=42;break A}if(e=J+(24*((0|br(z,e))+i|0)|0)+2|0,(e=0|lr[e>>1])>>>0>=(0|ar[p>>2])-E>>2>>>0){lA=59;break A}if(!(i=0|ar[y+(e<<2)>>2])){lA=59;break A}if((0|(i=0|ar[i+800>>2]))<(0|nA)){if(!(O&(0|S)<(0|z))){lA=47;break A}if(iA){lA=49;break A}if(z=J+(24*((0|br(z,rA))+S|0)|0)+2|0,!(0|tr[764+(0|ar[y+(lr[z>>1]<<2)>>2])>>0]))break e}if((0|nA)<(0|i)&&0==(0|tr[764+(0|ar[y+(e<<2)>>2])>>0]))break e;if(0==(0|tr[v>>0])&&(t=(0|br(t>>fA,B))+(n>>Z)|0,z=0|ar[P>>2],(0|ar[z+(t<<2)>>2])!=(0|ar[z+(L<<2)>>2])))break e;r=r+1|0}while((0|r)<2)}t=(j=0|lr[K+(x<<1)>>1])-(0|lr[K+(x+g+tA<<1)>>1])|0,z=j-(0|lr[K+(x+m+oA<<1)>>1])|0,j=(0|tr[((0|t)<0?1:0|t?3:2)+((0|z)<0?-1:0!=(0|z)&1)+F>>0])+j|0,or[q+(x<<1)>>1]=(0|j)<0?0:65535&((0|j)<(0|M)?j:T)}}}while(0);x=x+1|0}while((0|x)<(0|_))}if((0|N)<=(0|(H=H+1|0))){lA=59;break}}if(23==(0|lA))sr(48482,48519,118,48539);else if(26==(0|lA))sr(48543,48519,119,48539);else if(30==(0|lA))sr(48482,48519,118,48539);else if(33==(0|lA))sr(48543,48519,119,48539);else if(40==(0|lA))sr(48482,48519,118,48539);else if(42==(0|lA))sr(48543,48519,119,48539);else if(47==(0|lA))sr(48482,48519,118,48539);else if(49==(0|lA))sr(48543,48519,119,48539);else if(59==(0|lA))return void(ur=U)}}else{for(i=0|cr[J+(24*iA|0)+6+f>>0],r=(e=D)+128|0;(0|(e=e+4|(ar[e>>2]=0)))<(0|r););ar[D+((31&i)<<2)>>2]=1,ar[D+((i+1&31)<<2)>>2]=2,ar[D+((i+2&31)<<2)>>2]=3,ar[D+((i+3&31)<<2)>>2]=4,rA=P+-5|0,i=0<(0|N);A:do{if(X){if(i){K=0<(0|_),q=A+5480|0,$=A+10368|0,AA=A+10372|0,eA=A+10376|0,P=A+10360|0,L=7<(0|rA),x=0;e:for(;;){r:do{if(K){if(H=(z=x+Y|0)<>0]),L)for(j=-1<(0|(z=H>>(t=0|ar[$>>2]))),n=-1<(0|(O=H>>t)),S=0;;){if(i=S+Q<>t))<=-1){lA=88;break e}if((0|(r=0|ar[AA>>2]))<=(0|e)){lA=88;break e}if(!n){lA=91;break e}if((0|O)>=(0|ar[eA>>2])){lA=91;break e}oA=(0|ar[P>>2])+(3*((0|br(r,O))+e|0)|0)|0,1024&(cr[oA>>0]|cr[oA+1>>0]<<8)||(lA=79)}if(79==(0|lA)){if(((lA=0)|(i>>=t))<=-1){lA=95;break e}if((0|i)>=(0|ar[AA>>2])){lA=95;break e}if(!j){lA=98;break e}if((0|z)>=(0|ar[eA>>2])){lA=98;break e}}if((0|_)<=(0|(S=S+1|0)))break r}else n=0;do{if(i=(j=n+Q|0)<>2],A)lA=93;else{if(r=H>>O,(0|(e=i>>O))<=-1){lA=88;break e}if((0|(S=0|ar[AA>>2]))<=(0|e)){lA=88;break e}if((0|r)<=-1){lA=91;break e}if((0|r)>=(0|ar[eA>>2])){lA=91;break e}oA=(0|ar[P>>2])+(3*((0|br(S,r))+e|0)|0)|0,1024&(cr[oA>>0]|cr[oA+1>>0]<<8)||(lA=93)}do{if(93==(0|lA)){if(r=i>>O,i=H>>O,((lA=0)|r)<=-1){lA=95;break e}if((0|(e=0|ar[AA>>2]))<=(0|r)){lA=95;break e}if((0|i)<=-1){lA=98;break e}if((0|i)>=(0|ar[eA>>2])){lA=98;break e}if(oA=(0|ar[P>>2])+(3*((0|br(e,i))+r|0)|0)|0,2048&(cr[oA>>0]|cr[oA+1>>0]<<8))break;if(i=0|lr[o+(j+t<<1)>>1],(0|(e=0|ar[D+(i>>>rA<<2)>>2]))<=0)break;oA=(0|tr[e+-1+(J+(24*iA|0)+9+(f<<2))>>0])+i|0,or[c+(j+z<<1)>>1]=(0|oA)<0?0:65535&((0|oA)<(0|M)?oA:T)}}while(0);n=n+1|0}while((0|n)<(0|_))}}while(0);if((0|N)<=(0|(x=x+1|0)))break A}88==(0|lA)?sr(48482,48519,118,48539):91==(0|lA)?sr(48543,48519,119,48539):95==(0|lA)?sr(48482,48519,118,48539):98==(0|lA)&&sr(48543,48519,119,48539)}}else if(i&&(L=7<(0|rA),0<(0|_))){e=0;do{if(r=0|br(S=e+Y|0,a),S=0|br(S,l),!L)for(i=0;n=0|lr[o+((O=i+Q|0)+r<<1)>>1],0<(0|(t=0|ar[D+(n>>>rA<<2)>>2]))&&(lA=(0|tr[t+-1+(J+(24*iA|0)+9+(f<<2))>>0])+n|0,or[c+(O+S<<1)>>1]=(0|lA)<0?0:65535&((0|lA)<(0|M)?lA:T)),(0|(i=i+1|0))<(0|_););e=e+1|0}while((0|e)<(0|N))}}while(0);ur=U}else ur=U}function Na(A,e,r,i,f,n,t,o,a,c,l){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0,uA=0,bA=0;if(ur=(U=ur)+144|0,J=U+8|0,F=(V=U)+136|0,S=0|ar[(R=(A|=0)+10352|0)>>2],iA=(0|br(S,r))+e|0,fA=0|ar[(N=A+10340|0)>>2],z=f<<1,j=(0|cr[fA+(24*iA|0)+4>>0])>>>z&3)if(T=(M=1<<(P=0|ar[((O=0==(0|f))?A+5760|0:A+5768|0)>>2]))-1|0,D=0|br(n,e),Q=0|br(t,r),W=0|ar[(O?A+24|0:A+32|0)>>2],I=0|ar[(O?A+28|0:A+36|0)>>2],i=D>>(e=0|ar[(C=A+10348|0)>>2]),e=Q>>e,-1<(0|i)&(0|i)<(0|S)||sr(48482,48519,118,48539),(0|e)<=-1&&sr(48543,48519,119,48539),(0|e)>=(0|ar[(G=A+10356|0)>>2])&&sr(48543,48519,119,48539),oA=fA+(24*((0|br(e,S))+i|0)|0)+2|0,B=A+52|0,oA=0|ar[800+(0|ar[(0|ar[(y=A+48|0)>>2])+(lr[oA>>1]<<2)>>2])>>2],E=0|ar[A+5820>>2],uA=O?lA=0:(lA=(0|ar[A+5780>>2])-1|0,(0|ar[A+5784>>2])-1|0),p=(tA=0|ar[A+5804>>2])-lA|0,tA=tA-uA|0,Y=(0|W)<(D+n|0)?W-D|0:n,_=(0|I)<(Q+t|0)?I-Q|0:t,X=0!=(0|tr[fA+(24*iA|0)+22>>0]),2==(0|j)){switch((0|cr[fA+(24*iA|0)+5>>0])>>>z&3){case 0:H=x=0,aA=-1,cA=1;break;case 1:H=-(x=1),cA=aA=0;break;case 2:aA=H=-(x=1),cA=1;break;case 3:H=-(x=1),cA=-(aA=1)}if(ar[J>>2]=aA,ar[4+J>>2]=cA,ar[V>>2]=H,ar[V+4>>2]=x,Z=0|br(H,a),g=0-x&a,tr[F>>0]=0|tr[fA+(24*iA|0)+9+(f<<2)>>0],tr[1+F>>0]=0|tr[fA+(24*iA|0)+9+(f<<2)+1>>0],tr[2+F>>0]=0,tr[3+F>>0]=0|tr[fA+(24*iA|0)+9+(f<<2)+2>>0],tr[4+F>>0]=0|tr[fA+(24*iA|0)+9+(f<<2)+3>>0],(0|_)<=0)ur=U;else{u=0<(0|Y),b=A+5480|0,s=A+10368|0,d=A+10372|0,k=A+10376|0,h=A+10360|0,w=Y+-1|0,v=_+-1|0,m=A+5977|0,$=A+10308|0,AA=(0|br(Q>>tA,E))+(D>>p)|0,K=0;A:for(;;){if(rA=o+((0|br(eA=K+Q|0,a))+D)|0,iA=c+((0|br(eA,l))+D)|0,u){fA=eA<>0])){if(i=q+D<>(e=0|ar[s>>2]),e=fA>>e,(0|i)<=-1){bA=23;break A}if((0|(r=0|ar[d>>2]))<=(0|i)){bA=23;break A}if((0|e)<=-1){bA=26;break A}if((0|e)>=(0|ar[k>>2])){bA=26;break A}A=(0|ar[h>>2])+(3*((0|br(r,e))+i|0)|0)|0,1024&(cr[A>>0]|cr[A+1>>0]<<8)||(bA=28)}else bA=28;e:do{if(28==(0|bA)){if(i=(A=(L=q+D|(bA=0))<>(e=0|ar[s>>2]),e=fA>>e,(0|i)<=-1){bA=30;break A}if((0|(r=0|ar[d>>2]))<=(0|i)){bA=30;break A}if((0|e)<=-1){bA=33;break A}if((0|e)>=(0|ar[k>>2])){bA=33;break A}if(P=(0|ar[h>>2])+(3*((0|br(r,e))+i|0)|0)|0,!(2048&(cr[P>>0]|cr[P+1>>0]<<8))){if(nA|(0|q)==(0|w)|f|0==(0|q)){t=0;do{if(z=(0|ar[J+(t<<2)>>2])+L|0,!((0|(j=(0|ar[V+(t<<2)>>2])+eA|0))<(0|I)&(0|z)<(0|W)&-1<(j|z|0)))break e;if(e=j<>(n=0|ar[C>>2]),(0|(i=z<>n))<=-1){bA=39;break A}if((0|(H=0|ar[R>>2]))<=(0|i)){bA=39;break A}if((0|e)<=-1){bA=42;break A}if((0|(x=0|ar[G>>2]))<=(0|e)){bA=42;break A}if(i=(P=0|ar[N>>2])+(24*((0|br(H,e))+i|0)|0)+2|0,i=0|lr[i>>1],O=S=0|ar[y>>2],i>>>0>=(0|ar[B>>2])-S>>2>>>0){bA=59;break A}if(!(e=0|ar[O+(i<<2)>>2])){bA=59;break A}if((0|(r=0|ar[e+800>>2]))<(0|oA)){if(i=fA>>n,!(-1<(0|(S=A>>n))&(0|S)<(0|H))){bA=47;break A}if(!(-1<(0|i)&(0|i)<(0|x))){bA=49;break A}if(P=P+(24*((0|br(H,i))+S|0)|0)+2|0,!(0|tr[764+(0|ar[O+(lr[P>>1]<<2)>>2])>>0]))break e}if((0|oA)<(0|r)&&0==(0|tr[e+764>>0]))break e;if(0==(0|tr[m>>0])&&(x=(0|br(j>>tA,E))+(z>>p)|0,P=0|ar[$>>2],(0|ar[P+(x<<2)>>2])!=(0|ar[P+(AA<<2)>>2])))break e;t=t+1|0}while((0|t)<2)}P=(A=0|cr[rA+q>>0])-(0|cr[rA+(q+Z+aA)>>0])|0,L=A-(0|cr[rA+(q+g+cA)>>0])|0,A=(0|tr[((0|P)<0?1:0|P?3:2)+((0|L)<0?-1:0!=(0|L)&1)+F>>0])+A|0,tr[iA+q>>0]=(0|A)<0?0:255&((0|A)<(0|M)?A:T)}}}while(0);q=q+1|0}while((0|q)<(0|Y))}if((0|_)<=(0|(K=K+1|0))){bA=59;break}}if(23==(0|bA))sr(48482,48519,118,48539);else if(26==(0|bA))sr(48543,48519,119,48539);else if(30==(0|bA))sr(48482,48519,118,48539);else if(33==(0|bA))sr(48543,48519,119,48539);else if(39==(0|bA))sr(48482,48519,118,48539);else if(42==(0|bA))sr(48543,48519,119,48539);else if(47==(0|bA))sr(48482,48519,118,48539);else if(49==(0|bA))sr(48543,48519,119,48539);else if(59==(0|bA))return void(ur=U)}}else{for(i=0|cr[fA+(24*iA|0)+6+f>>0],r=(e=J)+128|0;(0|(e=e+4|(ar[e>>2]=0)))<(0|r););ar[J+((31&i)<<2)>>2]=1,ar[J+((i+1&31)<<2)>>2]=2,ar[J+((i+2&31)<<2)>>2]=3,ar[J+((i+3&31)<<2)>>2]=4,rA=P+-5|0,i=0<(0|_);A:do{if(X){if(i){K=0<(0|Y),q=A+5480|0,$=A+10368|0,AA=A+10372|0,eA=A+10376|0,L=A+10360|0,A=7<(0|rA),P=0;e:for(;;){r:do{if(K){if(x=(z=P+Q|0)<>0]),H=-1<(0|(j=x>>(t=0|ar[$>>2]))),n=-1<(0|(O=x>>t)),S=0;;){if(i=S+D<>t))<=-1){bA=88;break e}if((0|(r=0|ar[AA>>2]))<=(0|e)){bA=88;break e}if(!n){bA=91;break e}if((0|O)>=(0|ar[eA>>2])){bA=91;break e}cA=(0|ar[L>>2])+(3*((0|br(r,O))+e|0)|0)|0,1024&(cr[cA>>0]|cr[cA+1>>0]<<8)||(bA=79)}if(79==(0|bA)){if(((bA=0)|(i>>=t))<=-1){bA=95;break e}if((0|i)>=(0|ar[AA>>2])){bA=95;break e}if(!H){bA=98;break e}if((0|j)>=(0|ar[eA>>2])){bA=98;break e}}if((0|Y)<=(0|(S=S+1|0)))break r}else n=0;do{if(i=(j=n+D|0)<>2],0|tr[q>>0]){if(r=x>>O,(0|(e=i>>O))<=-1){bA=88;break e}if((0|(S=0|ar[AA>>2]))<=(0|e)){bA=88;break e}if((0|r)<=-1){bA=91;break e}if((0|r)>=(0|ar[eA>>2])){bA=91;break e}cA=(0|ar[L>>2])+(3*((0|br(S,r))+e|0)|0)|0,1024&(cr[cA>>0]|cr[cA+1>>0]<<8)||(bA=93)}else bA=93;do{if(93==(0|bA)){if(r=i>>O,i=x>>O,((bA=0)|r)<=-1){bA=95;break e}if((0|(e=0|ar[AA>>2]))<=(0|r)){bA=95;break e}if((0|i)<=-1){bA=98;break e}if((0|i)>=(0|ar[eA>>2])){bA=98;break e}if(cA=(0|ar[L>>2])+(3*((0|br(e,i))+r|0)|0)|0,2048&(cr[cA>>0]|cr[cA+1>>0]<<8))break;if(i=0|cr[o+(j+t)>>0],(0|(e=0|ar[J+(i>>>rA<<2)>>2]))<=0)break;cA=(0|tr[e+-1+(fA+(24*iA|0)+9+(f<<2))>>0])+i|0,tr[c+(j+z)>>0]=(0|cA)<0?0:255&((0|cA)<(0|M)?cA:T)}}while(0);n=n+1|0}while((0|n)<(0|Y))}}while(0);if((0|_)<=(0|(P=P+1|0)))break A}88==(0|bA)?sr(48482,48519,118,48539):91==(0|bA)?sr(48543,48519,119,48539):95==(0|bA)?sr(48482,48519,118,48539):98==(0|bA)&&sr(48543,48519,119,48539)}}else if(i&&(L=7<(0|rA),0<(0|Y))){e=0;do{if(r=0|br(S=e+Q|0,a),S=0|br(S,l),!L)for(i=0;n=0|cr[o+((O=i+D|0)+r)>>0],0<(0|(t=0|ar[J+(n>>>rA<<2)>>2]))&&(bA=(0|tr[t+-1+(fA+(24*iA|0)+9+(f<<2))>>0])+n|0,tr[c+(O+S)>>0]=(0|bA)<0?0:255&((0|bA)<(0|M)?bA:T)),(0|(i=i+1|0))<(0|Y););e=e+1|0}while((0|e)<(0|_))}}while(0);ur=U}else ur=U}function _a(A,e){A|=0;var r=0;switch(0|(e|=0)){case 0:e=7796,r=4;break;case 1:e=7824,r=4;break;case 2:e=7768,r=4;break;default:e=0}return 4==(0|r)&&(e=0|ar[e+(A<<2)>>2]),0|e}function Ya(){var A=0,e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;t=1;do{for(f=0|ar[7824+(t<<2)>>2],o=1<>0]=r,tr[f+(i<<1)+1>>0]=n,(0|(r=r+1|0))!=(0|o);)i=i+1|0;if((0|(A=A+1|0))==(0|o))break;e=e+o|0}for(f=0|ar[7768+(t<<2)>>2],e=A=0;;){for(n=255&A,r=0,i=e;tr[f+(i<<1)>>0]=n,(0|(r=(tr[f+(i<<1)+1>>0]=r)+1|0))!=(0|o);)i=i+1|0;if((0|(A=A+1|0))==(0|o))break;e=e+o|0}f=0|ar[7796+(t<<2)>>2],n=o<>0]=i,tr[f+(A<<1)+1>>0]=r,A=A+1|0),e=i+1|0,0<(0|r);)i=e,r=r+-1|0;else e=0}while((0|A)<(0|n));t=t+1|0}while(6!=(0|t));a=2;do{c=1<>2],n=(h=2==(0|o))?66707:0,t=0;do{switch(k=t<>2],r=0;do{for(A=16,e=l;A=(f=0==(0|A))?15:A+-1|0,(((0|cr[i+((e=(f<<31>>31)+e|0)<<1)>>0])<<2)+(0|cr[63979+(A<<1)>>0])|0)!=(0|r)||(((0|cr[i+(e<<1)+1>>0])<<2)+(0|cr[63979+(A<<1)+1>>0])|0)!=(0|t););tr[d+((f=r+k|0)<<1)>>0]=e,tr[d+(f<<1)+1>>0]=A,r=r+1|0}while((0|r)<(0|c));break;case 1:i=0|ar[s>>2],r=0;do{for(A=16,e=l;A=(f=0==(0|A))?15:A+-1|0,(((0|cr[i+((e=(f<<31>>31)+e|0)<<1)>>0])<<2)+(0|cr[61251+(A<<1)>>0])|0)!=(0|r)||(((0|cr[i+(e<<1)+1>>0])<<2)+(0|cr[61251+(A<<1)+1>>0])|0)!=(0|t););tr[d+((f=r+k|0)<<1)>>0]=e,tr[d+(f<<1)+1>>0]=A,r=r+1|0}while((0|r)<(0|c));break;default:i=0;do{for(f=i+k|0,e=h?0|ar[u>>2]:0,A=16,r=l;A=(w=0==(0|A))?15:A+-1|0,(((0|cr[e+((r=(w<<31>>31)+r|0)<<1)>>0])<<2)+(0|cr[n+(A<<1)>>0])|0)!=(0|i)||(((0|cr[e+(r<<1)+1>>0])<<2)+(0|cr[n+(A<<1)+1>>0])|0)!=(0|t););tr[d+(f<<1)>>0]=r,tr[d+(f<<1)+1>>0]=A,i=i+1|0}while((0|i)<(0|c))}t=t+1|0}while((0|t)<(0|c));o=o+1|0}while(3!=(0|o));a=a+1|0}while(6!=(0|a))}function Qa(A,e){e|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0;if(ur=(V=ur)+208|0,H=V+24|0,G=V+8|0,t=(C=V)+40|0,w=V+192|0,132!=(0|ar[(A|=0)>>2]))return ur=V,(H=0)|H;if(!(0|tr[512+(0|ar[e+10332>>2])>>0]))return ur=V,(H=0)|H;if(!(0|tr[e+100>>0]))return ur=V,(H=0)|H;r=0==(0|ar[e+1240>>2])?1:3,i=e+32|0,f=e+24|0,n=e+36|0,o=e+28|0,a=e+40|0,c=e+44|0,l=A+8|0,u=e+5760|0,b=e+5768|0,s=1+w|0,d=2+w|0,k=3+w|0,h=4+w|0,v=5+w|0,m=6+w|0,g=7+w|0,Z=8+w|0,p=9+w|0,y=10+w|0,B=11+w|0,E=12+w|0,X=13+w|0,W=14+w|0,I=15+w|0,j=0;A:for(;;){switch(U=0|ar[((R=0==(0|j))?f:i)>>2],O=0|ar[(R?o:n)>>2],S=0|ar[e+4+(j<<2)>>2],T=0|ar[(R?a:c)>>2],0|ar[l>>2]){case 0:F=0|ar[(R?u:b)>>2],oc(t);e:do{if(0<(0|O)){if(D=U<<1,J=(0|U)<0?-1:D,(0|F)<=8)for(F=0;;)if(ac(t,S+(0|br(F,T))|0,U),(0|O)<=(0|(F=F+1|0))){F=0;break e}if(0<(0|U))F=Q=0;else for(F=R=0;;)if(ac(t,N=F||(F=0|wu(J)),D),(0|O)<=(0|(R=R+1|0)))break e;do{for(N=F||(F=0|wu(J)),_=0|br(Q,T),Y=F,R=0;x=S+(R+_<<1)|0,tr[N+(M=R<<1)>>0]=or[x>>1],tr[Y+(1|M)>>0]=(0|lr[x>>1])>>>8,(0|(R=R+1|0))!=(0|U);)N=Y;ac(t,Y,D),Q=Q+1|0}while((0|Q)<(0|O))}else F=0}while(0);if(lc(w,t),0|F&&mu(F),(0|tr[w>>0])!=(0|tr[A+12+(j<<4)>>0])){z=22;break A}if((0|tr[s>>0])!=(0|tr[A+12+(j<<4)+1>>0])){z=22;break A}if((0|tr[d>>0])!=(0|tr[A+12+(j<<4)+2>>0])){z=22;break A}if((0|tr[k>>0])!=(0|tr[A+12+(j<<4)+3>>0])){z=22;break A}if((0|tr[h>>0])!=(0|tr[A+12+(j<<4)+4>>0])){z=22;break A}if((0|tr[v>>0])!=(0|tr[A+12+(j<<4)+5>>0])){z=22;break A}if((0|tr[m>>0])!=(0|tr[A+12+(j<<4)+6>>0])){z=22;break A}if((0|tr[g>>0])!=(0|tr[A+12+(j<<4)+7>>0])){z=22;break A}if((0|tr[Z>>0])!=(0|tr[A+12+(j<<4)+8>>0])){z=22;break A}if((0|tr[p>>0])!=(0|tr[A+12+(j<<4)+9>>0])){z=22;break A}if((0|tr[y>>0])!=(0|tr[A+12+(j<<4)+10>>0])){z=22;break A}if((0|tr[B>>0])!=(0|tr[A+12+(j<<4)+11>>0])){z=22;break A}if((0|tr[E>>0])!=(0|tr[A+12+(j<<4)+12>>0])){z=22;break A}if((0|tr[X>>0])!=(0|tr[A+12+(j<<4)+13>>0])){z=22;break A}if((0|tr[W>>0])!=(0|tr[A+12+(j<<4)+14>>0])){z=22;break A}if((0|tr[I>>0])==(0|tr[A+12+(j<<4)+15>>0]))break;z=22;break A;case 1:e:do{if(0<(0|O)){if(J=U<<1,M=(0|U)<0?-1:J,F=0<(0|U),(0|ar[(R?u:b)>>2])<=8){if(!F){F=7439,z=39;break}for(R=0,F=7439;;){for(_=S+(0|br(R,T))|0,N=0;z=65535&F,x=cr[_+N>>0]^z>>>8,F=((x^=x>>>4)|z<<8)^x<<5^x<<12,(0|(N=N+1|0))!=(0|U););if((0|(R=R+1|0))==(0|O)){z=39;break e}}}if(F){F=7439,R=D=0;do{for(_=R||(R=0|wu(M)),Y=0|br(D,T),Q=R,N=0;;){if(P=S+(N+Y<<1)|0,tr[_+(x=N<<1)>>0]=or[P>>1],tr[Q+(1|x)>>0]=(0|lr[P>>1])>>>8,(0|(N=N+1|0))==(0|U)){N=0;break}_=Q}for(;x=65535&F,P=cr[Q+N>>0]^x>>>8,F=((P^=P>>>4)|x<<8)^P<<5^P<<12,(0|(N=N+1|0))<(0|J););D=D+1|0}while((0|D)!=(0|O))}else{for(R=F=0;R=R||0|wu(M),(0|(F=F+1|0))!=(0|O););F=7439}F&=65535,R&&mu(R)}else F=7439,z=39}while(0);if(39==(0|z)&&(z=0,F&=65535),(0|F)==(0|(R=0|lr[A+60+(j<<1)>>1])))break;z=43;break A;case 2:if(F=0<(0|U)&0<(0|O),(0|ar[(R?u:b)>>2])<9)if(F){F=R=0;do{for(_=R>>>8^R,Y=0|br(R,T),N=0;F=(255&(_^N^N>>>8)^cr[S+(N+Y)>>0])+F|0,(0|(N=N+1|0))!=(0|U););R=R+1|0}while((0|R)!=(0|O))}else F=0;else if(F){F=N=0;do{for(_=N>>>8^N,Y=0|br(N,T),R=0;F=(P=255&(_^R^R>>>8))+F+(P^cr[S+(R+Y)>>0])|0,(0|(R=R+1|0))!=(0|U););N=N+1|0}while((0|N)!=(0|O))}else F=0;if((0|F)==(0|(R=0|ar[A+68+(j<<2)>>2])))break;z=54;break A}if((0|r)<=(0|(j=j+1|0))){F=0,z=71;break}}return 22==(0|z)?(P=0|ar[2669],ar[C>>2]=ar[e+92>>2],Ii(P,39084,C),ur=V,0|(P=5)):43==(0|z)?(P=0|ar[2669],x=0|ar[e+92>>2],ar[G>>2]=R,ar[4+G>>2]=F,ar[8+G>>2]=x,Ii(P,39127,G),ur=V,0|(P=5)):54==(0|z)?(P=0|ar[2669],x=0|ar[e+92>>2],ar[H>>2]=R,ar[H+4>>2]=F,ar[H+8>>2]=x,Ii(P,39127,H),ur=V,0|(P=5)):71==(0|z)?(ur=V,0|F):0}function Da(A){var e,r,i,f=0,n=0,t=0,o=0,a=0;if(e=(o=0|ar[(A|=0)+18596>>2])+5932|0,n=0|ar[(r=A+18600|0)>>2],!(0|tr[n+12>>0]))return 3<=(f=0|ar[n+796>>2])>>>0&&sr(39211,39242,1508,39251),ht(A+18580|0,f,0|ar[n+792>>2]),tr[(A=A+18588|0)>>0]=0,tr[A+1>>0]=0,tr[A+2>>0]=0,(tr[A+3>>0]=0)|(A=1);if(t=0|ar[n+16>>2],f=0|lr[(0|ar[o+10340>>2])+(24*(0|ar[(0|ar[o+10284>>2])+((0|ar[(0|ar[o+10272>>2])+(t<<2)>>2])-1<<2)>>2])|0)+2>>1],n=0|ar[o+48>>2],f>>>0>=(0|ar[o+52>>2])-n>>2>>>0)return(A=0)|A;if(i=0|ar[n+(f<<2)>>2],0|Fa(e,(0|t)%(0|(o=0|ar[o+5820>>2]))|0,(0|t)/(0|o)|0))return f=0|ar[r>>2],3<=(n=0|ar[f+796>>2])>>>0&&sr(39211,39242,1508,39251),ht(A+18580|0,n,0|ar[f+792>>2]),tr[(A=A+18588|0)>>0]=0,tr[A+1>>0]=0,tr[A+2>>0]=0,(tr[A+3>>0]=0)|(A=1);if(t=0|ar[A+18604>>2],n=0|ar[A+18608>>2],o=0|ar[t+10632>>2],!(1<(t=(0|ar[t+10636>>2])-o>>2)>>>0))return(A=0)|A;for(f=1;(0|ar[o+(f<<2)>>2])!=(0|n);)if(t>>>0<=(f=f+1|0)>>>0){f=0,a=16;break}return 16==(0|a)?0|f:(f=0|ar[o+(f+-1<<2)>>2])?(Mn(f+44|0,0|ar[f+124>>2]),0|tr[1340+i>>0]?(gt(A+18580|0,a=1332+i|0),vt(a),0|(A=1)):(A=0)|A):(A=0)|A}function Ja(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0;m=0|ar[(C=(A|=0)+18596|0)>>2],h=0|ar[m+5820>>2],v=0|ar[(w=A+12|0)>>2],k=m+5965|0;do{if(!r&&0<(0|v)&0!=(0|tr[k>>0])&&0==(0|ar[A+8>>2])){if(r=v+-1|0,1<(0|h)){if(I=0|ar[(v=A+18604|0)>>2],r>>>0<(0|ar[I+10680>>2])-(0|ar[I+10676>>2])>>3>>>0){ba(m,0|ar[A+18612>>2],1,r,1),gt(A+18580|0,(0|ar[10676+(0|ar[v>>2])>>2])+((0|ar[w>>2])-1<<3)|0),vt((0|ar[10676+(0|ar[v>>2])>>2])+((0|ar[w>>2])-1<<3)|0);break}return 0|(C=2)}if(ba(m,0|ar[A+18612>>2],0,r,1),r=0|ar[A+18600>>2],(v=0|ar[r+796>>2])>>>0<3){ht(A+18580|0,v,0|ar[r+792>>2]),tr[(I=A+18588|0)>>0]=0,tr[I+1>>0]=0,tr[I+2>>0]=0,tr[I+3>>0]=0;break}sr(39211,39242,1508,39251)}}while(0);for(f=A+8|0,n=h-1|0,t=A+18612|0,o=A+18580|0,a=A+18584|0,c=m+5828|0,l=A+18604|0,I=A+18556|0,u=m+5935|0,b=A+18600|0,s=A+4|0,d=m+5966|0,i=m+10296|0,X=0|ar[w>>2],p=0|ar[f>>2],W=0|ar[C>>2];;){if((v=(0|br(X,h))+p|0)>>>0>=(0|ar[W+10276>>2])-(0|ar[W+10272>>2])>>2>>>0){r=2,v=35;break}if((0|p)>=(0|ar[W+5820>>2])){r=2,v=35;break}if((0|X)>=(0|ar[W+5828>>2])){r=2,v=35;break}if((0|p)<(0|n)&0<(0|X)&e&&ba(W,0|ar[t>>2],p+1|0,X+-1|0,1),!(0|ar[a>>2])){r=2,v=35;break}if(Ma(A),1==(0|p)&0!=(0|tr[k>>0])&&(0|X)<((0|ar[c>>2])-1|0)){if(W=0|ar[l>>2],r=0|ar[W+10676>>2],(0|ar[W+10680>>2])-r>>3>>>0<=X>>>0){r=2,v=35;break}gt(r+(X<<3)|0,o),mt((0|ar[10676+(0|ar[l>>2])>>2])+(X<<3)|0)}if((B=0!=(0|(y=0|at(I))))&&0|tr[u>>0]&&(gt(1332+(0|ar[b>>2])|0,o),mt(1332+(0|ar[b>>2])|0),tr[1340+(0|ar[b>>2])>>0]=1),Tn((0|ar[10524+(0|ar[C>>2])>>2])+(80*v|0)|0,1),E=0|ar[w>>2],Z=(g=0|ar[s>>2])+1|0,ar[s>>2]=Z,W=0|ar[C>>2],r=0|ar[W+5836>>2],v=0|ar[W+5820>>2],(0|Z)<(0|r)?r=(m=0)|ar[(0|ar[W+10284>>2])+(Z<<2)>>2]:m=1,X=(0|r)/(0|v)|0,p=(0|r)%(0|v)|0,ar[A>>2]=r,ar[f>>2]=p,ar[w>>2]=X,0==(0|y)&m){v=27;break}if(B){r=0,v=35;break}if((r=0|tr[d>>0]?(r=0|ar[i>>2],(0|ar[r+(Z<<2)>>2])!=(0|ar[r+(g<<2)>>2])):0)|(0|E)!=(0|X)&0!=(0|tr[k>>0])){v=32;break}}return 27==(0|v)?(er(4+(0|ar[A+18592>>2])|0,1004,0),tr[10516+(0|ar[C>>2])>>0]=3,0|(C=2)):32==(0|v)?0|at(I)?(tt(I),0|(C=1)):(er(4+(0|ar[A+18592>>2])|0,1017,0),tr[10516+(0|ar[C>>2])>>0]=3,0|(C=2)):35==(0|v)?0|r:0}function Ma(A){var e,r,i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0;n=0|ar[(A|=0)+18600>>2],b=0|ar[A+18596>>2],a=(0|(c=0|ar[A>>2]))%(0|(s=0|ar[b+5820>>2]))|0,s=(0|c)/(0|s)|0,r=a<<(e=0|ar[(c=b+5804|0)>>2]),i=s<>2],l=(0|br(f,s))+a|0,t=0|ar[b+10340>>2],or[t+(24*l|0)>>1]=ar[800+n>>2],l=65535&ar[n>>2],o=r>>(u=0|ar[b+10348>>2]),u=i>>u,-1<(0|o)&(0|o)<(0|f)||sr(48482,48519,128,48539),(0|u)<=-1&&sr(48543,48519,129,48539),(0|u)>=(0|ar[b+10356>>2])&&sr(48543,48519,129,48539),b=t+(24*((0|br(f,u))+o|0)|0)+2|0,or[b>>1]=l,0!=(0|tr[325+n>>0])||0!=(0|tr[326+n>>0])?(function(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0;ur=(n=ur)+32|0,i=n,a=0|ar[18600+(A|=0)>>2],f=0|ar[A+18596>>2],o=(t=i)+17|0;for(;tr[t>>0]=0,t=t+1|0,(0|t)<(0|o););t=0<(0|e)&&(C=0|br(0|ar[5820+f>>2],r),I=0|ar[10308+f>>2],(0|ar[A>>2])>(0|ar[a+800>>2])&&(0|ar[I+(C+e<<2)>>2])==(0|ar[I+(e+-1+C<<2)>>2]))?255&(0|ot(A+18556|0,0|ar[A+18580>>2])):0;o=0<(0|r)&(I=t<<24>>24==0)&&(E=0|ar[5820+f>>2],W=(0|br(E,r))+e|0,X=0|ar[10308+f>>2],C=X+((0|br(E,r+-1|0))+e<<2)|0,((0|ar[A>>2])-E|0)>=(0|ar[a+800>>2])&&(0|ar[X+(W<<2)>>2])==(0|ar[C>>2]))?255&(0|ot(A+18556|0,0|ar[A+18580>>2])):0;if(C=o<<24>>24==0,!((o|t)<<24>>24)){E=0==(0|ar[5776+f>>2])?1:3,X=a+325|0,W=A+18556|0,m=A+18580|0,g=5760+f|0,Z=5768+f|0,p=10087+f|0,y=10088+f|0,B=i+1|0,v=a+326|0,t=o=w=0;do{if((b=0==(0|w))&0!=(0|tr[X>>0])||0<(0|w)&0!=(0|tr[v>>0])){do{if(b)o=0|ot(W,1+(0|ar[m>>2])|0)?(o=0==(0|ct(W)))?1:2:0,a=o,o&=255;else{if(1!=(0|w)){a=(255&o)>>>(w<<1)&3;break}A=0|ot(W,1+(0|ar[m>>2])|0)?(A=0==(0|ct(W)))?1:2:0,o=255&((a=A)<<4|A<<2|255&o)}}while(0);if(A=255&a){a=0|ar[(u=b?g:Z)>>2],a=255&(0|lt(W,(1<<((0|a)<10?a:10)+-5)-1|0)),tr[(s=i+5+(w<<2)|0)>>0]=a,c=0|ar[u>>2],c=255&(0|lt(W,(1<<((0|c)<10?c:10)+-5)-1|0)),tr[(d=i+5+(w<<2)+1|0)>>0]=c,l=0|ar[u>>2],l=255&(0|lt(W,(1<<((0|l)<10?l:10)+-5)-1|0)),tr[(k=i+5+(w<<2)+2|0)>>0]=l,u=0|ar[u>>2],u=255&(0|lt(W,(1<<((0|u)<10?u:10)+-5)-1|0)),tr[(h=i+5+(w<<2)+3|0)>>0]=u;do{if(1==(0|A))A=a<<24>>24?(A=0!=(0|ct(W)))?-1:1:0,c=c<<24>>24?(c=0!=(0|ct(W)))?-1:1:0,l=l<<24>>24?(l=0!=(0|ct(W)))?-1:1:0,a=u<<24>>24?(a=0!=(0|ct(W)))?-1:1:0,u=255&(0|ut(W,5)),tr[i+2+w>>0]=u,b?u=p:G=30;else{if(b){u=p,a=l=-(c=A=1),t=255&(0|ut(W,2));break}G=(1==(0|w)?(G=255&(0|ut(W,2)),l=a=-1,A=c=1,t=255&(255&t|G<<2|G<<4)):(l=a=-1,A=c=1),30)}}while(0);30==(0|G)&&(G=0,u=y),b=0|cr[u>>0],u=255&(0|br(tr[s>>0]<>0]=u,s=255&(0|br(tr[d>>0]<>0]=s,d=255&(0|br(tr[k>>0]<>0]=d,k=255&(0|br(tr[h>>0]<>0]=k}}w=w+1|0}while((0|w)<(0|E));for(tr[i>>0]=o,tr[B>>0]=t,t=(0|br(0|ar[10352+f>>2],r))+e|0,t=(0|ar[10340+f>>2])+(24*t|0)+4|0,o=t+17|0;tr[t>>0]=0|tr[i>>0],i=i+1|0,(0|(t=t+1|0))<(0|o););}if(!I)for(i=0|br(0|ar[10352+f>>2],r),o=0|ar[10340+f>>2],t=o+(24*(i+e|0)|0)+4|0,i=o+(24*(e+-1+i|0)|0)+4|0,o=t+17|0;tr[t>>0]=0|tr[i>>0],i=i+1|0,(0|(t=t+1|0))<(0|o););if(C)return ur=n;t=0|ar[10352+f>>2],i=(0|br(t,r+-1|0))+e|0,o=0|ar[10340+f>>2],t=o+(24*((0|br(t,r))+e|0)|0)+4|0,i=o+(24*i|0)+4|0,o=t+17|0;for(;tr[t>>0]=0|tr[i>>0],t=t+1|0,i=i+1|0,(0|t)<(0|o););ur=n}(A,a,s,0),Ta(A,r,i,s=0|ar[c>>2],0)):Ta(A,r,i,s=e,0)}function Ta(A,e,r,i,f){var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;for(t=(A|=0)+18596|0,o=A+18600|0,a=A+18516|0,c=A+18508|0,m=A+18512|0,s=A+18556|0,n=A+18580|0,B=e|=0,y=r|=0,Z=i|=0,p=f|=0;;){if(g=0|ar[t>>2],((e=1<>2]))&&(e+y|0)<=(0|(d=0|ar[g+1252>>2]))&&(0|ar[g+5800>>2])<(0|Z)){if(e=-1<((i=B+-1|0)|y|0)&(0|B)<=(0|r)&(0|y)<(0|d)&&(h=0|ar[g+5804>>2],k=(u=0|br(y>>h,0|ar[g+5820>>2]))+(B>>h)|0,h=u+(i>>h)|0,u=0|ar[g+10340>>2],(0|or[u+(24*k|0)>>1])==(0|or[u+(24*h|0)>>1]))?(e=0|ar[g+10308>>2],(0|ar[e+(k<<2)>>2])==(0|ar[e+(h<<2)>>2])&1):0,l=(0|r)<=(0|B)|((u=y+-1|0)|B|0)<0|(0|d)<(0|y)||(f=0|ar[g+5804>>2],l=0|ar[g+5820>>2],v=B>>f,w=(0|br(y>>f,l))+v|0,v=(0|br(u>>f,l))+v|0,l=0|ar[g+10340>>2],(0|or[l+(24*w|0)>>1])!=(0|or[l+(24*v|0)>>1]))?0:(l=0|ar[g+10308>>2],(0|ar[l+(w<<2)>>2])==(0|ar[l+(v<<2)>>2])&1),e){if(e=i>>(r=0|ar[g+10368>>2]),r=y>>r,(0|e)<=-1){e=14;break}if((0|(i=0|ar[g+10372>>2]))<=(0|e)){e=14;break}if((0|r)<=-1){e=17;break}if((0|r)>=(0|ar[g+10376>>2])){e=17;break}f=(0|ar[g+10360>>2])+(3*((0|br(i,r))+e|0)|0)|0,f=((65535&(cr[f>>0]|cr[f+1>>0]<<8))>>>6&3|0)>(0|p)?3:2}else f=2;if(l){if(i=B>>(r=0|ar[g+10368>>2]),r=u>>r,(0|i)<=-1){e=22;break}if((0|(e=0|ar[g+10372>>2]))<=(0|i)){e=22;break}if((0|r)<=-1){e=25;break}if((0|r)>=(0|ar[g+10376>>2])){e=25;break}e=(0|ar[g+10360>>2])+(3*((0|br(e,r))+i|0)|0)|0,e=((65535&(cr[e>>0]|cr[e+1>>0]<<8))>>>6&3|0)>(0|p)&1}else e=0;e=0|ot(s,(0|ar[n>>2])+(e+f)|0)}else e=(0|ar[g+5800>>2])<(0|Z)&1;if(0|tr[g+5946>>0]&&(0|ar[g+10092>>2])<=(0|Z)&&(ar[c>>2]=0,ar[m>>2]=0),0|tr[752+(0|ar[o>>2])>>0]&&(0|ar[g+10096>>2])<=(0|Z)&&(ar[a>>2]=0),!e){e=42;break}if(i=(f=1<<(r=Z+-1|0))+B|0,f=f+y|0,Ta(A,B,y,r,l=p+1|0),(0|i)<(0|ar[b>>2])&&Ta(A,i,y,r,l),(0|f)<(0|ar[(e=g+1252|0)>>2])&&Ta(A,B,f,r,l),(0|i)>=(0|ar[b>>2])){e=48;break}if(!((0|f)<(0|ar[e>>2]))){e=48;break}B=i,y=f,Z=r,p=l}if(14==(0|e))sr(48482,48519,118,48539);else if(17==(0|e))sr(48543,48519,119,48539);else if(22==(0|e))sr(48482,48519,118,48539);else if(25==(0|e))sr(48543,48519,119,48539);else{if(42==(0|e)){if(b=B>>(m=0|ar[g+10368>>2]),r=y>>m,s=(e=1<<(m=Z-m|0))+r|0,31!=(0|m)){l=e+b|0,u=g+10372|0,i=g+10360|0,f=(65535&p)<<6&192,e=r;do{for(r=b;g=(0|br(0|ar[u>>2],e))+r|0,g=(0|ar[i>>2])+(3*g|0)|0,m=-193&(cr[g>>0]|cr[g+1>>0]<<8)|f,tr[g>>0]=m,tr[g+1>>0]=m>>8,(0|(r=r+1|0))<(0|l););e=e+1|0}while((0|e)<(0|s))}return void function(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0;if(ur=(c=ur)+80|0,n=(D=c)+56|0,t=c+40|0,o=c+24|0,a=0|ar[(C=18596+(A|=0)|0)>>2],v=0|ar[(E=A+18600|0)>>2],function(A,e,r,i,f){e|=0,r|=0,i|=0;var n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(n=10368+(A|=0)|0,(f|=0)&&(c=0|ar[n>>2],b=e>>c,l=r>>c,u=(t=1<<(c=i-c|0))+l|0,31!=(0|c))){o=t+b|0,a=A+10372|0,c=A+10360|0,t=l;do{for(f=b;l=(0|br(0|ar[a>>2],t))+f|0,l=(0|ar[c>>2])+(3*l|0)|0,s=-8&(cr[l>>0]|cr[l+1>>0]<<8),tr[l>>0]=s,tr[l+1>>0]=s>>8,(0|(f=f+1|0))<(0|o););t=t+1|0}while((0|t)<(0|u))}t=0|ar[n>>2],o=e>>t,t=r>>t,(0|o)<=-1&&sr(48482,48519,128,48539);f=0|ar[A+10372>>2],(0|f)<=(0|o)&&sr(48482,48519,128,48539);(0|t)<=-1&&sr(48543,48519,129,48539);{if((0|t)<(0|ar[A+10376>>2]))return s=(0|ar[A+10360>>2])+(3*((0|br(f,t))+o|0)|0)|0,i=-8&(cr[s>>0]|cr[s+1>>0]<<8)|7&i,tr[s>>0]=i,tr[s+1>>0]=i>>8;sr(48543,48519,129,48539)}}(a,e,r,i,1),J=0|ar[10448+a>>2],h=e>>J,u=r>>J,w=(l=1<<(J=i-J|0))+u|0,31!=(0|J)){b=l+h|0,d=10452+a|0,k=10440+a|0,l=u;do{for(u=h;J=(0|br(0|ar[d>>2],l))+u|0,((tr[(0|ar[k>>2])+J>>0]=0)|(u=u+1|0))<(0|b););l=l+1|0}while((0|l)<(0|w))}J=1<>0]?(Q=0|ot(A+18556|0,161+(0|ar[A+18580>>2])|0),0|(tr[A+32>>0]=Q)&&function(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0;if(l=0|ar[10368+(A|=0)>>2],t=e>>l,u=r>>l,n=(i=1<<(l=i-l|0))+u|0,31!=(0|l)){a=i+t|0,c=A+10372|0,l=A+10360|0,o=(1&f)<<11&65535,i=u;do{for(f=t;u=(0|br(0|ar[c>>2],i))+f|0,u=(0|ar[l>>2])+(3*u|0)|0,b=-2049&(cr[u>>0]|cr[u+1>>0]<<8)|o,tr[u>>0]=b,tr[u+1>>0]=b>>8,(0|(f=f+1|0))<(0|a););i=i+1|0}while((0|i)<(0|n))}i=0|ar[A+10348>>2],o=e>>i,i=r>>i,(0|o)<=-1&&sr(48482,48519,128,48539);f=0|ar[A+10352>>2],(0|f)<=(0|o)&&sr(48482,48519,128,48539);(0|i)<=-1&&sr(48543,48519,129,48539);{if((0|i)<(0|ar[A+10356>>2]))return b=(0|ar[A+10340>>2])+(24*((0|br(f,i))+o|0)|0)+22|0,tr[b>>0]=1;sr(48543,48519,129,48539)}}(a,e,r,i,1)):tr[A+32>>0]=0;w=v+20|0;do{if(2!=(0|ar[w>>2])){h=0|ar[C>>2],l=0<=((u=e+-1|0)|r|0)&&(0|ar[h+1248>>2])>=(0|e)&&(0|ar[h+1252>>2])>(0|r)&&(g=0|ar[h+5804>>2],Q=0|br(r>>g,0|ar[h+5820>>2]),m=Q+(e>>g)|0,g=Q+(u>>g)|0,Q=0|ar[h+10340>>2],(0|or[Q+(24*m|0)>>1])==(0|or[Q+(24*g|0)>>1]))?(l=0|ar[h+10308>>2],(0|ar[l+(m<<2)>>2])==(0|ar[l+(g<<2)>>2])&1):0,d=0<=((k=r+-1|0)|e|0)&&(0|ar[h+1248>>2])>(0|e)&&(0|ar[h+1252>>2])>=(0|r)&&(Y=0|ar[h+5804>>2],Q=0|ar[h+5820>>2],p=e>>Y,Z=(0|br(r>>Y,Q))+p|0,p=(0|br(k>>Y,Q))+p|0,Q=0|ar[h+10340>>2],(0|or[Q+(24*Z|0)>>1])==(0|or[Q+(24*p|0)>>1]))?(d=0|ar[h+10308>>2],(0|ar[d+(Z<<2)>>2])==(0|ar[d+(p<<2)>>2])&1):0;do{if(l){if(Q=0|ar[h+10368>>2],l=u>>Q,u=r>>Q,(0|l)<=-1&&sr(48482,48519,118,48539),(0|(b=0|ar[h+10372>>2]))<=(0|l)&&sr(48482,48519,118,48539),(0|u)<=-1&&sr(48543,48519,119,48539),(0|u)<(0|ar[h+10376>>2])){y=(0|ar[h+10360>>2])+(3*((0|br(b,u))+l|0)|0)|0,y=512==(768&(cr[y>>0]|cr[y+1>>0]<<8))?6:5;break}sr(48543,48519,119,48539)}else y=5}while(0);do{if(d){if(l=0|ar[h+10368>>2],b=e>>l,l=k>>l,(0|b)<=-1&&sr(48482,48519,118,48539),(0|(u=0|ar[h+10372>>2]))<=(0|b)&&sr(48482,48519,118,48539),(0|l)<=-1&&sr(48543,48519,119,48539),(0|l)<(0|ar[h+10376>>2])){B=(0|ar[h+10360>>2])+(3*((0|br(u,l))+b|0)|0)|0,B=512==(768&(cr[B>>0]|cr[B+1>>0]<<8))&1;break}sr(48543,48519,119,48539)}else B=0}while(0);if(!((255&(0|ot(u=A+18556|0,(0|ar[(l=A+18580|0)>>2])+(B+y)|0)))<<24>>24)){if(2==(0|ar[w>>2])){Q=0;break}Q=0==(0|ot(u,149+(0|ar[l>>2])|0))&1;break}A:do{if(2<=(0|ar[804+(0|ar[E>>2])>>2])&&0!=(0|ot(u,148+(0|ar[l>>2])|0)))if(1<((0|ar[804+(0|ar[E>>2])>>2])-1|0)){l=1;do{if(!(0|ct(u)))break A;l=l+1|0}while((0|l)<((0|ar[804+(0|ar[E>>2])>>2])-1|0))}else l=1;else l=0}while(0);if(tr[(b=A+26|0)>>0]=15&tr[b>>0]|(255&l)<<5&255|16,b=0|ar[(l=10368+a|0)>>2],u=e>>b,b=r>>b,(0|u)<=-1&&sr(48482,48519,128,48539),(0|(s=0|ar[(h=10372+a|0)>>2]))<=(0|u)&&sr(48482,48519,128,48539),(0|b)<=-1&&sr(48543,48519,129,48539),(0|b)>=(0|ar[10376+a>>2])&&sr(48543,48519,129,48539),D=(0|ar[(k=10360+a|0)>>2])+(3*((0|br(s,b))+u|0)|0)|0,d=-57&(cr[D>>0]|cr[D+1>>0]<<8),tr[D>>0]=d,tr[D+1>>0]=d>>8,D=0|ar[l>>2],d=e>>D,u=r>>D,s=(l=1<<(D=i-D|0))+u|0,31!=(0|D)){b=l+d|0,l=u;do{for(u=d;D=(0|br(0|ar[h>>2],l))+u|0,D=(0|ar[k>>2])+(3*D|0)|0,i=-769&(cr[D>>0]|cr[D+1>>0]<<8)|512,tr[D>>0]=i,tr[D+1>>0]=i>>8,(0|(u=u+1|0))<(0|b););l=l+1|0}while((0|l)<(0|s))}return mc(0|ar[A+18592>>2],0|ar[E>>2],0|ar[C>>2],A+16|0,e,r,0,0,J,J,J,0),ur=c}Q=0}while(0);if(Y=0|ar[(m=10368+a|0)>>2],w=e>>Y,u=r>>Y,v=(l=1<<(Y=i-Y|0))+u|0,31!=(0|Y)){b=l+w|0,d=10372+a|0,k=10360+a|0,h=(65535&Q)<<8&65535,l=u;do{for(u=w;Y=(0|br(0|ar[d>>2],l))+u|0,Y=(0|ar[k>>2])+(3*Y|0)|0,_=-769&(cr[Y>>0]|cr[Y+1>>0]<<8)|h,tr[Y>>0]=_,tr[Y+1>>0]=_>>8,(0|(u=u+1|0))<(0|b););l=l+1|0}while((0|l)<(0|v))}if((Y=0!=(0|Q))||(0|ar[5800+a>>2])==(0|i)){u=0|ar[C>>2],h=0==(0|Q),l=0|ot(b=A+18556|0,8+(0|ar[(d=A+18580|0)>>2])|0);do{if(h)s=0|l?0:3;else if(l)s=0;else{if(k=0|ot(b,9+(0|ar[d>>2])|0),(0|ar[u+5800>>2])>=(0|i)){if(0|k){s=1;break}if(3==(0|i)){s=2;break}s=3-(0|ot(b,10+(0|ar[d>>2])|0))|0;break}if(!(0|tr[u+5466>>0])){s=0|k?1:2;break}if(0|ot(b,11+(0|ar[d>>2])|0)){s=0|k?1:2;break}l=0|ct(b),0!=(0|k)&(u=0!=(0|l))?s=5:(b=0==(0|k))|u?l|k?b&u?s=7:sr(55739,39242,1760,39275):s=6:s=4}}while(0);_=h&3==(0|s)&1}else s=_=0;u=0|ar[m>>2],l=e>>u,u=r>>u,(0|l)<=-1&&sr(48482,48519,128,48539);b=0|ar[10372+a>>2],(0|b)<=(0|l)&&sr(48482,48519,128,48539);(0|u)<=-1&&sr(48543,48519,129,48539);(0|u)>=(0|ar[10376+a>>2])&&sr(48543,48519,129,48539);R=(0|ar[10360+a>>2])+(3*((0|br(b,u))+l|0)|0)|0,N=-57&(cr[R>>0]|cr[R+1>>0]<<8)|(65535&s)<<3&56,tr[R>>0]=N,tr[R+1>>0]=N>>8,R=0==(0|Q),N=0==(0|s);A:do{if(R){if(N&&0|tr[5468+a>>0]&&(0|ar[5884+a>>2])<=(0|i)&&(0|ar[5888+a>>2])>=(0|i)&&0|at(G=A+18556|0)){if(Ua(a,e,r,i,1),l=0|ar[(Z=A+18560|0)>>2],ar[D>>2]=l,ar[D+4>>2]=(0|ar[A+18564>>2])-l,ar[(l=D+8|0)>>2]=0,ar[l+4>>2]=0,ar[D+16>>2]=0,l=0|ar[C>>2],b=0|ar[l+5760>>2],h=0|tr[l+5469>>0],k=0|ar[l+40>>2],l=0|ar[l+4>>2],u=(0|br(k,r))+e|0,8<(0|b)){if(d=l+(u<<1)|0,s=b-h|0,31!=(0|i)){u=0;do{for(b=0|br(u,k),l=0;i=(0|At(D,h))<>1]=i,(0|(l=l+1|0))!=(0|J););u=u+1|0}while((0|u)!=(0|J))}}else if(d=l+u|0,s=b-h|0,31!=(0|i)){u=0;do{for(b=0|br(u,k),l=0;i=(0|At(D,h))<>0]=i,(0|(l=l+1|0))!=(0|J););u=u+1|0}while((0|u)!=(0|J))}u=0|ar[C>>2];do{if(0|ar[u+5776>>2])if(w=0|ar[u+5768>>2],k=0|ar[u+5780>>2],h=(0|J)/(0|k)|0,b=0|ar[u+5784>>2],v=(0|J)/(0|b)|0,l=0|tr[u+5470>>0],g=l<<24>>24,m=0|ar[u+44>>2],s=0|ar[u+8>>2],d=(0|br(m,(0|r)/(0|b)|0))+((0|e)/(0|k)|0)|0,8<(0|w)){if(s=s+(d<<1)|0,d=w-g|0,0<(0|h)&0<(0|v)){u=0;do{for(b=0|br(u,m),l=0;i=(0|At(D,g))<>1]=i,(0|(l=l+1|0))!=(0|h););u=u+1|0}while((0|u)!=(0|v));u=0|ar[C>>2],m=0|ar[u+44>>2],w=0|ar[u+5768>>2],s=0|ar[u+5780>>2],b=0|ar[u+5784>>2],l=0|tr[u+5470>>0]}else s=k;if(v=(0|J)/(0|s)|0,h=(0|J)/(0|b)|0,k=l<<24>>24,d=(0|ar[u+12>>2])+((0|br((0|r)/(0|b)|0,m))+((0|e)/(0|s)|0)<<1)|0,b=w-k|0,!(0<(0|v)&0<(0|h)))break;u=0;do{for(s=0|br(u,m),l=0;r=(0|At(D,k))<>1]=r,(0|(l=l+1|0))!=(0|v););u=u+1|0}while((0|u)!=(0|h))}else{if(s=s+d|0,d=w-g|0,0<(0|h)&0<(0|v)){u=0;do{for(b=0|br(u,m),l=0;i=(0|At(D,g))<>0]=i,(0|(l=l+1|0))!=(0|h););u=u+1|0}while((0|u)!=(0|v));u=0|ar[C>>2],m=0|ar[u+44>>2],w=0|ar[u+5768>>2],s=0|ar[u+5780>>2],b=0|ar[u+5784>>2],l=0|tr[u+5470>>0]}else s=k;if(v=(0|J)/(0|s)|0,h=(0|J)/(0|b)|0,k=l<<24>>24,d=(0|ar[u+12>>2])+((0|br((0|r)/(0|b)|0,m))+((0|e)/(0|s)|0))|0,b=w-k|0,!(0<(0|v)&0<(0|h)))break;u=0;do{for(s=0|br(u,m),l=0;r=(0|At(D,k))<>0]=r,(0|(l=l+1|0))!=(0|v););u=u+1|0}while((0|u)!=(0|h))}}while(0);return rt(D),ar[Z>>2]=ar[D>>2],tt(G),ur=c}if(G=(V=3==(0|s))?(0|J)/2|0:J,V=(V<<31>>31)+i|0,!(C=31==(0|i))){s=A+18556|0,d=A+18580|0,u=l=0;do{for(b=0;E=0|ot(s,12+(0|ar[d>>2])|0),l=(f=l)+1|0,ar[D+(f<<2)>>2]=E,(0|(b=b+G|0))<(0|J););u=u+G|0}while((0|u)<(0|J))}if(u=0<=((l=e+-1|0)|r|0)&&(0|ar[1248+a>>2])>=(0|e)&&(0|ar[1252+a>>2])>(0|r)&&(W=0|ar[5804+a>>2],f=0|br(r>>W,0|ar[5820+a>>2]),X=f+(e>>W)|0,W=f+(l>>W)|0,f=0|ar[10340+a>>2],(0|or[f+(24*X|0)>>1])==(0|or[f+(24*W|0)>>1]))?(u=0|ar[10308+a>>2],(0|ar[u+(X<<2)>>2])==(0|ar[u+(W<<2)>>2])&1):0,l=0<=((l=r+-1|0)|e|0)&&(0|ar[1248+a>>2])>(0|e)&&(0|ar[1252+a>>2])>=(0|r)&&(X=0|ar[5804+a>>2],W=0|ar[5820+a>>2],F=e>>X,I=(0|br(r>>X,W))+F|0,F=(0|br(l>>X,W))+F|0,W=0|ar[10340+a>>2],(0|or[W+(24*I|0)>>1])==(0|or[W+(24*F|0)>>1]))?(l=0|ar[10308+a>>2],(0|ar[l+(I<<2)>>2])==(0|ar[l+(F<<2)>>2])&1):0,!C){I=A+18556|0,W=0!=(0|u),v=0!=(0|l),m=5872+a|0,g=5876+a|0,Z=10408+a|0,p=10412+a|0,y=10400+a|0,B=4+o|0,E=8+o|0,l=h=0;do{f=h+r|0,X=v|0<(0|h),w=0;do{if(s=0|ar[D+(l<<2)>>2],b=s?(u=n,0|lt(I,2)):(u=t,0|ut(I,5)),ar[u+(l<<2)>>2]=b,F=w+e|0,k=0|ar[m>>2],k=(0|br(f>>k,0|ar[g>>2]))+(F>>k)|0,Ct(o,F,f,k,W|0<(0|w),X,a),u=1==(0|s)?0|ar[o+(ar[n+(l<<2)>>2]<<2)>>2]:(u=0|ar[o>>2],(0|(b=0|ar[B>>2]))<(0|u)?(ar[o>>2]=b,ar[B>>2]=u,s=b):(s=u,u=b),(0|(b=0|ar[E>>2]))<(0|s)?(ar[o>>2]=b,ar[E>>2]=s,d=s):(d=b,b=s),(0|d)<(0|u)?(ar[B>>2]=d,ar[E>>2]=u,s=d):(s=u,u=d),F=0|ar[t+(l<<2)>>2],((0|u)<=(0|(F=((0|s)<=(0|(F=((0|b)<=(0|F)&1)+F|0))&1)+F|0))&1)+F|0),F=V-(0|ar[Z>>2])|0,d=1<>2],u))|0,tr[(0|ar[y>>2])+F>>0]=s,(0|(b=b+1|0))<(0|d););u=u+1|0}while((0|u)<(0|d))}l=l+1|0,w=w+G|0}while((0|w)<(0|J));h=h+G|0}while((0|h)<(0|J))}d=5776+a|0;e:do{switch(0|ar[d>>2]){case 3:if(!C){h=A+18556|0,w=A+18580|0,v=10408+a|0,m=10412+a|0,g=10416+a|0,Z=10400+a|0,k=0;r:for(;;){p=k+r|0,d=0;do{if(y=d+e|0,s=0|ot(h,13+(0|ar[w>>2])|0)?0|ut(h,2):4,u=0|ar[v>>2],l=y>>u,u=p>>u,(0|l)<=-1){l=174;break r}if((0|(b=0|ar[m>>2]))<=(0|l)){l=174;break r}if((0|u)<=-1){l=175;break r}if((0|u)>=(0|ar[g>>2])){l=175;break r}l=(0|ar[Z>>2])+((0|br(b,u))+l)|0,l=0|cr[l>>0],(u=4==(0|s))||(D=0|ar[7948+(s<<2)>>2],l=(0|D)==(0|l)?34:D),Sa(a,y,p,V,l,u),d=d+G|0}while((0|d)<(0|J));if((0|J)<=(0|(k=k+G|0)))break e}174==(0|l)?sr(48482,48519,118,48539):175==(0|l)&&sr(48543,48519,119,48539)}break;case 0:break;default:s=0|ot(l=A+18556|0,13+(0|ar[A+18580>>2])|0)?0|ut(l,2):4,u=0|ar[10408+a>>2],l=e>>u,u=r>>u,(0|l)<=-1&&sr(48482,48519,118,48539),(0|(b=0|ar[10412+a>>2]))<=(0|l)&&sr(48482,48519,118,48539),(0|u)<=-1&&sr(48543,48519,119,48539),(0|u)>=(0|ar[10416+a>>2])&&sr(48543,48519,119,48539),l=(0|ar[10400+a>>2])+((0|br(b,u))+l)|0,l=0|cr[l>>0],(u=4==(0|s))||(J=0|ar[7948+(s<<2)>>2],l=(0|J)==(0|l)?34:J),2==(0|ar[d>>2])&&(l=0|cr[39292+l>>0]),Sa(a,e,r,i,l,u)}}while(0)}else{if(N){Oa(A,e,r,0,0,J,J,f,J,0);break}switch(0|s){case 1:Oa(A,e,r,0,0,J,D=(0|J)/2|0,f,J,0),Oa(A,e,r,0,D,J,D,f,J,1);break A;case 2:Oa(A,e,r,0,0,D=(0|J)/2|0,J,f,J,0),Oa(A,e,r,D,0,D,J,f,J,1);break A;case 4:Oa(A,e,r,0,0,J,D=(0|J)/4|0,f,J,0),Oa(A,e,r,0,D,J,(3<>0]))&&0==(0|ot(A+18556|0,153+(0|ar[A+18580>>2])|0)))return ur=c;l=R?(0|ar[1396+a>>2])+_|0:0|ar[1392+a>>2];J=0!=(0|ar[5776+a>>2])&1,function A(e,r,i,f,n,t,o,a,c,l,u,b,s,d,k){e|=0;r|=0;i|=0;f|=0;n|=0;t|=0;o|=0;a|=0;c|=0;l|=0;u|=0;b|=0;s|=0;d|=0;k|=0;var h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0;X=e+18596|0;w=0|ar[X>>2];h=0|ar[w+10368>>2];v=r>>h;(0|v)<=-1&&sr(48482,48519,118,48539);W=1==(0|b);I=e+18556|0;C=e+18580|0;G=0!=(0|b);E=i;y=f;p=n;B=a;Z=l;g=w;m=v;f=i>>h;for(;;){if((0|(l=0|ar[g+10372>>2]))<=(0|m)){V=4;break}if((0|f)<=-1){V=7;break}if((0|(w=0|ar[g+10376>>2]))<=(0|f)){V=7;break}if(v=0|ar[g+10360>>2],i=v+(3*((0|br(l,f))+m|0)|0)|0,(65535&(i=(65535&(cr[i>>0]|cr[i+1>>0]<<8))>>>8&3)|0)!=(0|s)){V=9;break}if((n=(0|ar[g+5868>>2])<(0|B))||((0|u)<=(0|c)?1:(0|ar[g+5864>>2])>=(0|B))|G&0==(0|c)){if(f=E>>h,!(-1<(0|(a=r>>h))&(0|a)<(0|l))){V=16;break}if(!(-1<(0|f)&(0|f)<(0|w))){V=18;break}l=v+(3*((0|br(l,f))+a|0)|0)|0,l=1&(W&0==(0|c)|n|0!=(56&(cr[l>>0]|cr[l+1>>0]<<8))&(i<<16>>16==1?0==(ar[g+1392>>2]|c|0):0))}else{if(3<=(f=5-B|0)>>>0){V=13;break}l=0|ot(I,(0|ar[C>>2])+(f+20)|0)}if(w=0!=(0|l)){if(n=0|ar[g+10448>>2],f=r>>n,n=E>>n,(0|f)<=-1){V=23;break}if((0|(h=0|ar[g+10452>>2]))<=(0|f)){V=23;break}if((0|n)<=-1){V=26;break}if((0|n)>=(0|ar[g+10456>>2])){V=26;break}m=(0|ar[g+10440>>2])+((0|br(h,n))+f)|0,tr[m>>0]=0|cr[m>>0]|1<>2]))|2<(0|B)&0!=(0|g)?(d<<24>>24?(f=c+16|0,n=0|ot(I,(0|ar[C>>2])+f|0),2==(0|ar[a>>2])&&3==(0|B)|0==(0|l)&&(n=(0|ot(I,(0|ar[C>>2])+f|0))<<1|n)):n=-1,k<<24>>24?(h=c+16|0,f=0|ot(I,(0|ar[C>>2])+h|0),2==(0|ar[a>>2])&&3==(0|B)|0==(0|l)&&(f=(0|ot(I,(0|ar[C>>2])+h|0))<<1|f)):f=-1,(0|n)<0?V=38:l=n):(f=-1,V=38),38==(0|V)){if((n=2==((V=0)|B))&0==(0|c)){V=39;break}l=n&0<(0|c)?255&d:0}if(h=(0|f)<0?2==(0|B)&0<(0|c)?255&k:0:f,!w){V=43;break}if(n=(a=1<<(f=B+-1|0))+r|0,a=a+E|0,A(e,r,E,r,E,t,o,f,c=c+1|0,0,u,b,s,d=255&l,k=255&h),A(e,n,E,r,E,t,o,f,c,1,u,b,s,d,k),A(e,r,a,r,E,t,o,f,c,2,u,b,s,d,k),g=0|ar[X>>2],h=0|ar[g+10368>>2],(0|(m=n>>h))<=-1){V=4;break}p=E,y=r,r=n,B=f,Z=3,f=(E=a)>>h}switch(0|V){case 4:sr(48482,48519,118,48539);break;case 7:sr(48543,48519,119,48539);break;case 9:sr(39344,39242,3827,39367);break;case 13:sr(39387,39242,1820,39416);break;case 16:sr(48482,48519,118,48539);break;case 18:sr(48543,48519,119,48539);break;case 23:sr(48482,48519,128,48539);break;case 26:sr(48543,48519,129,48539);break;case 39:sr(39444,39242,3894,39367);break;case 43:return i<<16>>16==0|0!=(l|c|h|0)?(V=0|ot(I,(0|ar[C>>2])+(0==(0|c)?15:14)|0),void za(e,r,E,y,p,t,o,B,0,Z,V,l,h)):void za(e,r,E,y,p,t,o,B,0,Z,V=1,l,h)}}(A,e,r,e,r,e,r,i,0,0,l,_,Q,J,J),ur=c}(A,B,y,Z,p)}if(48==(0|e))return}}function Ua(A,e,r,i,f){r|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0;if(t=(e|=0)>>(l=0|ar[(A|=0)+10368>>2]),u=r>>l,n=(i=1<<(l=i-l|0))+u|0,31!=(0|l)){a=i+t|0,c=A+10372|0,l=A+10360|0,o=(1&f)<<10&65535,i=u;do{for(f=t;u=(0|br(0|ar[c>>2],i))+f|0,u=(0|ar[l>>2])+(3*u|0)|0,b=-1025&(cr[u>>0]|cr[u+1>>0]<<8)|o,tr[u>>0]=b,tr[u+1>>0]=b>>8,(0|(f=f+1|0))<(0|a););i=i+1|0}while((0|i)<(0|n))}if(o=e>>(i=0|ar[A+10348>>2]),i=r>>i,(0|o)<=-1&&sr(48482,48519,128,48539),(0|(f=0|ar[A+10352>>2]))<=(0|o)&&sr(48482,48519,128,48539),(0|i)<=-1&&sr(48543,48519,129,48539),(0|i)<(0|ar[A+10356>>2]))return b=(0|ar[A+10340>>2])+(24*((0|br(f,i))+o|0)|0)+22|0,void(tr[b>>0]=1);sr(48543,48519,129,48539)}function Sa(A,e,r,i,f,n){e|=0,r|=0,f|=0;var t,o,a,c,l=0,u=0;if(c=255&((n|=0)?128|f:f),o=1<<(u=(i|=0)-(0|ar[(A|=0)+10408>>2])|0),l=0|ar[A+5872>>2],r=(0|br(r>>l,0|ar[(a=A+5876|0)>>2]))+(e>>l)|0,31!=(0|u)){t=A+5880|0,l=A+10432|0,u=A+10424|0,i=A+10420|0,n=0;A:for(;;){f=0;do{if((0|f)>=(0|ar[a>>2])){f=10;break A}if((0|n)>=(0|ar[t>>2])){f=11;break A}if((0|(e=r+f+(0|br(0|ar[l>>2],n))|0))>=(0|ar[u>>2])){f=12;break A}tr[(0|ar[i>>2])+e>>0]=c,f=f+1|0}while((0|f)<(0|o));if((0|o)<=(0|(n=n+1|0))){f=9;break}}9!=(0|f)&&(10==(0|f)?sr(39542,48519,659,39565):11==(0|f)?sr(39584,48519,660,39565):12==(0|f)&&sr(39608,48519,663,39565))}}function Oa(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b,s=0,d=0,k=0,h=0,w=0,v=0;if(l=0|ar[(w=(A|=0)+18600|0)>>2],k=0|ot(h=A+18556|0,147+(0|ar[(u=A+18580|0)>>2])|0),b=A+16|0,tr[(v=A+26|0)>>0]=(255&k)<<4&16|-17&tr[v>>0],k){A:do{if(2<=(0|ar[804+(0|ar[w>>2])>>2])&&0!=(0|ot(h,148+(0|ar[u>>2])|0)))if(1<((0|ar[804+(0|ar[w>>2])>>2])-1|0)){s=1;do{if(!(0|ct(h)))break A;s=s+1|0}while((0|s)<((0|ar[804+(0|ar[w>>2])>>2])-1|0))}else s=1;else s=0}while(0);o=31&tr[v>>0],s=(255&s)<<5&255}else{do{if(0|ar[20+l>>2])k=1;else{if(s=0|ar[u>>2],12!=(t+n|0)&&0|ot(h,s+156+o|0)){k=3;break}k=1+(0|ot(h,s+160|0))|0}}while(0);if(tr[v>>0]=-4&tr[v>>0]|3&k,2!=(0|k)){s=(0|ar[328+l>>2])-1|0;A:do{if(0!=(0|s)&&0!=(0|ot(h,154+(0|ar[u>>2])|0)))for(o=0;;){if((0|(d=o+1|0))==(0|s))break A;if(!(o=o?0|ct(h):0|ot(h,155+(0|ar[u>>2])|0))){s=d;break}o=d}else s=0}while(0);if(tr[b>>0]=s,xa(A,0,0,0),d=255&(0|ot(h,152+(0|ar[u>>2])|0)),tr[v>>0]=d<<2&4|-5&tr[v>>0],1==(0|k))return void mc(h=0|ar[(h=A+18592|0)>>2],w=0|ar[w>>2],v=0|ar[(v=A+18596|0)>>2],b,e,r,i,f,a,n,t,c)}d=(0|ar[332+l>>2])-1|0;A:do{if(0!=(0|d)&&0!=(0|ot(h,154+(0|ar[u>>2])|0)))for(o=0;;){if((0|(s=o+1|0))==(0|d)){s=d;break A}if(!(o=o?0|ct(h):0|ot(h,155+(0|ar[u>>2])|0)))break;o=s}else s=0}while(0);tr[A+17>>0]=s,3==(0|k)&0!=(0|tr[370+l>>0])?(or[A+22>>1]=0,or[A+24>>1]=0):xa(A,0,0,1),s=255&(0|ot(h,152+(0|ar[u>>2])|0)),o=-9&tr[v>>0],s=s<<3&8}tr[v>>0]=o|s,mc(h=0|ar[(h=A+18592|0)>>2],w=0|ar[w>>2],v=0|ar[(v=A+18596|0)>>2],b,e,r,i,f,a,n,t,c)}function za(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,b|=0;var s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0;-1==(0|(u|=0))&&sr(39481,39242,3547,39494),-1==(0|b)&&sr(39514,39242,3548,39494),-1==(0|l)&&sr(39527,39242,3549,39494),g=0|ar[(w=A+18596|0)>>2],X=2<(0|(X=((1^(d=3==(0|(k=0|ar[g+5776>>2]))))<<31>>31)+o|0))?X:2,Z=b|u,tr[(v=A+33|0)>>0]=0,tr[v+1>>0]=0,tr[v+2>>0]=0,a=e>>(v=(tr[v+3>>0]=0)|ar[g+10368>>2]),v=r>>v,(0|a)<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[g+10372>>2]))<=(0|a)&&sr(48482,48519,118,48539),(0|v)<=-1&&sr(48543,48519,119,48539),(0|v)>=(0|ar[g+10376>>2])&&sr(48543,48519,119,48539),E=(0|ar[g+10360>>2])+(3*((0|br(m,v))+a|0)|0)|0,h=65535&(E=(65535&(cr[E>>0]|cr[E+1>>0]<<8))>>>8&3),s=0!=(0|l),m=0!=(0|Z);do{if(Z|l|0){if(0!=(0|tr[g+5946>>0])&&0==(0|ar[(p=A+18508|0)>>2])){v=A+18556|0,a=A+18580|0;do{if(0|ot(v,139+(0|ar[a>>2])|0)){if(0|ot(v,140+(0|ar[a>>2])|0))if(0|ot(v,140+(0|ar[a>>2])|0))if(0|ot(v,140+(0|ar[a>>2])|0))if(0|ot(v,140+(0|ar[a>>2])|0)){if(!(a=5+(0|bt(v,0))|0)){a=v=0;break}}else a=4;else a=3;else a=2;else a=1;v=0|ct(v)}else a=v=0}while(0);ar[p>>2]=1,g=0|br(1-(v<<1)|0,a),ar[A+18512>>2]=g,g=1}else g=0;if(m&0!=(0|tr[752+(0|ar[A+18600>>2])>>0])&&0==(0|tr[A+32>>0])&&0==(0|ar[(y=A+18516|0)>>2])?(p=0|ot(v=A+18556|0,23+(0|ar[(a=A+18580|0)>>2])|0),m=0|ar[w>>2],a=p?(a=1<(0|cr[m+10074>>0])?0|ot(v,24+(0|ar[a>>2])|0):0,ar[y>>2]=1,ar[A+18520>>2]=tr[m+10075+a>>0],0|tr[m+10081+a>>0]):(ar[y>>2]=1,ar[A+18520>>2]=0),ar[A+18524>>2]=a):B=33,33==(0|B)&&!g)break;zn(A,e,r,n,t)}}while(0);if(m=1<>2],y=0|ar[B+5780>>2],B=0|ar[B+5784>>2],ar[(l=A+28|0)>>2]=0,s&&ja(A,e,r,o,0),Ha(A,e,r,n,t,m,0,h,s),!(2<(0|o)|d))return 3!=(0|c)?0:((a=0!=(1&u|0))&&ja(A,i,f,o,1),0|ar[5776+(0|ar[w>>2])>>2]&&Ha(A,(0|i)/(0|y)|0,(0|f)/(0|B)|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,m,1,h,a),(a=0!=(2&u|0))&&ja(A,i,m+f|0,o,1),(v=2==(0|k))&&Ha(A,(0|i)/(0|y)|0,((0|f)/(0|B)|0)+m|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,m,1,h,a),(a=0!=(1&b|0))&&ja(A,i,f,o,2),0|ar[5776+(0|ar[w>>2])>>2]&&Ha(A,(0|i)/(0|y)|0,(0|f)/(0|B)|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,m,2,h,a),(a=0!=(2&b|0))&&ja(A,i,p+f|0,o,2),v&&Ha(A,(0|i)/(0|y)|0,((0|f)/(0|B)|0)+m|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,m,2,h,a),0);g=0|ar[w>>2];A:do{if(s&0!=(0|tr[g+10071>>0])){do{if(E<<16>>16!=1){if(a=e>>(v=0|ar[g+10428>>2]),v=r>>v,(0|a)<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[g+10432>>2]))<=(0|a)&&sr(48482,48519,118,48539),(0|v)<=-1&&sr(48543,48519,119,48539),(0|v)<(0|ar[g+10436>>2])){if(o=(0|ar[g+10420>>2])+((0|br(m,v))+a)|0,(0|tr[o>>0])<0)break;v=a=0;break A}sr(48543,48519,119,48539)}}while(0);for(m=A+18556|0,g=A+18580|0,v=a=0;v=(1&(o=0!=(0|ot(m,(0|ar[g>>2])+(a+162)|0))))+v|0,(0|(a=a+1|0))<4&o;);v=(a=v?1-((0|ot(m,170+(0|ar[g>>2])|0))<<1)<>2]=a,(a=0!=(1&u|0))&&ja(A,e,r,X,1),0|ar[5776+(0|ar[w>>2])>>2]&&Ha(A,(0|e)/(0|y)|0,(0|r)/(0|B)|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,p,1,h,a),(Z=2==(0|k))&&((a=0!=(2&u|0))&&ja(A,e,(B<>2])+(a+166)|0))))+v|0,(0|(a=a+1|0))<4&u;);a=v?1-((0|ot(m,171+(0|ar[g>>2])|0))<<1)<>2]=a,(a=0!=(1&b|0))&&ja(A,e,r,X,2),0|ar[5776+(0|ar[w>>2])>>2]&&Ha(A,(0|e)/(0|y)|0,(0|r)/(0|B)|0,(0|n)/(0|y)|0,(0|t)/(0|B)|0,p,2,h,a),Z&&((a=0!=(2&b|0))&&ja(A,e,(B<>2])+764|0,z=e>>(j=0|ar[fA+10368>>2]),j=r>>j,(0|z)<=-1&&sr(48482,48519,118,48539),(0|(H=0|ar[fA+10372>>2]))<=(0|z)&&sr(48482,48519,118,48539),(0|j)<=-1&&sr(48543,48519,119,48539),(0|j)>=(0|ar[fA+10376>>2])&&sr(48543,48519,119,48539),AA=(0|ar[fA+10360>>2])+(3*((0|br(H,j))+z|0)|0)|0,AA=(65535&(cr[AA>>0]|cr[AA+1>>0]<<8))>>>8&3,(R=0==(0|f))&&(K=e>>(uA=0|ar[fA+10448>>2]),L=r>>uA,q=(x=1<<(uA=i-uA|0))+L|0,31!=(0|uA))){H=x+K|0,x=fA+10452|0,P=fA+10440|0,z=L;do{for(j=K;uA=(0|br(0|ar[x>>2],z))+j|0,uA=(0|ar[P>>2])+uA|0,tr[uA>>0]=-128|tr[uA>>0],(0|(j=j+1|0))<(0|H););z=z+1|0}while((0|z)<(0|q))}z=0!=(0|tr[fA+5945>>0])&&0==(0|tr[A+32>>0])&&(0|ar[fA+10100>>2])>=(0|i)?255&(0|ot(A+18556|0,(0|ar[A+18580>>2])+(0|f?142:141)|0)):0,tr[(uA=A+33+f|0)>>0]=z,tr[(F=A+36|0)>>0]=0;do{if(AA<<16>>16==1&&0!=(0|tr[fA+5751>>0])){if(0==(0|tr[uA>>0])&&0==(0|tr[A+32>>0])){bA=23;break}H=0!=(0|f)&1,lA=255&(0|ot(j=A+18556|0,143+(0|ar[(z=A+18580|0)>>2])+H|0)),(tr[F>>0]=lA)<<24>>24&&(lA=255&(0|ot(j,145+(0|ar[z>>2])+H|0)),tr[A+37>>0]=lA)}else bA=23}while(0);if(23==(0|bA)&&(tr[F>>0]=0),z=R?2:0,0==(0|tr[uA>>0])&&0==(0|tr[A+32>>0])||(z|=1),x=25+(0|ar[(V=A+18580|0)>>2])|0,$=(cA=i<<1)+-1|0,lA=i+-2|0,L=R?i+1>>2:lA,K=R?(3*lA|0)+(i+-1>>2)|0:15,1<(0|cA)){for(q=A+18556|0,j=$,H=0;j=(cA=0==(0|ot(q,x+((H>>L)+K)|0)))?H:j,(0|(H=H+1|0))<(0|$)&(1^cA););for(P=43+(0|ar[V>>2])|0,x=$,H=0;x=(cA=0==(0|ot(q,P+((H>>L)+K)|0)))?H:x,(0|(H=H+1|0))<(0|$)&(1^cA););}else j=x=$;if(H=(j>>1)-1|0,3<(0|j)&&(j=(0|ut(A+18556|0,H))+((1&j|2)<>1)-1|0,L=3<(0|x)?(0|ut(A+18556|0,H))+((1&x|2)<>16==0){do{if(R){if(H=e>>(x=0|ar[fA+10408>>2]),x=r>>x,(0|H)<=-1&&sr(48482,48519,118,48539),(0|(P=0|ar[fA+10412>>2]))<=(0|H)&&sr(48482,48519,118,48539),(0|x)<=-1&&sr(48543,48519,119,48539),(0|x)<(0|ar[fA+10416>>2])){eA=(0|ar[fA+10400>>2])+((0|br(P,x))+H)|0,eA=0|tr[eA>>0];break}sr(48543,48519,119,48539)}else{if(H=e>>(x=0|ar[fA+10428>>2]),x=r>>x,(0|H)<=-1&&sr(48482,48519,118,48539),(0|(P=0|ar[fA+10432>>2]))<=(0|H)&&sr(48482,48519,118,48539),(0|x)<=-1&&sr(48543,48519,119,48539),(0|x)<(0|ar[fA+10436>>2])){eA=(0|ar[fA+10420>>2])+((0|br(P,x))+H)|0,eA=63&tr[eA>>0];break}sr(48543,48519,119,48539)}}while(0);H=(aA=2==(0|(x=0|function(A,e,r,i){e|=0,r|=0,i|=0;var f=0;switch(0|(A|=0)){case 2:break;case 3:f=2;break;default:return 0}return 2==(0|f)&&0|r&&3!=(0|ar[i+5012>>2])?0:0|((e+-6|0)>>>0<9?2:(e+-22|0)>>>0<9&1)}(i,255&eA,f,rA))))?j:L,j=aA?L:j}else x=0,H=L;G=0|_a(lA,x),aA=0|_a(2,x),M=iA,T=j,U=H,S=x,O=i,M|=0,T|=0,U|=0,O=(0|ar[7852+(24*(S|=0)|0)+((O|=0)<<2)>>2])+((U<>0]|cr[O+1>>0]<<8,tr[M>>0]=O,tr[M+1>>0]=O>>8,C=0|tr[iA+1>>0],E=0|cr[iA>>0],vb(0|_,0,1<>1]=0),I=0!=(0|f)&1,u=0!=(0|x)&1,b=(255&C)-1|0,s=fA+5749|0,d=A+32|0,k=R?42:43,h=C<<24>>24!=0,w=0<(0|f),v=fA+10408|0,m=fA+10412|0,g=fA+10416|0,Z=fA+10400|0,p=fA+5750|0,y=fA+5936|0,B=fA+5755|0,o=A+18588+z|0,a=fA+10428|0,c=fA+10432|0,l=fA+10436|0,n=fA+10420|0,t=1<(255&C),z=1,oA=E,j=AA=0;A:for(;;){K=0|tr[G+(oA<<1)>>0],q=0|tr[G+(oA<<1)+1>>0],(0|oA)<(0|E)&0!=(0|oA)?(tA=1&(tA=0|cr[_+((x=(H=255&q)<>0])|tA>>>1,0|ot(W,(0|ar[V>>2])+((R?tA:tA+2|0)+61)|0)?(L=1,bA=59):(x=1,H=0)):0==(0|oA)|(0|oA)==(0|E)?(L=0,H=x=255&q,x<<=lA,P=255&K,bA=59):H=x=0,59==(0|bA)&&(x=_+(P+-1+x)|(bA=0),K<<24>>24&&(tr[x>>0]=1|tr[x>>0]),H=_+((H+-1<>24&&(tr[H>>0]=2|tr[H>>0]),L),1));do{if(H){if(tA=($=255&K)<<2,nA=(q&=255)<<2,q=0|ar[57308+(lA<<6)+(I<<5)+(u<<4)+(cr[_+((q<>0]<<2)>>2],($=(0|oA)==(0|E))?(or[Y>>1]=1,tr[N>>0]=1,tr[Q>>0]=C,t?(K=b,H=x,x=1,bA=67):(H=x,x=1)):(K=15,H=x,x=0,bA=67),67==(0|bA))for(;;){P=((bA=0)|cr[aA+(K<<1)>>0])+tA|0,L=(0|cr[aA+(K<<1)+1>>0])+nA|0;do{if(0|tr[s>>0]){if(0|tr[d>>0]){P=k;break}0|tr[uA>>0]?P=k:bA=70}else bA=70}while(0);if(70==(0|bA)&&(P=(bA=0)|cr[q+(P+(L<>0]),0|ot(W,(0|ar[V>>2])+(P+65)|0)&&(or[Y+(x<<1)>>1]=1,tr[N+x>>0]=1,tr[Q+x>>0]=K,x=x+1|(H=0)),!(1<(0|K)))break;K=K+-1|0,bA=67}do{if(h|1^$){if(0|H){or[Y+(x<<1)>>1]=1,fA=x+(tr[N+x>>0]=1)|(tr[Q+x>>0]=0);break}do{if(0|tr[s>>0]){if(0|tr[d>>0]){H=k;break}0|tr[uA>>0]?H=k:bA=78}else bA=78}while(0);if(78==(0|bA)&&(H=(bA=0)|cr[q+((nA<>0]),!(0|ot(W,(0|ar[V>>2])+(H+65)|0))){fA=x;break}or[Y+(x<<1)>>1]=1,fA=x+(tr[N+x>>0]=1)|(tr[Q+x>>0]=0)}else fA=x}while(0);if(fA){q=0==(0|z)|(w|0==(0|oA)?0:2),L=(0|fA)<8?fA:8,$=0<(0|fA);do{if($){if(K=q<<2,w)for(P=0,x=-1,z=1,H=AA;j=P?0<(0|j)?1==(0|H)?0:j+1|0:j:1,z=(H=0|ot(W,(0|ar[V>>2])+(((0|j)<3?j:3)+K+125)|0))?(or[(z=Y+(P<<1)|0)>>1]=1+(0|or[z>>1])<<16>>16,x=-1==(0|x)?P:x,0):((z+-1|(tr[N+P>>0]=0))>>>0<2&1)+z|0,(0|(P=P+1|0))<(0|L););else for(P=0,x=-1,z=1,H=AA;j=P?0<(0|j)?1==(0|H)?0:j+1|0:j:1,z=(H=0|ot(W,(0|ar[V>>2])+(((0|j)<3?j:3)+K+109)|0))?(or[(z=Y+(P<<1)|0)>>1]=1+(0|or[z>>1])<<16>>16,x=-1==(0|x)?P:x,0):((z+-1|(tr[N+P>>0]=0))>>>0<2&1)+z|0,(0|(P=P+1|0))<(0|L););if(-1==(0|x))break;iA=0|ot(W,(0|ar[V>>2])+((w?4|q:q)+133)|0),or[(rA=Y+(x<<1)|0)>>1]=(0|lr[rA>>1])+iA,tr[N+x>>0]=iA}else z=1,H=AA}while(0);if(R){if(x=e>>(P=0|ar[v>>2]),P=r>>P,(0|x)<=-1){bA=102;break A}if((0|(L=0|ar[m>>2]))<=(0|x)){bA=102;break A}if((0|P)<=-1){bA=105;break A}if((0|P)>=(0|ar[g>>2])){bA=105;break A}x=(0|ar[Z>>2])+((0|br(L,P))+x)|0,x=0|tr[x>>0]}else{if(x=e>>(P=0|ar[a>>2]),P=r>>P,(0|x)<=-1){bA=109;break A}if((0|(L=0|ar[c>>2]))<=(0|x)){bA=109;break A}if((0|P)<=-1){bA=112;break A}if((0|P)>=(0|ar[l>>2])){bA=112;break A}x=(0|ar[n>>2])+((0|br(L,P))+x)|0,x=63&tr[x>>0]}e:do{if(0|tr[d>>0])P=0;else{do{if(cA){if(!(0|tr[p>>0]))break;if((16|x)<<24>>24==26&0!=(0|tr[uA>>0])){P=0;break e}}}while(0);if(0|tr[F>>0]){P=0;break}P=3<((0|tr[Q>>0])-(0|tr[Q+(fA+-1)>>0])|0)&1}}while(0);if(iA=fA+-1|0,1<(0|fA))for(x=0;rA=255&(0|ct(W)),tr[D+x>>0]=rA,(0|(x=x+1|0))!=(0|iA););if(x=(rA=0!=(0|P))&0!=(0|tr[y>>0])?0:255&(0|ct(W)),tr[D+iA>>0]=x,x=0|tr[B>>0]?(0|cr[o>>0])>>>2&255:0,!$)break;$=1,P=eA=0;do{AA=0|or[Y+(eA<<1)>>1];do{if(0|tr[N+eA>>0]){for(K=-1;;){if(L=K+1|0,q=0|ct(W),63<(0|K)){q=0;break}if(!q){bA=130;break}K=L}if(130==(0|bA)&&(((bA=0)|L)<4?K=0|ut(W,x):(K=0|ut(W,(L=K+-2|0)+x|0),L=2+(1<>0]),L=x+1|0,x=(3<>0]))>>>2&255)|0)<=(0|q)){tr[o>>0]=L+1<<24>>24,$=0;break}if(L<<24>>24==0|(1<>0]=L+-1<<24>>24,$=0}else q=0}while(0);K=q+AA|0,L=65535&(q=0==(0|tr[D+eA>>0])?K:0-(65535&K)|0);do{if(rA&0!=(0|tr[y>>0])){if((0|eA)!=(0|iA)|0==(1&(P=K+P|0)|0))break;L=0-q&65535}}while(0);AA=0|tr[Q+eA>>0],q=(0|cr[aA+(AA<<1)>>0])+tA|0,AA=(0|cr[aA+(AA<<1)+1>>0])+nA|0,or[A+2116+(f<<11)+(or[X>>1]<<1)>>1]=L,or[A+8260+(f<<11)+(or[X>>1]<<1)>>1]=q+(AA<>1]=1+(0|or[X>>1])<<16>>16,eA=eA+1|0}while((0|eA)!=(0|fA))}else H=AA}else H=AA}while(0);if(!(0<(0|oA))){bA=54;break}oA=oA+-1|0,AA=H}return 54==(0|bA)?ur=J:102==(0|bA)?sr(48482,48519,118,48539):105==(0|bA)?sr(48543,48519,119,48539):109==(0|bA)?sr(48482,48519,118,48539):112==(0|bA)&&sr(48543,48519,119,48539),0}function Ha(A,e,r,i,f,n,t,o,a){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0;var c,l,u,b=0,s=0,d=0;if(c=0|ar[(l=(A|=0)+18596|0)>>2],u=0==(0|o)){do{if(t){if(o=0|br(0|ar[5780+c>>2],e),s=0|br(0|ar[5784+c>>2],r),o>>=b=0|ar[10428+c>>2],b=s>>b,(0|o)<=-1&&sr(48482,48519,118,48539),(0|(s=0|ar[10432+c>>2]))<=(0|o)&&sr(48482,48519,118,48539),(0|b)<=-1&&sr(48543,48519,119,48539),(0|b)<(0|ar[10436+c>>2])){d=(0|ar[10420+c>>2])+((0|br(s,b))+o)|0,d=63&tr[d>>0];break}sr(48543,48519,119,48539)}else{if(o=e>>(b=0|ar[10408+c>>2]),b=r>>b,(0|o)<=-1&&sr(48482,48519,118,48539),(0|(s=0|ar[10412+c>>2]))<=(0|o)&&sr(48482,48519,118,48539),(0|b)<=-1&&sr(48543,48519,119,48539),(0|b)<(0|ar[10416+c>>2])){d=(0|ar[10400+c>>2])+((0|br(s,b))+o)|0,d=0|tr[d>>0];break}sr(48543,48519,119,48539)}}while(0);Gt(c,e,r,b=34<(255&d)?1:255&d,n,t);do{if(0|tr[5750+(0|ar[l>>2])>>0]){if(0==(0|tr[A+32>>0])&&0==(0|tr[A+33+t>>0])){o=0;break}o=26==(16|b)}else o=0}while(0);o=26==(0|b)&o?2:1&o}else o=0|tr[A+36>>0]?0|tr[A+37>>0]?2:1:0;a?jn(A,e,r,i,f,n,t,0!=(0|tr[A+33+t>>0]),u,o):t&&0|ar[A+28>>2]&&jn(A,e,r,i,f,n,t,(or[A+14404+(t<<1)>>1]=0)!=(0|tr[A+33+t>>0]),u,0)}function xa(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0;ur=(n=ur)+16|0,l=n,t=0|ot(c=(A|=0)+18556|0,150+(0|ar[(r=A+18580|0)>>2])|0),e=0|ot(c,150+(0|ar[r>>2])|0),o=(t=0==(0|t))?0:0|ot(c,151+(0|ar[r>>2])|0),a=(f=0==(0|e))?0:0|ot(c,151+(0|ar[r>>2])|0),t?(r=l,e=0,u=11):(t=o?0|bt(c,1):-1,o=0|ct(c),e=t+2|0,ar[l>>2]=e,o?(r=l,e=-2-t|0,u=11):o=e),11==(0|u)&&(o=ar[r>>2]=e);do{if(!f){if(t=a?0|bt(c,1):-1,u=0|ct(c),e=t+2|0,ar[(r=l+4|0)>>2]=e,u){e=-2-t|0;break}return u=e,c=65535&o,or[(l=A+18+(i<<2)|0)>>1]=c,u&=65535,or[(i=A+18+(i<<2)+2|0)>>1]=u,void(ur=n)}r=l+4|0,e=0}while(0);u=ar[r>>2]=e,c=65535&o,or[(l=A+18+(i<<2)|0)>>1]=c,u&=65535,or[(i=A+18+(i<<2)+2|0)>>1]=u,ur=n}function Pa(A,e,r){A|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(l=0|tr[(r|=0)+93784+(4400*(0|ar[(e|=0)+8>>2])|0)+2>>0],d=0|it(A),7<(tr[(a=e+380|0)>>0]=d)>>>0)return(w=0)|w;d=r+11096+(5168*l|0)+476|0;do{if(0|ar[d>>2]){if(c=0|ft(A),7<(c=(0|cr[a>>0])+c|0)>>>0)return(w=0)|w;tr[(s=e+381|0)>>0]=c;break}s=e+381|0}while(0);n=e+332|0,t=e+328|0,o=r+11096+(5168*l|0)+5164|0,i=r+11096+(5168*l|0)+5160|0,f=e+20|0,b=0;A:for(;;){if(c=0==(0|b))w=10;else if(1==(0|b)){if(0|ar[f>>2]){c=1,w=27;break}w=10}if(10==(0|w)&&(h=(w=0)<(0|(k=0|ar[(c?t:n)>>2])))){for(c=0;u=255&(0|At(A,1)),tr[e+382+(b<<4)+c>>0]=u,(0|(c=c+1|0))!=(0|k););if(0!=(0|ar[d>>2])&h)for(c=0;u=255&(0|At(A,1)),tr[e+414+(b<<4)+c>>0]=u,(0|(c=c+1|0))!=(0|k););if(h){u=0;do{if(0|tr[e+382+(b<<4)+u>>0]){if(255<((c=0|ft(A))+128|0)>>>0){c=0,w=27;break A}if(or[e+446+(b<<5)+(u<<1)>>1]=(1<>0])+c,c=0|ft(A),!((0-(l=0|ar[i>>2])|0)<=(0|c)&(0|c)<(0|l))){c=0,w=27;break A}c&=255}else or[e+446+(b<<5)+(u<<1)>>1]=1<>0],c=0;if(tr[e+510+(b<<4)+u>>0]=c,0|tr[e+414+(b<<4)+u>>0]){if(255<((c=0|ft(A))+128|0)>>>0){c=0,w=27;break A}if(or[(l=e+542+(b<<6)+(u<<2)|0)>>1]=(1<>0])+c,c=0|ft(A),r=0|ar[o>>2],!((0|c)>=(0|br(r,-4))&(0|c)<(r<<2|0))){c=0,w=27;break A}if(c=r+c-((l=0|br(0|or[l>>1],r))>>cr[s>>0])|0,l=0-r|0,tr[e+670+(b<<5)+(u<<1)>>0]=(0|c)<(0|l)?l:(0|c)<(0|r)?c:r+255|0,255<((c=0|ft(A))+128|0)>>>0){c=0,w=27;break A}if(or[(l=e+542+(b<<6)+(u<<2)+2|0)>>1]=(1<>0])+c,c=0|ft(A),r=0|ar[o>>2],!((0|c)>=(0|br(r,-4))&(0|c)<(r<<2|0))){c=0,w=27;break A}c=255&((0|(c=r+c-((l=0|br(0|or[l>>1],r))>>cr[s>>0])|0))<(0|(l=0-r|0))?l:(0|c)<(0|r)?c:r+255|0)}else c=1<>0]&65535,or[e+542+(b<<6)+(u<<2)>>1]=c,tr[e+670+(b<<5)+(u<<1)>>0]=0,or[e+542+(b<<6)+(u<<2)+2>>1]=c,c=0;tr[e+670+(b<<5)+(u<<1)+1>>0]=c,u=u+1|0}while((0|u)<(0|k))}}if(2<=(0|(b=b+1|0))){c=1,w=27;break}}return 27==(0|w)?0|c:0}function La(A){var e=0,r=0,i=0;for(ar[(A|=0)>>2]=0,tr[A+4>>0]=0,tr[A+5>>0]=0,ar[A+8>>2]=0,e=A+16|(tr[A+12>>0]=0),ar[A+28>>2]=0,tr[A+32>>0]=0,ar[e>>2]=0,ar[e+4>>2]=0,gc(A+34|(or[e+8>>1]=0)),ar[A+136>>2]=0,ar[A+140>>2]=0,e=ar[A+144>>2]=0;tr[A+148+e>>0]=0,ar[A+164+(e<<2)>>2]=0,tr[A+228+e>>0]=0,16!=((tr[A+244+e>>0]=0)|(e=e+1|(ar[A+260+(e<<2)>>2]=0))););for(e=A+324|0,ar[A+376>>2]=0,tr[A+380>>0]=0,i=(r=e)+48|(tr[A+381>>0]=0);(0|(r=r+4|(ar[r>>2]=0)))<(0|i););for(e=tr[e+48>>0]=0;tr[A+382+e>>0]=0,tr[A+414+e>>0]=0,or[A+446+(e<<1)>>1]=0,tr[A+510+e>>0]=0,or[A+542+(e<<2)+2>>1]=0,or[A+542+(e<<2)>>1]=0,16!=((tr[A+670+(e<<1)+1>>0]=0)|(e=e+1|(tr[A+670+(e<<1)>>0]=0))););for(e=0;tr[A+398+e>>0]=0,tr[A+430+e>>0]=0,or[A+478+(e<<1)>>1]=0,tr[A+526+e>>0]=0,or[A+606+(e<<2)+2>>1]=0,or[A+606+(e<<2)>>1]=0,16!=((tr[A+702+(e<<1)+1>>0]=0)|(e=e+1|(tr[A+702+(e<<1)>>0]=0))););for(r=A+736|0,ar[A+756>>2]=0,ar[A+760>>2]=0,tr[A+764>>0]=0,ar[A+768>>2]=0,ar[A+772>>2]=0,ar[r>>2]=0,ar[r+4>>2]=0,ar[r+8>>2]=0,ar[r+12>>2]=0,or[r+16>>1]=0,r=(tr[r+18>>0]=0)|ar[A+776>>2],(0|(e=0|ar[(i=A+780|0)>>2]))!=(0|r)&&(ar[i>>2]=e+(~((e+-4-r|0)>>>2)<<2)),ar[(e=A+788|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,gc(A+812|(ar[e+20>>2]=0)),e=ar[A+912>>2]=0;ar[A+916+(e<<6)>>2]=0,ar[A+1044+(e<<6)>>2]=0,ar[A+1172+(e<<6)>>2]=0,tr[A+1300+(e<<4)>>0]=0,ar[A+916+(e<<6)+4>>2]=0,ar[A+1044+(e<<6)+4>>2]=0,ar[A+1172+(e<<6)+4>>2]=0,tr[A+1300+(e<<4)+1>>0]=0,ar[A+916+(e<<6)+8>>2]=0,ar[A+1044+(e<<6)+8>>2]=0,ar[A+1172+(e<<6)+8>>2]=0,tr[A+1300+(e<<4)+2>>0]=0,ar[A+916+(e<<6)+12>>2]=0,ar[A+1044+(e<<6)+12>>2]=0,ar[A+1172+(e<<6)+12>>2]=0,tr[A+1300+(e<<4)+3>>0]=0,ar[A+916+(e<<6)+16>>2]=0,ar[A+1044+(e<<6)+16>>2]=0,ar[A+1172+(e<<6)+16>>2]=0,tr[A+1300+(e<<4)+4>>0]=0,ar[A+916+(e<<6)+20>>2]=0,ar[A+1044+(e<<6)+20>>2]=0,ar[A+1172+(e<<6)+20>>2]=0,tr[A+1300+(e<<4)+5>>0]=0,ar[A+916+(e<<6)+24>>2]=0,ar[A+1044+(e<<6)+24>>2]=0,ar[A+1172+(e<<6)+24>>2]=0,tr[A+1300+(e<<4)+6>>0]=0,ar[A+916+(e<<6)+28>>2]=0,ar[A+1044+(e<<6)+28>>2]=0,ar[A+1172+(e<<6)+28>>2]=0,tr[A+1300+(e<<4)+7>>0]=0,ar[A+916+(e<<6)+32>>2]=0,ar[A+1044+(e<<6)+32>>2]=0,ar[A+1172+(e<<6)+32>>2]=0,tr[A+1300+(e<<4)+8>>0]=0,ar[A+916+(e<<6)+36>>2]=0,ar[A+1044+(e<<6)+36>>2]=0,ar[A+1172+(e<<6)+36>>2]=0,tr[A+1300+(e<<4)+9>>0]=0,ar[A+916+(e<<6)+40>>2]=0,ar[A+1044+(e<<6)+40>>2]=0,ar[A+1172+(e<<6)+40>>2]=0,tr[A+1300+(e<<4)+10>>0]=0,ar[A+916+(e<<6)+44>>2]=0,ar[A+1044+(e<<6)+44>>2]=0,ar[A+1172+(e<<6)+44>>2]=0,tr[A+1300+(e<<4)+11>>0]=0,ar[A+916+(e<<6)+48>>2]=0,ar[A+1044+(e<<6)+48>>2]=0,ar[A+1172+(e<<6)+48>>2]=0,tr[A+1300+(e<<4)+12>>0]=0,ar[A+916+(e<<6)+52>>2]=0,ar[A+1044+(e<<6)+52>>2]=0,ar[A+1172+(e<<6)+52>>2]=0,tr[A+1300+(e<<4)+13>>0]=0,ar[A+916+(e<<6)+56>>2]=0,ar[A+1044+(e<<6)+56>>2]=0,ar[A+1172+(e<<6)+56>>2]=0,tr[A+1300+(e<<4)+14>>0]=0,ar[A+916+(e<<6)+60>>2]=0,ar[A+1044+(e<<6)+60>>2]=0,2!=((ar[A+1172+(e<<6)+60>>2]=0)|(e=e+1|(tr[A+1300+(e<<4)+15>>0]=0))););e=0|ar[A+1344>>2],(0|(i=0|ar[(r=A+1348|0)>>2]))!=(0|e)&&(ar[r>>2]=i+(~((i+-4-e|0)>>>2)<<2)),tr[(A=A+1340|0)>>0]=0}function Ka(){var A=0,e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;if(!(A=0|yc(11296)))return(g=0)|g;vb(0|A,-1,11296),ar[14327]=A,ar[14328]=A,ar[14329]=A,ar[14330]=A,ar[14331]=A,ar[14332]=A,ar[14333]=A,b=(ar[14334]=A)+16|0,ar[14335]=b,ar[14336]=b,ar[14337]=b,ar[14338]=b,ar[14339]=b,ar[14340]=b,ar[14341]=b,ar[14342]=b,ar[14343]=A+32,ar[14344]=A+96,ar[14345]=A+160,ar[14346]=A+224,ar[14347]=A+288,ar[14348]=A+352,ar[14349]=A+416,ar[14350]=A+480,ar[14351]=A+544,ar[14352]=A+608,ar[14353]=A+672,ar[14354]=A+736,ar[14355]=A+800,ar[14356]=A+864,ar[14357]=A+928,ar[14358]=A+992,b=A+1056|0,ar[14359]=b,ar[14363]=b,b=A+1312|0,ar[14360]=b,ar[14364]=b,b=A+1568|0,ar[14361]=b,ar[14365]=b,b=A+1824|0,ar[14362]=b,ar[14366]=b,b=A+2080|0,ar[14367]=b,ar[14371]=b,b=A+2336|0,ar[14368]=b,ar[14372]=b,b=A+2592|0,ar[14369]=b,ar[14373]=b,b=A+2848|0,ar[14370]=b,ar[14374]=b,b=A+3104|0,ar[14375]=b,ar[14379]=b,b=A+4128|0,ar[14376]=b,ar[14380]=b,b=A+5152|0,ar[14377]=b,ar[14381]=b,b=A+6176|0,ar[14378]=b,ar[14382]=b,b=A+7200|0,ar[14383]=b,ar[14387]=b,b=A+8224|0,ar[14384]=b,ar[14388]=b,b=A+9248|0,ar[14385]=b,ar[14389]=b,b=A+10272|0,ar[14386]=b,ar[14390]=b,b=2;A:for(;;){d=1==(0|(h=(s=1<>2)),k=b+-2|0,h=2==(0|h),u=0;do{w=0==(0|u),l=0;do{v=0==(0|l)?9:15,c=0;do{m=57308+(k<<6)+(u<<5)+(l<<4)+(c<<2)|0,a=0;do{if(i=a<<2,g=a<>2,o=0==(0|(t=3&a))?2:1==(0|t)&1,d){e=0;do{if(A=0|cr[41489+(e+i)>>0],A=w?A:A+27|0,r=(0|ar[m>>2])+(e+g)|0,!((o=0|tr[r>>0])<<24>>24==-1|(255&o|0)==(0|A))){e=28;break A}tr[r>>0]=A,e=e+1|0}while((0|e)<(0|s))}else{r=0;do{do{if((0|r)!=(0|f)){switch(e=r>>2,A=3&r,0|c){case 0:A=2<(A=A+t|0)>>>0?0:0|A?1:2;break;case 1:A=o;break;case 2:A=0==(0|A)?2:1==(0|A)&1;break;default:A=2}if(w){if(A=0<(e+n|0)?A+3|0:A,h){A=A+v|0;break}A=A+21|0;break}if(h){A=A+9|0;break}A=A+12|0;break}A=0}while(0);if(A=w?A:A+27|0,e=(0|ar[m>>2])+(r+g)|0,!((i=0|tr[e>>0])<<24>>24==-1|(255&i|0)==(0|A))){e=28;break A}tr[e>>0]=A,r=r+1|0}while((0|r)<(0|s))}a=a+1|0}while((0|a)<(0|s));c=c+1|0}while((0|c)<4);l=l+1|0}while((0|l)<2);u=u+1|0}while((0|u)<2);if(6<=(0|(b=b+1|0))){A=1,e=30;break}}if(28==(0|e))sr(41505,39242,2100,41581);else if(30==(0|e))return 0|A;return 0}function qa(){Bc(0|ar[14327]),ar[14327]=0}function $a(A){var e,r=0;for(ar[(A|=0)+4720>>2]=0,ar[A+4724>>2]=0,function(A){var e,r=0,i=0;for(tr[(A|=0)>>0]=0,or[(r=A+2|0)>>1]=0,or[r+2>>1]=0,or[r+4>>1]=0,tr[r+6>>0]=0,ar[A+12>>2]=5,tr[A+16>>0]=0,tr[A+17>>0]=0,tr[A+18>>0]=2,tr[A+19>>0]=2,tr[A+20>>0]=2,ar[A+48>>2]=0,ar[A+52>>2]=0,r=A+60|(tr[A+56>>0]=0),e=(i=A+21|0)+24|0;(0|(i=i+1|(tr[i>>0]=0)))<(0|e););ar[r>>2]=1,tr[A+64>>0]=0,tr[A+65>>0]=0,tr[A+66>>0]=0,tr[A+67>>0]=1,tr[A+68>>0]=0,or[A+70>>1]=0,tr[A+72>>0]=2,tr[A+73>>0]=1,tr[A+74>>0]=15,tr[A+75>>0]=15}(A+4904|(ar[A+4728>>2]=0)),e=(r=A+4984|0)+9|0;(0|(r=r+1|(tr[r>>0]=0)))<(0|e););tr[A>>0]=0}function Ac(A){var e,r;(r=0|ar[(A|=0)+4720>>2])&&((0|(e=0|ar[(A=A+4724|0)>>2]))!=(0|r)&&(ar[A>>2]=e+(100*~(((e-100-r|0)>>>0)/100|0)|0)),vu(r))}function ec(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0;ur=(t=ur)+6240|0,n=(f=t)+96|0,l=0;A:for(;;){k=(d=3==(0|l))?2:6,w=3!=(0|l),b=(h=0==(0|l))?16:64,s=1<(0|l),u=0;do{c=n+(u<<10)|0,o=d&1==(0|u);do{if(!((255&(0|At(A,1)))<<24>>24)){if(-99999==(0|(e=0|it(A)))|(0|u)<(0|e)){a=31;break A}if(ar[(i=f+(24*l|0)+(u<<2)|0)>>2]=16,0|e){if(!(w|1==(0|e))){a=13;break A}hb(0|c,n+((o=u-e|0)<<10)|0,0|b),o=0|ar[f+(24*l|0)+(o<<2)>>2],ar[i>>2]=o,a=21;break}if(h){for(i=41646,o=(e=c)+16|0;tr[e>>0]=0|tr[i>>0],i=i+1|0,(0|(e=e+1|0))<(0|o););a=22;break}if((0|u)<3&(1^o)){for(i=41662,o=(e=c)+64|0;tr[e>>0]=0|tr[i>>0],i=i+1|0,(0|(e=e+1|0))<(0|o););o=16,a=21;break}for(i=41726,o=(e=c)+64|0;tr[e>>0]=0|tr[i>>0],i=i+1|0,(0|(e=e+1|0))<(0|o););o=16,a=21;break}if(s){if(254<((e=0|ft(A))+7|0)>>>0){a=31;break A}o=e+8|0,e=ar[f+(24*l|0)+(u<<2)>>2]=o}else e=8,o=16;for(a=0;;){if(255<((i=0|ft(A))+128|0)>>>0){a=31;break A}if(e=(e+256+i|0)%256|0,tr[n+(u<<10)+a>>0]=e,(0|b)<=(0|(a=a+1|0))){a=21;break}}}while(0);e:do{if(21==(0|a))switch((a=0)|l){case 0:a=22;break e;case 1:for(i=0|_a(3,0),e=0;tr[((0|cr[i+(e<<1)+1>>0])<<3)+(0|cr[i+(e<<1)>>0])+(r+96+(u<<6))>>0]=0|tr[n+(u<<10)+e>>0],64!=(0|(e=e+1|0)););break;case 2:for(i=0|_a(3,0),e=0;c=i+(e<<1)|0,v=i+(e<<1)+1|0,m=0|tr[n+(u<<10)+e>>0],tr[((0|cr[v>>0])<<5)+((0|cr[c>>0])<<1)+(r+480+(u<<8))>>0]=m,tr[((0|cr[c>>0])<<1|1)+((0|cr[v>>0])<<5)+(r+480+(u<<8))>>0]=m,tr[((0|cr[v>>0])<<5|16)+((0|cr[c>>0])<<1)+(r+480+(u<<8))>>0]=m,tr[((0|cr[v>>0])<<5|16)+((0|cr[c>>0])<<1|1)+(r+480+(u<<8))>>0]=m,64!=(0|(e=e+1|0)););tr[r+480+(u<<8)>>0]=o;break e;case 3:fc(m=r+2016+(u<<10)|0,c,3),tr[m>>0]=o;break e;default:break e}}while(0);if(22==(0|a))for(i=0|_a(2,0),e=0;tr[((0|cr[i+(e<<1)+1>>0])<<2)+(0|cr[i+(e<<1)>>0])+(r+(u<<4))>>0]=0|tr[n+(u<<10)+e>>0],16!=(0|(e=e+1|0)););u=u+1|0}while((0|u)<(0|k));if(4<=(0|(l=l+1|0))){e=0,a=32;break}}if(13==(0|a))sr(41810,41639,873,41847);else{if(31==(0|a))return ur=t,0|(m=8);if(32==(0|a))return ur=t,0|e}return 0}function rc(A){A|=0;var e=0,r=0,i=0,f=0,n=0,t=0,o=0;for(r=0|_a(2,0),e=0;tr[A+(((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0]))>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+16)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+32)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+48)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+64)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(2,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<2)+(0|cr[r+(e<<1)>>0])+(A+80)>>0]=0|tr[41646+e>>0],16!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+96)>>0]=0|tr[41662+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+288)>>0]=0|tr[41726+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+160)>>0]=0|tr[41662+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+352)>>0]=0|tr[41726+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+224)>>0]=0|tr[41662+e>>0],64!=(0|(e=e+1|0)););for(r=0|_a(3,0),e=0;tr[((0|cr[r+(e<<1)+1>>0])<<3)+(0|cr[r+(e<<1)>>0])+(A+416)>>0]=0|tr[41726+e>>0],64!=(0|(e=e+1|0)););f=0;do{for(r=0|_a(3,0),e=0;i=r+(e<<1)|0,t=41662+e|0,tr[((0|cr[(n=r+(e<<1)+1|0)>>0])<<5)+((0|cr[i>>0])<<1)+(A+480+(f<<8))>>0]=0|tr[t>>0],tr[((0|cr[i>>0])<<1|1)+((0|cr[n>>0])<<5)+(A+480+(f<<8))>>0]=0|tr[t>>0],tr[((0|cr[n>>0])<<5|16)+((0|cr[i>>0])<<1)+(A+480+(f<<8))>>0]=0|tr[t>>0],tr[((0|cr[n>>0])<<5|16)+((0|cr[i>>0])<<1|1)+(A+480+(f<<8))>>0]=0|tr[t>>0],64!=(0|(e=e+1|0)););for(r=f+3|0,i=0|_a(3,0),e=0;t=i+(e<<1)|0,o=41726+e|0,tr[((0|cr[(n=i+(e<<1)+1|0)>>0])<<5)+((0|cr[t>>0])<<1)+(A+480+(r<<8))>>0]=0|tr[o>>0],tr[((0|cr[t>>0])<<1|1)+((0|cr[n>>0])<<5)+(A+480+(r<<8))>>0]=0|tr[o>>0],tr[((0|cr[n>>0])<<5|16)+((0|cr[t>>0])<<1)+(A+480+(r<<8))>>0]=0|tr[o>>0],tr[((0|cr[n>>0])<<5|16)+((0|cr[t>>0])<<1|1)+(A+480+(r<<8))>>0]=0|tr[o>>0],64!=(0|(e=e+1|0)););f=f+1|0}while(3!=(0|f));fc(A+2016|0,41662,3),fc(A+3040|0,41726,3)}function ic(A,e,r){return A|=0,e|=0,e=255&(0|At(r|=0,1)),tr[A>>0]=e,e=255&(0|At(r,1)),tr[A+1>>0]=e,e=255&(0|At(r,1)),tr[A+2>>0]=e,e=255&(0|At(r,1)),tr[A+3>>0]=e,e=255&(0|At(r,1)),tr[A+4>>0]=e,e=255&(0|At(r,1)),tr[A+5>>0]=e,e=255&(0|At(r,1)),tr[A+6>>0]=e,e=255&(0|At(r,1)),tr[A+7>>0]=e,r=255&(0|At(r,1)),tr[A+8>>0]=r,0}function fc(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0;switch(0|(r|=0)){case 0:for(i=0|_a(2,0),r=0;tr[A+(((0|cr[i+(r<<1)+1>>0])<<2)+(0|cr[i+(r<<1)>>0]))>>0]=0|tr[e+r>>0],16!=(0|(r=r+1|0)););return;case 1:for(i=0|_a(3,0),r=0;tr[A+(((0|cr[i+(r<<1)+1>>0])<<3)+(0|cr[i+(r<<1)>>0]))>>0]=0|tr[e+r>>0],64!=(0|(r=r+1|0)););return;case 2:for(i=0|_a(3,0),r=0;o=i+(r<<1)+1|0,n=e+r|0,tr[A+(((0|cr[(t=i+(r<<1)|0)>>0])<<1)+((0|cr[o>>0])<<5))>>0]=0|tr[n>>0],tr[A+(((0|cr[t>>0])<<1|1)+((0|cr[o>>0])<<5))>>0]=0|tr[n>>0],tr[A+(((0|cr[t>>0])<<1)+((0|cr[o>>0])<<5|16))>>0]=0|tr[n>>0],tr[A+(((0|cr[t>>0])<<1|1)+((0|cr[o>>0])<<5|16))>>0]=0|tr[n>>0],64!=(0|(r=r+1|0)););return;case 3:f=0|_a(3,0),i=0;do{for(n=f+(i<<1)|0,t=f+(i<<1)+1|0,o=e+i|0,r=0;tr[A+(((0|cr[n>>0])<<2)+(((0|cr[t>>0])<<2)+r<<5))>>0]=0|tr[o>>0],tr[A+(((0|cr[n>>0])<<2|1)+(((0|cr[t>>0])<<2)+r<<5))>>0]=0|tr[o>>0],tr[A+(((0|cr[n>>0])<<2|2)+(((0|cr[t>>0])<<2)+r<<5))>>0]=0|tr[o>>0],tr[A+(((0|cr[n>>0])<<2|3)+(((0|cr[t>>0])<<2)+r<<5))>>0]=0|tr[o>>0],4!=(0|(r=r+1|0)););i=i+1|0}while(64!=(0|i));return;default:sr(44456,41639,810,41790)}}function nc(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0,l=0;if(ur=(n=ur)+144|0,c=n,4==(0|(r|=0))|1==(0|(f|=0)))ur=n;else{switch(f=(0|(l=(0|f)<26?26-f|0:f+-26|0))<(0|(f=(0|f)<10?10-f|0:f+-10|0))?l:f,0|r){case 8:t=7;break;case 16:t=1;break;case 32:t=0;break;default:sr(55739,48289,518,48361)}if((0|f)<=(0|t))ur=n;else{if(f=32==(0|r)&(0==(0|i)&0!=(0|tr[A+5665>>0]))&&(o=0|cr[e>>0],(0|((0|(l=(0|cr[e+64>>0])+o-(cr[e+32>>0]<<1)|0))<0?0-l|0:l))<(0|(a=1<<(0|ar[A+1276>>2])-5)))?(0|((0|(f=(0|cr[e+-64>>0])+o-(cr[e+-32>>0]<<1)|0))<0?0-f|0:f))<(0|a):0,i=c+64|0,a=0|br(r,-2),tr[i+a>>0]=0|tr[e+a>>0],tr[i+(a=r<<1)>>0]=0|tr[e+a>>0],f)for(t=0|tr[e>>0],tr[i>>0]=t,t&=255,A=(0|cr[e+-64>>0])-t|0,o=(0|cr[e+64>>0])-t|0,f=1;l=((32+(0|br(A,f))|0)>>>6)+t&255,tr[i+(0-f)>>0]=l,l=((32+(0|br(o,f))|0)>>>6)+t&255,tr[i+f>>0]=l,64!=(0|(f=f+1|0)););else if((0|(f=1-a|0))<(0|a))for(f=0|tr[e+(t=f)>>0];c=f,f=0|tr[e+(t=(l=t)+1|0)>>0],tr[i+l>>0]=(2+(255&f)+((255&c)<<1)+(0|cr[e+(l+-1)>>0])|0)>>>2,(0|t)!=(0|a););hb(e+(l=0-a|0)|0,i+l|0,r<<2|1),ur=n}}}function tc(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0,l=0;if(ur=(n=ur)+272|0,c=n,4==(0|(r|=0))|1==(0|(f|=0)))ur=n;else{switch(f=(0|(l=(0|f)<26?26-f|0:f+-26|0))<(0|(f=(0|f)<10?10-f|0:f+-10|0))?l:f,0|r){case 8:t=7;break;case 16:t=1;break;case 32:t=0;break;default:sr(55739,48289,518,48361)}if((0|f)<=(0|t))ur=n;else{if(f=32==(0|r)&(0==(0|i)&0!=(0|tr[A+5665>>0]))&&(o=0|lr[e>>1],(0|((0|(l=(0|lr[e+128>>1])+o-(lr[e+64>>1]<<1)|0))<0?0-l|0:l))<(0|(a=1<<(0|ar[A+1276>>2])-5)))?(0|((0|(f=(0|lr[e+-128>>1])+o-(lr[e+-64>>1]<<1)|0))<0?0-f|0:f))<(0|a):0,i=c+128|0,a=0|br(r,-2),or[i+(a<<1)>>1]=0|or[e+(a<<1)>>1],or[i+((a=r<<1)<<1)>>1]=0|or[e+(a<<1)>>1],f)for(t=0|or[e>>1],or[i>>1]=t,t&=65535,A=(0|lr[e+-128>>1])-t|0,o=(0|lr[e+128>>1])-t|0,f=1;l=((32+(0|br(A,f))|0)>>>6)+t&65535,or[i+(0-f<<1)>>1]=l,l=((32+(0|br(o,f))|0)>>>6)+t&65535,or[i+(f<<1)>>1]=l,64!=(0|(f=f+1|0)););else if((0|(f=1-a|0))<(0|a))for(f=0|or[e+((t=f)<<1)>>1];c=f,f=0|or[e+((t=(l=t)+1|0)<<1)>>1],or[i+(l<<1)>>1]=(2+(65535&f)+((65535&c)<<1)+(0|lr[e+(l+-1<<1)>>1])|0)>>>2,(0|t)!=(0|a););hb(e+((l=0-a|0)<<1)|0,i+(l<<1)|0,r<<3|2),ur=n}}}function oc(A){ar[(A|=0)+8>>2]=1732584193,ar[A+12>>2]=-271733879,ar[A+16>>2]=-1732584194,ar[A+20>>2]=271733878,ar[A>>2]=0,ar[A+4>>2]=0}function ac(A,e,r){e|=0,r|=0;var i,f,n=0,t=0;f=(t=0|ar[(A|=0)>>2])+r&536870911,ar[A>>2]=f,n=0|ar[(i=A+4|0)>>2],f>>>0>>0&&(n=n+1|0,ar[i>>2]=n),ar[i>>2]=n+(r>>>29),n=63&t;do{if(n){if(t=64-n|0,n=A+24+n|0,t>>>0<=r>>>0){hb(0|n,0|e,0|t),cc(A,A+24|0,64),e=e+t|0,r=r-t|0;break}return void hb(0|n,0|e,0|r)}}while(0);63>>0&&(e=0|cc(A,e,-64&r),r&=63),hb(A+24|0,0|e,0|r)}function cc(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0;for(g=(A|=0)+12|0,Z=A+16|0,p=A+20|0,f=A+88|0,n=A+92|0,t=A+96|0,o=A+100|0,a=A+104|0,c=A+108|0,l=A+112|0,u=A+116|0,b=A+120|0,s=A+124|0,d=A+128|0,k=A+132|0,h=A+136|0,w=A+140|0,v=A+144|0,i=A+148|0,A=0|ar[(m=A+8|0)>>2],y=0|ar[g>>2],B=0|ar[p>>2],E=0|ar[Z>>2];X=(0|cr[e+1>>0])<<8|0|cr[e>>0]|(0|cr[e+2>>0])<<16|(0|cr[e+3>>0])<<24,X=((X=A+-680876936+(y&(B^E)^B)+(ar[f>>2]=X)|0)<<7|X>>>25)+y|0,W=(0|cr[e+5>>0])<<8|0|cr[e+4>>0]|(0|cr[e+6>>0])<<16|(0|cr[e+7>>0])<<24,W=((W=B+-389564586+(ar[n>>2]=W)+(X&(y^E)^E)|0)<<12|W>>>20)+X|0,I=(0|cr[e+9>>0])<<8|0|cr[e+8>>0]|(0|cr[e+10>>0])<<16|(0|cr[e+11>>0])<<24,I=((I=E+606105819+(ar[t>>2]=I)+(W&(X^y)^y)|0)<<17|I>>>15)+W|0,j=(0|cr[e+13>>0])<<8|0|cr[e+12>>0]|(0|cr[e+14>>0])<<16|(0|cr[e+15>>0])<<24,j=((j=y+-1044525330+(ar[o>>2]=j)+(I&(W^X)^X)|0)<<22|j>>>10)+I|0,Y=(0|cr[e+17>>0])<<8|0|cr[e+16>>0]|(0|cr[e+18>>0])<<16|(0|cr[e+19>>0])<<24,Y=((Y=X+-176418897+(ar[a>>2]=Y)+(j&(I^W)^W)|0)<<7|Y>>>25)+j|0,X=(0|cr[e+21>>0])<<8|0|cr[e+20>>0]|(0|cr[e+22>>0])<<16|(0|cr[e+23>>0])<<24,X=((X=W+1200080426+(ar[c>>2]=X)+(Y&(j^I)^I)|0)<<12|X>>>20)+Y|0,W=(0|cr[e+25>>0])<<8|0|cr[e+24>>0]|(0|cr[e+26>>0])<<16|(0|cr[e+27>>0])<<24,W=((W=I+-1473231341+(ar[l>>2]=W)+(X&(Y^j)^j)|0)<<17|W>>>15)+X|0,I=(0|cr[e+29>>0])<<8|0|cr[e+28>>0]|(0|cr[e+30>>0])<<16|(0|cr[e+31>>0])<<24,I=((I=j+-45705983+(ar[u>>2]=I)+(W&(X^Y)^Y)|0)<<22|I>>>10)+W|0,j=(0|cr[e+33>>0])<<8|0|cr[e+32>>0]|(0|cr[e+34>>0])<<16|(0|cr[e+35>>0])<<24,j=((j=Y+1770035416+(ar[b>>2]=j)+(I&(W^X)^X)|0)<<7|j>>>25)+I|0,Y=(0|cr[e+37>>0])<<8|0|cr[e+36>>0]|(0|cr[e+38>>0])<<16|(0|cr[e+39>>0])<<24,X=((X=(ar[s>>2]=Y)+-1958414417+X+(j&(I^W)^W)|0)<<12|X>>>20)+j|0,Y=(0|cr[e+41>>0])<<8|0|cr[e+40>>0]|(0|cr[e+42>>0])<<16|(0|cr[e+43>>0])<<24,W=((W=(ar[d>>2]=Y)+-42063+W+(X&(j^I)^I)|0)<<17|W>>>15)+X|0,Y=(0|cr[e+45>>0])<<8|0|cr[e+44>>0]|(0|cr[e+46>>0])<<16|(0|cr[e+47>>0])<<24,I=((I=(ar[k>>2]=Y)+-1990404162+I+(W&(X^j)^j)|0)<<22|I>>>10)+W|0,Y=(0|cr[e+49>>0])<<8|0|cr[e+48>>0]|(0|cr[e+50>>0])<<16|(0|cr[e+51>>0])<<24,j=((j=(ar[h>>2]=Y)+1804603682+j+(I&(W^X)^X)|0)<<7|j>>>25)+I|0,Y=(0|cr[e+53>>0])<<8|0|cr[e+52>>0]|(0|cr[e+54>>0])<<16|(0|cr[e+55>>0])<<24,X=((X=(ar[w>>2]=Y)+-40341101+X+(j&(I^W)^W)|0)<<12|X>>>20)+j|0,Y=(0|cr[e+57>>0])<<8|0|cr[e+56>>0]|(0|cr[e+58>>0])<<16|(0|cr[e+59>>0])<<24,W=((W=(ar[v>>2]=Y)+-1502002290+W+(X&(j^I)^I)|0)<<17|W>>>15)+X|0,Y=(0|cr[e+61>>0])<<8|0|cr[e+60>>0]|(0|cr[e+62>>0])<<16|(0|cr[e+63>>0])<<24,I=((I=(ar[i>>2]=Y)+1236535329+I+(W&(X^j)^j)|0)<<22|I>>>10)+W|0,j=((j=(D=0|ar[n>>2])+-165796510+j+((I^W)&X^W)|0)<<5|j>>>27)+I|0,X=((X=(_=0|ar[l>>2])+-1069501632+X+((j^I)&W^I)|0)<<9|X>>>23)+j|0,W=((W=(F=0|ar[k>>2])+643717713+W+((X^j)&I^j)|0)<<14|W>>>18)+X|0,I=((I=(z=0|ar[f>>2])+-373897302+I+((W^X)&j^X)|0)<<20|I>>>12)+W|0,j=((j=(U=0|ar[c>>2])+-701558691+j+((I^W)&X^W)|0)<<5|j>>>27)+I|0,W=((W=Y+-660478335+W+(((X=((X=(J=0|ar[d>>2])+38016083+X+((j^I)&W^I)|0)<<9|X>>>23)+j|0)^j)&I^j)|0)<<14|W>>>18)+X|0,I=((I=(R=0|ar[a>>2])+-405537848+I+((W^X)&j^X)|0)<<20|I>>>12)+W|0,j=((j=(G=0|ar[s>>2])+568446438+j+((I^W)&X^W)|0)<<5|j>>>27)+I|0,X=((X=(S=0|ar[v>>2])+-1019803690+X+((j^I)&W^I)|0)<<9|X>>>23)+j|0,W=((W=(M=0|ar[o>>2])+-187363961+W+((X^j)&I^j)|0)<<14|W>>>18)+X|0,I=((I=(Q=0|ar[b>>2])+1163531501+I+((W^X)&j^X)|0)<<20|I>>>12)+W|0,j=((j=(N=0|ar[w>>2])+-1444681467+j+((I^W)&X^W)|0)<<5|j>>>27)+I|0,X=((X=(V=0|ar[t>>2])+-51403784+X+((j^I)&W^I)|0)<<9|X>>>23)+j|0,C=(W=((W=(O=0|ar[u>>2])+1735328473+W+((X^j)&I^j)|0)<<14|W>>>18)+X|0)^X,A=(C=((C=R+-145523070+(C=((C=Q+1873313359+(C=((C=(T=0|ar[h>>2])+1700485571+(C=((C=z+-198630844+(C=((C=G+-640364487+(C=((C=N+681279174+(C=((C=D+-1530992060+(C=((C=U+-378558+j+(C^(I=((I=T+-1926607734+I+(C&j^X)|0)<<20|I>>>12)+W|0))|0)<<4|C>>>28)+I|0)+((W=((W=F+1839030562+W+(C^I^(X=((X=Q+-2022574463+X+(I^W^C)|0)<<11|X>>>21)+C|0))|0)<<16|W>>>16)+X|0)^X^(I=((I=S+-35309556+I+(X^C^W)|0)<<23|I>>>9)+W|0))|0)<<4|C>>>28)+I|0)+((W=((W=O+-155497632+W+(C^I^(X=((X=R+1272893353+X+(I^W^C)|0)<<11|X>>>21)+C|0))|0)<<16|W>>>16)+X|0)^X^(I=((I=J+-1094730640+I+(X^C^W)|0)<<23|I>>>9)+W|0))|0)<<4|C>>>28)+I|0)+((W=((W=M+-722521979+W+(C^I^(X=((X=z+-358537222+X+(I^W^C)|0)<<11|X>>>21)+C|0))|0)<<16|W>>>16)+X|0)^X^(I=((I=_+76029189+I+(X^C^W)|0)<<23|I>>>9)+W|0))|0)<<4|C>>>28)+I|0)+(((I=((I=V+-995338651+I+((X=((X=T+-421815835+X+(I^W^C)|0)<<11|X>>>21)+C|0)^C^(W=((W=Y+530742520+W+(C^I^X)|0)<<16|W>>>16)+X|0))|0)<<23|I>>>9)+W|0)|~X)^W)|0)<<6|C>>>26)+I|0)+(((I=((I=U+-57434055+I+(((W=((W=S+-1416354905+W+(((X=((X=O+1126891415+X+((C|~W)^I)|0)<<10|X>>>22)+C|0)|~I)^C)|0)<<15|W>>>17)+X|0)|~C)^X)|0)<<21|I>>>11)+W|0)|~X)^W)|0)<<6|C>>>26)+I|0)+(((I=((I=D+-2054922799+I+(((W=((W=J+-1051523+W+(((X=((X=M+-1894986606+X+((C|~W)^I)|0)<<10|X>>>22)+C|0)|~I)^C)|0)<<15|W>>>17)+X|0)|~C)^X)|0)<<21|I>>>11)+W|0)|~X)^W)|0)<<6|C>>>26)+I|0)+(((I=((I=N+1309151649+I+(((W=((W=_+-1560198380+W+(((X=((X=Y+-30611744+X+((C|~W)^I)|0)<<10|X>>>22)+C|0)|~I)^C)|0)<<15|W>>>17)+X|0)|~C)^X)|0)<<21|I>>>11)+W|0)|~X)^W)|0)<<6|C>>>26)+I|0)+A|0,y=(W=((W=V+718787259+W+(((X=((X=F+-1120210379+X+((C|~W)^I)|0)<<10|X>>>22)+C|0)|~I)^C)|0)<<15|W>>>17)+X|0)+y+((I=G+-343485551+I+((W|~C)^X)|0)<<21|I>>>11)|0,E=W+E|0,B=X+B|0,e=e+64|0,0!=(0|(r=r+-64|0)););return ar[m>>2]=A,ar[g>>2]=y,ar[Z>>2]=E,ar[p>>2]=B,0|e}function lc(A,e){A|=0;var r=0,i=0,f=0;r=(i=63&ar[(e|=0)>>2])+1|0,tr[e+24+i>>0]=-128,f=e+24|0,(i^=63)>>>0<8?(vb(e+24+r|0,0,0|i),cc(e,f,64),i=56,r=0):i=i+-8|0,vb(e+24+r|0,0,0|i),r=(i=0|ar[e>>2])<<3,ar[e>>2]=r,tr[e+80>>0]=r,tr[e+81>>0]=i>>>5,tr[e+82>>0]=i>>>13,tr[e+83>>0]=i>>>21,i=0|ar[e+4>>2],tr[e+84>>0]=i,tr[e+85>>0]=i>>>8,tr[e+86>>0]=i>>>16,tr[e+87>>0]=i>>>24,cc(e,f,64),f=e+8|0,tr[A>>0]=ar[f>>2],tr[A+1>>0]=(0|ar[f>>2])>>>8,tr[A+2>>0]=(0|ar[f>>2])>>>16,tr[A+3>>0]=(0|ar[f>>2])>>>24,f=e+12|0,tr[A+4>>0]=ar[f>>2],tr[A+5>>0]=(0|ar[f>>2])>>>8,tr[A+6>>0]=(0|ar[f>>2])>>>16,tr[A+7>>0]=(0|ar[f>>2])>>>24,f=e+16|0,tr[A+8>>0]=ar[f>>2],tr[A+9>>0]=(0|ar[f>>2])>>>8,tr[A+10>>0]=(0|ar[f>>2])>>>16,tr[A+11>>0]=(0|ar[f>>2])>>>24,f=e+20|0,tr[A+12>>0]=ar[f>>2],tr[A+13>>0]=(0|ar[f>>2])>>>8,tr[A+14>>0]=(0|ar[f>>2])>>>16,tr[A+15>>0]=(0|ar[f>>2])>>>24,vb(0|e,0,152)}function uc(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0;var s,d,k,h,w,v,m,g,Z,p=0,y=0,B=0,E=0,X=0,W=0,I=0;if(ur=(Z=ur)+20448|0,d=(W=Z)+9088|0,k=3&(r|=0),h=3&(i|=0),g=(r>>2)+(f|=0)|0,m=(i>>2)+(n|=0)|0,y=14-(0|ar[(e|=0)+4996>>2])|0,v=0|ar[e+484>>2],w=0|ar[e+488>>2],3&(i|r)){if(y=0|ar[9768+(k<<2)>>2],n=0|ar[9784+(k<<2)>>2],s=0|ar[9768+(h<<2)>>2],f=0|ar[9784+(h<<2)>>2],p=0-y|0,-1<(m-s|g-y|0)&&(g+l+n|0)<(0|v)&&(m+u+f|0)<(0|w))f=a+((0|br(m,n=c))+g<<1)|0;else{if((0|(e=0-s|0))<(0|(i=f+u|0))&&(E=v-1|0,X=w-1|0,(0|p)<(0|(B=n+l|0))))do{for(n=0|br((0|(n=e+m|0))<0?0:(0|n)<(0|w)?n:X,c),r=(80*(e+s|0)|0)+y|0,f=p;I=f+g|0,or[d+(r+f<<1)>>1]=0|or[a+(((0|I)<0?0:(0|I)<(0|v)?I:E)+n<<1)>>1],(0|(f=f+1|0))!=(0|B););e=e+1|0}while((0|e)!=(0|i));f=d+(((n=80)*s|0)+y<<1)|0}(0|b)<9?cs[31&ar[A+220+(k<<4)+(h<<2)>>2]](t,o,f,n,l,u,W):ls[31&ar[A+300+(k<<4)+(h<<2)>>2]](t,o,f,n,l,u,W,b),ur=Z}else{if(!((m|g|0)<0|(0|v)<(g+l|0)|(0|w)<(m+u|0)))return f=a+((0|br(m,c))+g<<1)|0,(0|b)<9?cs[31&ar[A+220>>2]](t,o,f,c,l,u,W):ls[31&ar[A+300>>2]](t,o,f,c,l,u,W,b),void(ur=Z);if((0|u)<=0)return void(ur=Z);if(e=v-1|0,r=w-1|0,!(0<(0|l)))return void(ur=Z);f=0;do{for(i=0|br((0|(i=f+m|0))<0?0:(0|i)<(0|w)?i:r,c),p=0|br(f,o),n=0;W=n+g|0,or[t+(n+p<<1)>>1]=(0|lr[a+(((0|W)<0?0:(0|W)<(0|v)?W:e)+i<<1)>>1])<>2)+(f|=0)|0,m=(i>>2)+(n|=0)|0,y=14-(0|ar[(e|=0)+4996>>2])|0,v=0|ar[e+484>>2],w=0|ar[e+488>>2],3&(i|r)){if(y=0|ar[9768+(k<<2)>>2],n=0|ar[9784+(k<<2)>>2],s=0|ar[9768+(h<<2)>>2],f=0|ar[9784+(h<<2)>>2],p=0-y|0,-1<(m-s|g-y|0)&&(g+l+n|0)<(0|v)&&(m+u+f|0)<(0|w))f=a+((0|br(m,n=c))+g)|0;else{if((0|(e=0-s|0))<(0|(i=f+u|0))&&(E=v-1|0,X=w-1|0,(0|p)<(0|(B=n+l|0))))do{for(n=0|br((0|(n=e+m|0))<0?0:(0|n)<(0|w)?n:X,c),r=(80*(e+s|0)|0)+y|0,f=p;I=f+g|0,tr[d+(r+f)>>0]=0|tr[a+(((0|I)<0?0:(0|I)<(0|v)?I:E)+n)>>0],(0|(f=f+1|0))!=(0|B););e=e+1|0}while((0|e)!=(0|i));f=d+(((n=80)*s|0)+y)|0}(0|b)<9?cs[31&ar[A+220+(k<<4)+(h<<2)>>2]](t,o,f,n,l,u,W):ls[31&ar[A+300+(k<<4)+(h<<2)>>2]](t,o,f,n,l,u,W,b),ur=Z}else{if(!((m|g|0)<0|(0|v)<(g+l|0)|(0|w)<(m+u|0)))return f=a+((0|br(m,c))+g)|0,(0|b)<9?cs[31&ar[A+220>>2]](t,o,f,c,l,u,W):ls[31&ar[A+300>>2]](t,o,f,c,l,u,W,b),void(ur=Z);if((0|u)<=0)return void(ur=Z);if(e=v-1|0,r=w-1|0,!(0<(0|l)))return void(ur=Z);f=0;do{for(i=0|br((0|(i=f+m|0))<0?0:(0|i)<(0|w)?i:r,c),p=0|br(f,o),n=0;W=n+g|0,or[t+(n+p<<1)>>1]=(0|cr[a+(((0|W)<0?0:(0|W)<(0|v)?W:e)+i)>>0])<>2])|0,E=0|ar[e+5016>>2],w=(0|ar[e+484>>2])/(0|E)|0,B=0|ar[e+5020>>2],h=(0|ar[e+488>>2])/(0|B)|0,s=7&(r=0|br(2/(0|E)|0,r)),d=7&(i=0|br(2/(0|B)|0,i)),E=((0|f)/(0|E)|0)+(r>>3)|0,B=((0|n)/(0|B)|0)+(i>>3)|0,7&(i|r)){if(0<(0|E)&&(E+l|0)<=(w-2|0)&0<(0|B)&&(B+u|0)<=(h-2|0))f=a+((0|br(B,c))+E<<1)|0,e=c;else{if(-1<(0|(i=u+2|0))&&(Z=w-1|0,p=h-1|0,-1<(0|(g=l+2|0)))){r=-1;do{for(f=0|br((0|(f=r+B|0))<0?0:(0|f)<(0|h)?f:p,c),n=80+(80*r|0)|0,e=-1;y=e+E|0,or[m+(n+(e=e+1|0)<<1)>>1]=0|or[a+(((0|y)<0?0:(0|y)<(0|w)?y:Z)+f<<1)>>1],(0|e)!=(0|g););r=r+1|0}while((0|r)!=(0|i))}f=m+162|0,e=80}r=0!=(0|s),i=0!=(0|d);do{if(r&i){if((0|b)<9){bs[7&ar[A+216>>2]](t,o,f,e,l,u,s,d,k,b);break}bs[7&ar[A+296>>2]](t,o,f,e,l,u,s,d,k,b);break}if(r){if((0|b)<9){bs[7&ar[A+208>>2]](t,o,f,e,l,u,s,d,k,b);break}bs[7&ar[A+288>>2]](t,o,f,e,l,u,s,d,k,b);break}if(i||sr(55739,48428,268,48472),(0|b)<9){bs[7&ar[A+212>>2]](t,o,f,e,l,u,0,d,k,b);break}bs[7&ar[A+292>>2]](t,o,f,e,l,u,0,d,k,b);break}while(0);ur=v}else{if(-1<(0|E)&&!((0|B)<0|(0|w)<(E+l|0)|(0|h)<(B+u|0)))return e=a+((0|br(B,c))+E<<1)|0,(0|b)<9?us[3&ar[A+204>>2]](t,o,e,c,l,u,0,0,0):bs[7&ar[A+284>>2]](t,o,e,c,l,u,0,0,0,b),void(ur=v);if((0|u)<=0)return void(ur=v);if(i=w-1|0,f=h-1|0,!(0<(0|l)))return void(ur=v);r=0;do{for(n=0|br((0|(n=r+B|0))<0?0:(0|n)<(0|h)?n:f,c),m=0|br(r,o),e=0;b=e+E|0,or[t+(e+m<<1)>>1]=(0|lr[a+(((0|b)<0?0:(0|b)<(0|w)?b:i)+n<<1)>>1])<>2])|0,E=0|ar[e+5016>>2],w=(0|ar[e+484>>2])/(0|E)|0,B=0|ar[e+5020>>2],h=(0|ar[e+488>>2])/(0|B)|0,s=7&(r=0|br(2/(0|E)|0,r)),d=7&(i=0|br(2/(0|B)|0,i)),E=((0|f)/(0|E)|0)+(r>>3)|0,B=((0|n)/(0|B)|0)+(i>>3)|0,7&(i|r)){if(0<(0|E)&&(E+l|0)<=(w-2|0)&0<(0|B)&&(B+u|0)<=(h-2|0))f=a+((0|br(B,c))+E)|0,e=c;else{if(-1<(0|(i=u+2|0))&&(Z=w-1|0,p=h-1|0,-1<(0|(g=l+2|0)))){r=-1;do{for(f=0|br((0|(f=r+B|0))<0?0:(0|f)<(0|h)?f:p,c),n=80+(80*r|0)|0,e=-1;y=e+E|0,tr[m+(n+(e=e+1|0))>>0]=0|tr[a+(((0|y)<0?0:(0|y)<(0|w)?y:Z)+f)>>0],(0|e)!=(0|g););r=r+1|0}while((0|r)!=(0|i))}f=m+81|0,e=80}r=0!=(0|s),i=0!=(0|d);do{if(r&i){if((0|b)<9){bs[7&ar[A+216>>2]](t,o,f,e,l,u,s,d,k,b);break}bs[7&ar[A+296>>2]](t,o,f,e,l,u,s,d,k,b);break}if(r){if((0|b)<9){bs[7&ar[A+208>>2]](t,o,f,e,l,u,s,d,k,b);break}bs[7&ar[A+288>>2]](t,o,f,e,l,u,s,d,k,b);break}if(i||sr(55739,48428,268,48472),(0|b)<9){bs[7&ar[A+212>>2]](t,o,f,e,l,u,0,d,k,b);break}bs[7&ar[A+292>>2]](t,o,f,e,l,u,0,d,k,b);break}while(0);ur=v}else{if(-1<(0|E)&&!((0|B)<0|(0|w)<(E+l|0)|(0|h)<(B+u|0)))return e=a+((0|br(B,c))+E)|0,(0|b)<9?us[3&ar[A+204>>2]](t,o,e,c,l,u,0,0,0):bs[7&ar[A+284>>2]](t,o,e,c,l,u,0,0,0,b),void(ur=v);if((0|u)<=0)return void(ur=v);if(i=w-1|0,f=h-1|0,!(0<(0|l)))return void(ur=v);r=0;do{for(n=0|br((0|(n=r+B|0))<0?0:(0|n)<(0|h)?n:f,c),m=0|br(r,o),e=0;b=e+E|0,or[t+(e+m<<1)>>1]=(0|cr[a+(((0|b)<0?0:(0|b)<(0|w)?b:i)+n)>>0])<>2])>>2]](A,n)||sr(48581,48428,1074,48604),b=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,n),(0|ar[24+b>>2])>(0|t)&&(0|ar[28+b>>2])>(0|o)){if(i=t>>(f=0|ar[10368+b>>2]),f=o>>f,(0|i)<=-1&&sr(48482,48519,118,48539),(0|(n=0|ar[10372+b>>2]))<=(0|i)&&sr(48482,48519,118,48539),(0|f)<=-1&&sr(48543,48519,119,48539),(0|f)>=(0|ar[10376+b>>2])&&sr(48543,48519,119,48539),w=(0|ar[10360+b>>2])+(3*((0|br(n,f))+i|0)|0)|0,!(768&(cr[w>>0]|cr[w+1>>0]<<8)))return or[l>>1]=0,or[l+2>>1]=0,void(tr[u>>0]=0);if(1==(0|tr[10516+b>>0]))return or[l>>1]=0,or[l+2>>1]=0,void(tr[u>>0]=0);if(i=t>>(f=0|ar[10388+b>>2]),f=o>>f,(0|i)<=-1&&sr(48482,48519,118,48539),(0|(n=0|ar[10392+b>>2]))<=(0|i)&&sr(48482,48519,118,48539),(0|f)<=-1&&sr(48543,48519,119,48539),(0|f)>=(0|ar[10396+b>>2])&&sr(48543,48519,119,48539),w=0|ar[10380+b>>2],h=(0|br(n,f))+i|0,0|tr[w+(12*h|0)>>0])if(0|tr[w+(12*h|0)+1>>0]){if(s=0|ar[e+92>>2],0<(0|ar[(n=r+332|0)>>2]))for(f=0;i=92+(0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+980+(f<<2)>>2]))|0,(i=(0|ar[i>>2])<=(0|s))&(0|(f=f+1|0))<(0|ar[n>>2]););else i=1;if(i&0<(0|ar[(n=r+328|0)>>2]))for(f=0;i=92+(0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(f<<2)>>2]))|0,(i=(0|ar[i>>2])<=(0|s))&(0|(f=f+1|0))<(0|ar[n>>2]););d=i?c:0|tr[r+372>>0]}else d=0;else d=1;return(k=lr[(k=w+(12*h|0)+4+(d<<2)|0)>>1]|lr[k+2>>1]<<16,s=0|tr[w+(12*h|0)+2+d>>0],n=t>>(i=0|ar[10348+b>>2]),i=o>>i,(0|n)<=-1&&sr(48482,48519,118,48539),(0|(f=0|ar[10352+b>>2]))<=(0|n)&&sr(48482,48519,118,48539),(0|i)<=-1&&sr(48543,48519,119,48539),(0|i)>=(0|ar[10356+b>>2])&&sr(48543,48519,119,48539),i=(0|ar[10340+b>>2])+(24*((0|br(f,i))+n|0)|0)+2|0,i=0|ar[(0|ar[48+b>>2])+(lr[i>>1]<<2)>>2],(0|tr[(n=r+1300+(c<<4)+a|0)>>0])!=(0|tr[i+1300+(d<<4)+s>>0]))?(tr[u>>0]=0,or[l>>1]=0,void(or[l+2>>1]=0)):(tr[u>>0]=1,i=(0|ar[92+b>>2])-(0|ar[i+1044+(d<<6)+(s<<2)>>2])|0,f=(0|ar[e+92>>2])-(0|ar[r+1044+(c<<6)+(a<<2)>>2])|0,0!=(0|tr[n>>0])|(0|i)==(0|f)?(or[l>>1]=k,void(or[l+2>>1]=k>>>16)):(i=(0|i)<-128?-128:(0|i)<127?i:127)?(e=32+(0|br((16384+(((0|i)<0?0-i|0:i)>>1)|0)/(0|i)|0,(0|f)<-128?-128:(0|f)<127?f:127))>>6,A=0|br(e=(0|e)<-4096?-4096:(0|e)<4095?e:4095,k<<16>>16),A=0|br(((c=(0|A)<0)?0-A|0:A)+127>>8,c?-1:0!=(0|A)&1),or[l>>1]=(0|A)<-32768?-32768:65535&((0|A)<32767?A:32767),e=0|br(e,k>>16),e=0|br(((A=(0|e)<0)?0-e|0:e)+127>>8,A?-1:0!=(0|e)&1),void(or[l+2>>1]=(0|e)<-32768?-32768:65535&((0|e)<32767?e:32767))):(or[l>>1]=k,or[l+2>>1]=k>>>16,er(A+4|0,1008,0),void(tr[e+10516>>0]=3)))}er(A+4|0,1026,0),tr[u>>0]=0}function hc(A,e,r,i,f,n,t,o,a,c,l){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d=0;if(!(0|tr[(r|=0)+324>>0]))return or[c>>1]=0,or[c+2>>1]=0,void(tr[l>>0]=0);if(s=0|ar[e+5804>>2],d=0|ar[r+20>>2]?0:0==(0|tr[r+372>>0])&1,d=0|ar[r+916+(d<<6)+(ar[r+376>>2]<<2)>>2],!(0|Hb[31&ar[12+(0|ar[A>>2])>>2]](A,d)))return or[c>>1]=0,or[c+2>>1]=0,void er(A+4|(tr[l>>0]=0),1012,0);if(b=n+i|0,(f>>s|0)==((u=t+f|0)>>s|0)&&(0|b)<(0|ar[e+1248>>2])&&(0|u)<(0|ar[e+1252>>2])){if(kc(A,e,r,0,0,d,-16&b,-16&u,o,a,c,l),0|tr[l>>0])return}else or[c>>1]=0,or[c+2>>1]=0,tr[l>>0]=0;kc(A,e,r,0,0,d,(n>>1)+i&-16,(t>>1)+f&-16,o,a,c,l)}function wc(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,e|=0,n|=0,t|=0,a|=0,c|=0,l|=0,u|=0,b|=0;var s,d,k,h,w,v,m=0,g=0,Z=0;if(g=ur=(v=ur)+31&-32,ur=ur+16|0,w=g+8|0,g=(m=g)+12|0,t=0|function(A,e,r,i,f,n,t,o,a,c,l,u){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0;var b,s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;w=0|ar[(A|=0)+10060>>2],t=e>>(m=0|ar[A+10368>>2]),m=r>>m,(0|t)<=-1&&sr(48482,48519,118,48539),(0|(g=0|ar[A+10372>>2]))<=(0|t)&&sr(48482,48519,118,48539),(0|m)<=-1&&sr(48543,48519,119,48539),(0|m)>=(0|ar[A+10376>>2])&&sr(48543,48519,119,48539),Z=(0|ar[A+10360>>2])+(3*((0|br(g,m))+t|0)|0)|0,Z=(65535&(cr[Z>>0]|cr[Z+1>>0]<<8))>>>3,t=(d=a+n|0)-1|0,(h=(0|(s=f>>w))==((k=f+-1|0)>>w|0))&&(n>>w|0)==(t>>w|0)?v=I=0:E=9;A:do{if(9==(0|E)){if(1==(0|c))switch(7&Z){case 2:case 6:case 7:v=I=0;break A}if(0|ka(A,e,r,i,f,n,o,a,c,k,t)){if(t>>=X=0|ar[A+10388>>2],(0|(g=k>>X))<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[A+10392>>2]))<=(0|g)&&sr(48482,48519,118,48539),(0|t)<=-1&&sr(48543,48519,119,48539),(0|t)<(0|ar[A+10396>>2])){I=(0|ar[A+10380>>2])+(12*((0|br(m,t))+g|0)|0)|0,or[l>>1]=0|or[I>>1],or[l+2>>1]=0|or[I+2>>1],or[l+4>>1]=0|or[I+4>>1],or[l+6>>1]=0|or[I+6>>1],or[l+8>>1]=0|or[I+8>>1],or[l+10>>1]=0|or[I+10>>1],v=I=1;break}sr(48543,48519,119,48539)}else v=I=0}}while(0);if((0|u)<=(0|v))return 0|(l=v);X=n+-1|0,(0|s)==((t=(b=o+f|0)-1|0)>>w|0)&&(n>>w|0)==(X>>w|0)?B=p=0:E=22;A:do{if(22==(0|E)){if(1==(0|c))switch(7&Z){case 1:case 4:case 5:B=p=0;break A}if(0|ka(A,e,r,i,f,n,o,a,c,t,X)){t>>=m=0|ar[A+10388>>2],m=X>>m,(0|t)<=-1&&sr(48482,48519,118,48539),(0|(g=0|ar[A+10392>>2]))<=(0|t)&&sr(48482,48519,118,48539),(0|m)<=-1&&sr(48543,48519,119,48539),(0|m)>=(0|ar[A+10396>>2])&&sr(48543,48519,119,48539),t=(Z=0|ar[A+10380>>2])+(12*(g=(0|br(g,m))+t|0)|0)|0;do{if(I&&(p=0|tr[l>>0])<<24>>24==(0|tr[t>>0])){if(p<<24>>24){if((0|or[l+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+1>>0])<<24>>24==(0|tr[Z+(12*g|0)+1>>0])){if(!(m<<24>>24)){p=1,B=0;break A}if((0|or[l+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+3>>0])==(0|tr[Z+(12*g|0)+3>>0])){p=1,B=0;break A}}}}while(0);or[(p=l+(12*v|0)|0)>>1]=0|or[t>>1],or[p+2>>1]=0|or[t+2>>1],or[p+4>>1]=0|or[t+4>>1],or[p+6>>1]=0|or[t+6>>1],or[p+8>>1]=0|or[t+8>>1],or[p+10>>1]=0|or[t+10>>1],v=(B=v)+(p=1)|0}else B=p=0}}while(0);if((0|u)<=(0|v))return 0|(l=v);(0|s)==(b>>w|0)&&(n>>w|0)==(X>>w|0)||(E=47);A:do{if(47==(0|E)&&0|ka(A,e,r,i,f,n,o,a,c,b,X)){t=b>>(m=0|ar[A+10388>>2]),m=X>>m,(0|t)<=-1&&sr(48482,48519,118,48539),(0|(g=0|ar[A+10392>>2]))<=(0|t)&&sr(48482,48519,118,48539),(0|m)<=-1&&sr(48543,48519,119,48539),(0|m)>=(0|ar[A+10396>>2])&&sr(48543,48519,119,48539),t=(Z=0|ar[A+10380>>2])+(12*(g=(0|br(g,m))+t|0)|0)|0;do{if(p&&(y=0|tr[l+(12*B|0)>>0])<<24>>24==(0|tr[t>>0])){if(y<<24>>24){if((0|or[l+(12*B|0)+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+(12*B|0)+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+(12*B|0)+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+(12*B|0)+1>>0])<<24>>24==(0|tr[Z+(12*g|0)+1>>0])){if(!(m<<24>>24))break A;if((0|or[l+(12*B|0)+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+(12*B|0)+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+(12*B|0)+3>>0])==(0|tr[Z+(12*g|0)+3>>0]))break A}}}while(0);or[(y=l+(12*v|0)|0)>>1]=0|or[t>>1],or[y+2>>1]=0|or[t+2>>1],or[y+4>>1]=0|or[t+4>>1],or[y+6>>1]=0|or[t+6>>1],or[y+8>>1]=0|or[t+8>>1],or[y+10>>1]=0|or[t+10>>1],v=v+1|0}}while(0);if((0|u)<=(0|v))return 0|(l=v);h&&(n>>w|0)==(d>>w|0)||(E=70);A:do{if(70==(0|E)&&0|ka(A,e,r,i,f,n,o,a,c,k,d)){g=k>>(t=0|ar[A+10388>>2]),t=d>>t,(0|g)<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[A+10392>>2]))<=(0|g)&&sr(48482,48519,118,48539),(0|t)<=-1&&sr(48543,48519,119,48539),(0|t)>=(0|ar[A+10396>>2])&&sr(48543,48519,119,48539),t=(Z=0|ar[A+10380>>2])+(12*(g=(0|br(m,t))+g|0)|0)|0;do{if(I&&(W=0|tr[l>>0])<<24>>24==(0|tr[t>>0])){if(W<<24>>24){if((0|or[l+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+1>>0])<<24>>24!=(0|tr[Z+(12*g|0)+1>>0]))break;if(!(m<<24>>24))break A;if((0|or[l+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+3>>0])==(0|tr[Z+(12*g|0)+3>>0]))break A}}while(0);or[(W=l+(12*v|0)|0)>>1]=0|or[t>>1],or[W+2>>1]=0|or[t+2>>1],or[W+4>>1]=0|or[t+4>>1],or[W+6>>1]=0|or[t+6>>1],or[W+8>>1]=0|or[t+8>>1],or[W+10>>1]=0|or[t+10>>1],v=v+1|0}}while(0);if((0|u)<=(0|v)|4==(0|v))return 0|(l=v);if(h&&(n>>w|0)==(X>>w|0))return 0|(l=v);if(!(0|ka(A,e,r,i,f,n,o,a,c,k,X)))return 0|(l=v);g=k>>(t=0|ar[A+10388>>2]),t=X>>t,(0|g)<=-1&&sr(48482,48519,118,48539),(0|(m=0|ar[A+10392>>2]))<=(0|g)&&sr(48482,48519,118,48539),(0|t)<=-1&&sr(48543,48519,119,48539),(0|t)>=(0|ar[A+10396>>2])&&sr(48543,48519,119,48539),t=(Z=0|ar[A+10380>>2])+(12*(g=(0|br(m,t))+g|0)|0)|0;do{if(p){if((m=0|tr[l+(12*B|0)>>0])<<24>>24!=(0|tr[t>>0]))break;if(m<<24>>24){if((0|or[l+(12*B|0)+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+(12*B|0)+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+(12*B|0)+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+(12*B|0)+1>>0])<<24>>24!=(0|tr[Z+(12*g|0)+1>>0]))break;if(!(m<<24>>24))return 0|(l=v);if((0|or[l+(12*B|0)+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+(12*B|0)+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+(12*B|0)+3>>0])!=(0|tr[Z+(12*g|0)+3>>0]))break;return 0|v}}while(0);do{if(I){if((m=0|tr[l>>0])<<24>>24!=(0|tr[t>>0]))break;if(m<<24>>24){if((0|or[l+4>>1])!=(0|or[Z+(12*g|0)+4>>1]))break;if((0|or[l+6>>1])!=(0|or[Z+(12*g|0)+6>>1]))break;if((0|tr[l+2>>0])!=(0|tr[Z+(12*g|0)+2>>0]))break}if((m=0|tr[l+1>>0])<<24>>24!=(0|tr[Z+(12*g|0)+1>>0]))break;if(!(m<<24>>24))return 0|(l=v);if((0|or[l+8>>1])!=(0|or[Z+(12*g|0)+8>>1]))break;if((0|or[l+10>>1])!=(0|or[Z+(12*g|0)+10>>1]))break;if((0|tr[l+3>>0])!=(0|tr[Z+(12*g|0)+3>>0]))break;return 0|v}}while(0);return or[(l=l+(12*v|0)|0)>>1]=0|or[t>>1],or[l+2>>1]=0|or[t+2>>1],or[l+4>>1]=0|or[t+4>>1],or[l+6>>1]=0|or[t+6>>1],or[l+8>>1]=0|or[t+8>>1],or[l+10>>1]=0|or[t+10>>1],0|(l=v+1|0)}(r|=0,i|=0,f|=0,o|=0,n=(Z=8==(0|o)?2<(0|ar[r+10060>>2]):0)?i:n,s=Z?f:t,0,d=Z?o:a,k=Z?o:c,Z?0:l,b,h=u+1|0),(0|u)<(0|(ar[w>>2]=t))?i=e+20|0:(hc(A,r,e,n,s,d,k,0,0,m,g),c=0|tr[g>>0],(tr[(a=g+1|0)>>0]=0)|ar[(i=e+20|0)>>2]?a=0:(hc(A,r,e,n,s,d,k,0,1,m+4|0,a),c|=a=0|tr[a>>0]),c<<24>>24&&(ar[w>>2]=t+1,Z=b+(12*t|0)+4|0,r=0|ar[m>>2],or[Z>>1]=r,or[Z+2>>1]=r>>>16,Z=b+(12*t|0)+8|0,m=0|ar[m+4>>2],or[Z>>1]=m,or[Z+2>>1]=m>>>16,tr[b+(12*t|0)>>0]=0|tr[g>>0],tr[b+(12*t|0)+1>>0]=a,tr[b+(12*t|0)+2>>0]=0,tr[b+(12*t|0)+3>>0]=0)),(c=0|ar[i>>2])||(function(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;if(1<(0|(n=0|ar[(i|=0)>>2]))&(0|n)<(0|f)){for(t=0|br(n-1|0,n),u=0;;){if(!((0|(b=0|ar[9800+(u<<2)>>2]))<(0|n)&(0|(s=0|ar[9848+(u<<2)>>2]))<(0|n))){o=4;break}if(d=0|tr[(o=r+(12*b|0)|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[e+916+(tr[r+(12*b|0)+2>>0]<<2)>>2]):0,k=0|tr[(a=r+(12*s|0)+1|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[e+980+(tr[r+(12*s|0)+3>>0]<<2)>>2]):0,!(0!=(0|d)|(l=(c=0|tr[o>>0])<<24>>24==0))){o=18;break}if(!(0!=(0|k)|(a=(o=0|tr[a>>0])<<24>>24==0))){o=18;break}do{if(!(l|a)){if((0|ar[d+92>>2])==(0|ar[k+92>>2])&&(0|or[r+(12*b|0)+4>>1])==(0|or[r+(12*s|0)+8>>1])&&(0|or[r+(12*b|0)+6>>1])==(0|or[r+(12*s|0)+10>>1]))break;k=0|ar[i>>2],tr[r+(12*k|0)+2>>0]=0|tr[r+(12*b|0)+2>>0],tr[r+(12*k|0)+3>>0]=0|tr[r+(12*s|0)+3>>0],tr[r+(12*k|0)>>0]=c,tr[r+(12*k|0)+1>>0]=o,d=r+(12*k|0)+4|0,b=lr[(b=r+(12*b|0)+4|0)>>1]|lr[b+2>>1]<<16,or[d>>1]=b,or[d+2>>1]=b>>>16,k=r+(12*k|0)+8|0,d=lr[(d=r+(12*s|0)+8|0)>>1]|lr[d+2>>1]<<16,or[k>>1]=d,or[k+2>>1]=d>>>16,ar[i>>2]=1+(0|ar[i>>2])}}while(0);if((0|(u=u+1|0))==(0|t)){o=18;break}if((0|ar[i>>2])==(0|f)){o=18;break}}if(4==(0|o))sr(55739,48428,1360,48637);else if(18==(0|o));}}(A,e,b,w,h),c=0|ar[i>>2]),t=0|ar[(a=e+328|0)>>2],1!=(0|c)&&(t=0|ar[((0|t)<(0|ar[(Z=e+332|0)>>2])?a:Z)>>2]),(0|u)<(0|(a=0|ar[w>>2])))ur=v;else{for(l=0;n=1==(0|c),Z=(0|l)<(0|t)?255&l:0,tr[b+(12*a|0)+2>>0]=Z,tr[b+(12*a|0)+3>>0]=n?-1:Z,tr[b+(12*a|0)>>0]=1,tr[b+(12*a|0)+1>>0]=1&(1^n),or[(Z=n=b+(12*a|0)+4|0)>>1]=0,or[Z+2>>1]=0,or[(n=n+4|0)>>1]=0,n=a+1|(or[n+2>>1]=0),!((0|u)<=(0|a));)l=l+1|0,c=0|ar[i>>2],a=n;ar[w>>2]=n,ur=v}}function vc(A,e,r,i,f,n,t,o,a,c,l,u,b,s){s|=0;var d,k=0,h=0,w=0,v=0,m=0;if(m=ur=(d=ur)+31&-32,ur=ur+32|0,v=m+16|0,function(A,e,r,i,f,n,t,o,a,c,l,u,b,s,d){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0,d|=0;var k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0;if(P=ur=(V=ur)+31&-32,ur=ur+48|0,v=P+32|0,m=P+24|0,g=P+44|0,I=P+12|0,P=(C=P)+40|0,Z=(t|=0)+-1|(tr[(G=(s|=0)+1|0)>>0]=0),ar[v>>2]=Z,x=c+o|0,ar[m>>2]=x,ar[4+v>>2]=Z,L=x+-1|0,ar[4+m>>2]=L,tr[s>>0]=0,or[d>>1]=0,R=1&(x=(or[(S=d+2|0)>>1]=0)|ka(e,i,f,n,t,o,a,c,b,Z,x)),tr[g>>0]=R,L=0|ka(e,i,f,n,t,o,a,c,b,Z,L),tr[1+g>>0]=1&L,x|=L,L=r+916+(l<<6)+(u<<2)|0,F=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[L>>2])){p=0|ar[F+92>>2],M=e+10368|0,k=e+10372|0,h=e+10376|0,w=e+10360|0,y=1-l|0,B=e+10388|0,E=e+10392|0,X=e+10396|0,W=e+10380|0,D=-1,J=0,F=R;A:for(;;){do{if(F<<24>>24!=0&&0==(0|tr[s>>0])){if(F=0|ar[v+(J<<2)>>2],Y=0|ar[m+(J<<2)>>2],R=F>>(N=0|ar[M>>2]),N=Y>>N,(0|R)<=-1){F=8;break A}if((0|(_=0|ar[k>>2]))<=(0|R)){F=8;break A}if((0|N)<=-1){F=11;break A}if((0|N)>=(0|ar[h>>2])){F=11;break A}if(H=(0|ar[w>>2])+(3*((0|br(_,N))+R|0)|0)|0,768&(cr[H>>0]|cr[H+1>>0]<<8)){if(N=F>>(H=0|ar[B>>2]),F=Y>>H,(0|N)<=-1){F=15;break A}if((0|(R=0|ar[E>>2]))<=(0|N)){F=15;break A}if((0|F)<=-1){F=18;break A}if((0|F)>=(0|ar[X>>2])){F=18;break A}if(Q=0|ar[W>>2],_=(0|br(R,F))+N|0,F=0|tr[(Y=Q+(12*_|0)+l|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(l<<6)+(tr[Q+(12*_|0)+2+l>>0]<<2)>>2]):0,R=0|tr[(N=Q+(12*_|0)+y|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(y<<6)+(tr[Q+(12*_|0)+2+y>>0]<<2)>>2]):0,0!=(0|F)&0!=(0|tr[Y>>0])&&(0|ar[F+92>>2])==(0|p)){tr[s>>0]=1,R=lr[(R=Q+(12*_|0)+4+(l<<2)|0)>>1]|lr[R+2>>1]<<16,or[d>>1]=R,or[d+2>>1]=R>>>16,R=0|tr[Q+(12*_|0)+2+l>>0];break}R=0!=(0|R)&0!=(0|tr[N>>0])&&(0|ar[R+92>>2])==(0|p)?(tr[s>>0]=1,R=lr[(R=Q+(12*_|0)+4+(y<<2)|0)>>1]|lr[R+2>>1]<<16,or[d>>1]=R,or[d+2>>1]=R>>>16,0|tr[Q+(12*_|0)+2+y>>0]):D}else R=D}else R=D}while(0);if(2<=(0|(F=J+1|0))){F=3;break}D=R,F=0|tr[g+(J=F)>>0]}if(3==(0|F)){O=r+1300+(l<<4)+u|0,z=e+92|0,j=A+4|0,H=e+10516|0,D=0,_=R;A:for(;;){if(0|tr[s>>0]){F=62;break}do{if(0|tr[g+D>>0]){if(F=0|ar[v+(D<<2)>>2],Q=0|ar[m+(D<<2)>>2],R=F>>(N=0|ar[M>>2]),N=Q>>N,(0|R)<=-1){F=35;break A}if((0|(Y=0|ar[k>>2]))<=(0|R)){F=35;break A}if((0|N)<=-1){F=38;break A}if((0|N)>=(0|ar[h>>2])){F=38;break A}if(u=(0|ar[w>>2])+(3*((0|br(Y,N))+R|0)|0)|0,768&(cr[u>>0]|cr[u+1>>0]<<8)){if(N=F>>(u=0|ar[B>>2]),F=Q>>u,(0|N)<=-1){F=42;break A}if((0|(R=0|ar[E>>2]))<=(0|N)){F=42;break A}if((0|F)<=-1){F=45;break A}if((0|F)>=(0|ar[X>>2])){F=45;break A}if(Y=0|ar[W>>2],F=(0|br(R,F))+N|0,1==(0|tr[Y+(12*F|0)+l>>0])&&(T=Y+(12*F|0)+2+l|0,(0|tr[O>>0])==(0|tr[(0|tr[T>>0])+(r+1300+(l<<4))>>0]))){tr[s>>0]=1,R=lr[(R=Y+(12*F|0)+4+(l<<2)|0)>>1]|lr[R+2>>1]<<16,or[d>>1]=R,or[d+2>>1]=R>>>16,R=l,_=0|tr[T>>0];break}1==(0|tr[Y+(12*F|0)+y>>0])&&(U=Y+(12*F|0)+2+y|0,(0|tr[O>>0])==(0|tr[(0|tr[U>>0])+(r+1300+(y<<4))>>0]))?(tr[s>>0]=1,R=lr[(R=Y+(12*F|0)+4+(y<<2)|0)>>1]|lr[R+2>>1]<<16,or[d>>1]=R,or[d+2>>1]=R>>>16,R=y,_=0|tr[U>>0]):R=-1}else R=-1}else R=-1}while(0);do{if(1==(0|tr[s>>0])){if((0|_)<0){F=61;break A}if((0|R)<=-1){F=55;break A}if(F=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(R<<6)+(_<<2)>>2]),Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[L>>2]),!((tr[O>>0]|tr[r+1300+(R<<4)+_>>0])<<24>>24)){if(N=(R=0|ar[z>>2])-(0|ar[F+92>>2])|0,F=R-p|0,R=lr[d>>1]|lr[d+2>>1]<<16,N=(0|N)<-128?-128:(0|N)<127?N:127){u=32+(0|br((16384+(((0|N)<0?0-N|0:N)>>1)|0)/(0|N)|0,(0|F)<-128?-128:(0|F)<127?F:127))>>6,J=0|br(u=(0|u)<-4096?-4096:(0|u)<4095?u:4095,R<<16>>16),J=0|br(((Q=(0|J)<0)?0-J|0:J)+127>>8,Q?-1:0!=(0|J)&1),or[d>>1]=(0|J)<-32768?-32768:65535&((0|J)<32767?J:32767),u=0|br(u,R>>16),u=0|br(((J=(0|u)<0)?0-u|0:u)+127>>8,J?-1:0!=(0|u)&1),or[S>>1]=(0|u)<-32768?-32768:65535&((0|u)<32767?u:32767);break}er(j,1008,0),tr[H>>0]=3;break}}}while(0);if(2<=(0|(D=D+1|0))){F=62;break}}if(35==(0|F))sr(48482,48519,118,48539);else if(38==(0|F))sr(48543,48519,119,48539);else if(42==(0|F))sr(48482,48519,118,48539);else if(45==(0|F))sr(48543,48519,119,48539);else if(55==(0|F))sr(48685,48428,1698,48699);else{if(61==(0|F))return tr[G>>0]=0,tr[s>>0]=0,ur=V;if(62==(0|F)){F=a+t|0,ar[I>>2]=F,R=o+-1|0,ar[C>>2]=R,ar[4+I>>2]=F+-1,ar[C+4>>2]=R,ar[8+I>>2]=Z,ar[C+8>>2]=R,tr[G>>0]=0,or[(u=d+4|0)>>1]=0,Y=-1,J=or[(M=d+6|0)>>1]=0;A:for(;;){S=0|ka(e,i,f,n,t,o,a,c,b,F,R),tr[P+J>>0]=1&S;do{if(S&&0==(0|tr[G>>0])){if(N=F>>(S=0|ar[B>>2]),F=R>>S,(0|N)<=-1){F=68;break A}if((0|(R=0|ar[E>>2]))<=(0|N)){F=68;break A}if((0|F)<=-1){F=71;break A}if((0|F)>=(0|ar[X>>2])){F=71;break A}if(D=0|ar[W>>2],N=(0|br(R,F))+N|0,R=0|tr[(_=D+(12*N|0)+l|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(l<<6)+(tr[D+(12*N|0)+2+l>>0]<<2)>>2]):0,F=0|tr[(Q=D+(12*N|0)+y|0)>>0]?0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(y<<6)+(tr[D+(12*N|0)+2+y>>0]<<2)>>2]):0,0!=(0|R)&0!=(0|tr[_>>0])&&(0|ar[R+92>>2])==(0|p)){tr[G>>0]=1,Y=lr[(Y=D+(12*N|0)+4+(l<<2)|0)>>1]|lr[Y+2>>1]<<16,or[u>>1]=Y,or[u+2>>1]=Y>>>16,Y=0|tr[D+(12*N|0)+2+l>>0];break}0!=(0|F)&0!=(0|tr[Q>>0])&&(0|ar[F+92>>2])==(0|p)&&(tr[G>>0]=1,Y=lr[(Y=D+(12*N|0)+4+(y<<2)|0)>>1]|lr[Y+2>>1]<<16,or[u>>1]=Y,or[u+2>>1]=Y>>>16,Y=0|tr[D+(12*N|0)+2+y>>0])}}while(0);if(3<=(0|(R=J+1|0))){F=63;break}F=0|ar[I+((J=R)<<2)>>2],R=0|ar[C+(R<<2)>>2]}if(63==(0|F)){A:do{if(!x){0|tr[G>>0]&&(tr[s>>0]=1,x=lr[u>>1]|lr[u+2>>1]<<16,or[d>>1]=x,or[d+2>>1]=x>>>16),D=e+10332|(tr[G>>0]=0),Q=0;e:for(;;){do{if(0|tr[P+Q>>0]){if(R=0|ar[B>>2],F=ar[I+(Q<<2)>>2]>>R,R=ar[C+(Q<<2)>>2]>>R,(0|F)<=-1){F=90;break e}if((0|(N=0|ar[E>>2]))<=(0|F)){F=90;break e}if((0|R)<=-1){F=93;break e}if((0|R)>=(0|ar[X>>2])){F=93;break e}if(_=0|ar[W>>2],F=(0|br(N,R))+F|0,1==(0|tr[_+(12*F|0)+l>>0])&&(K=_+(12*F|0)+2+l|0,(0|tr[O>>0])==(0|tr[(0|tr[K>>0])+(r+1300+(l<<4))>>0]))){tr[G>>0]=1,N=lr[(N=_+(12*F|0)+4+(l<<2)|0)>>1]|lr[N+2>>1]<<16,or[u>>1]=N,or[u+2>>1]=N>>>16,N=l,Y=0|tr[K>>0];break}1==(0|tr[_+(12*F|0)+y>>0])&&(q=_+(12*F|0)+2+y|0,(0|tr[O>>0])==(0|tr[(0|tr[q>>0])+(r+1300+(y<<4))>>0]))?(tr[G>>0]=1,N=lr[(N=_+(12*F|0)+4+(y<<2)|0)>>1]|lr[N+2>>1]<<16,or[u>>1]=N,or[u+2>>1]=N>>>16,N=y,Y=0|tr[q>>0]):N=-1}else N=-1}while(0);do{if(1==(0|tr[G>>0])){if((0|Y)<0){F=110;break e}if((0|N)<=-1){F=103;break e}if(0==(0|(F=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[r+916+(N<<6)+(Y<<2)>>2])))|0==(0|(R=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[L>>2])))){er(4+(0|ar[D>>2])|0,1012,0),tr[H>>0]=3;break}if((0|(F=0|ar[F+92>>2]))!=(0|ar[R+92>>2])&&(tr[r+1300+(N<<4)+Y>>0]|tr[O>>0])<<24>>24==0){if(N=(R=0|ar[z>>2])-F|0,F=R-p|0,R=lr[u>>1]|lr[u+2>>1]<<16,N=(0|N)<-128?-128:(0|N)<127?N:127){x=32+(0|br((16384+(((0|N)<0?0-N|0:N)>>1)|0)/(0|N)|0,(0|F)<-128?-128:(0|F)<127?F:127))>>6,c=0|br(x=(0|x)<-4096?-4096:(0|x)<4095?x:4095,R<<16>>16),c=0|br(((a=(0|c)<0)?0-c|0:c)+127>>8,a?-1:0!=(0|c)&1),or[u>>1]=(0|c)<-32768?-32768:65535&((0|c)<32767?c:32767),x=0|br(x,R>>16),x=0|br(((c=(0|x)<0)?0-x|0:x)+127>>8,c?-1:0!=(0|x)&1),or[M>>1]=(0|x)<-32768?-32768:65535&((0|x)<32767?x:32767);break}er(j,1008,0),tr[H>>0]=3;break}}}while(0);if(3<=(0|(Q=Q+1|0)))break A;if(0|tr[G>>0])break A}if(90==(0|F))sr(48482,48519,118,48539);else if(93==(0|F))sr(48543,48519,119,48539);else if(103==(0|F))sr(48685,48428,1839,48699);else if(110==(0|F)){tr[G>>0]=0,tr[s>>0]=0;break}}}while(0);return ur=V}68==(0|F)?sr(48482,48519,118,48539):71==(0|F)&&sr(48543,48519,119,48539)}}}else 8==(0|F)?sr(48482,48519,118,48539):11==(0|F)?sr(48543,48519,119,48539):15==(0|F)?sr(48482,48519,118,48539):18==(0|F)&&sr(48543,48519,119,48539)}else ur=V}(A|=0,r|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0,h=m+18|0,w=m+8|0),0|tr[h>>0]){do{if(0|tr[h+1>>0]){if((0|or[w>>1])==(0|or[w+4>>1])&&(0|or[w+2>>1])==(0|or[w+6>>1])){k=6;break}tr[v>>0]=0}else k=6}while(0);6==(0|k)&&hc(A,r,e,t,o,a,c,u,l,m,v),A=0|ar[w>>2],or[s>>1]=A,or[s+2>>1]=A>>>16,e=A=1}else hc(A,r,e,t,o,a,c,u,l,m,v),e=A=0;do{if(0|tr[h+1>>0]){if(e&&(0|or[w>>1])==(0|or[w+4>>1])&&(0|or[w+2>>1])==(0|or[w+6>>1]))break;h=s+(A<<2)|0,w=0|ar[w+4>>2],or[h>>1]=w,or[h+2>>1]=w>>>16,A=A+1|0}}while(0);if(0|tr[v>>0]&&(v=s+(A<<2)|0,m=0|ar[m>>2],or[v>>1]=m,or[v+2>>1]=m>>>16,A=A+1|0),(0|A)<2)return vb(s+(A<<2)|0,0,8-(A<<2)|0),void(ur=d);2!=(0|A)?sr(48737,48428,1943,48753):ur=d}function mc(A,e,r,i,f,n,t,o,a,c,l,u){var b,s;s=ur=(b=ur)+31&-32,ur=ur+16|0,function(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,e|=0,i|=0,a|=0,c|=0,l|=0,u|=0,b|=0;var s,d,k,h,w,v=0,m=0,g=0;switch(d=ur=(w=ur)+31&-32,ur=ur+80|0,h=8+d|0,k=(t|=0)+(f|=0)|0,s=(o|=0)+(n|=0)|0,t=f>>(o=0|ar[(r|=0)+10368>>2]),o=n>>o,(0|t)<=-1&&sr(48482,48519,118,48539),(0|(v=0|ar[r+10372>>2]))<=(0|t)&&sr(48482,48519,118,48539),(0|o)<=-1&&sr(48543,48519,119,48539),(0|o)>=(0|ar[r+10376>>2])&&sr(48543,48519,119,48539),v=(0|ar[r+10360>>2])+(3*((0|br(v,o))+t|0)|0)|0,(65535&(cr[v>>0]|cr[v+1>>0]<<8))>>>8&3){case 2:t=0|tr[i+10>>0],g=11;break;case 1:16&(t=0|tr[(o=i+10|0)>>0])?g=11:t=o;break;default:t=i+10|0}if(11==(0|g))return wc(A,e,r,f,n,k,s,a,c,l,u,g=(255&t)>>>5&255,h),g=h+(12*g|0)|0,or[b>>1]=0|or[g>>1],or[b+2>>1]=0|or[g+2>>1],or[b+4>>1]=0|or[g+4>>1],or[b+6>>1]=0|or[g+6>>1],or[b+8>>1]=0|or[g+8>>1],or[b+10>>1]=0|or[g+10>>1],0|tr[b>>0]&&12==(l+c|0)&0!=(0|tr[(m=b+1|0)>>0])&&(tr[b+3>>0]=-1,tr[m>>0]=0),ur=w;switch(3&tr[t>>0]){case 1:case 3:v=0|tr[i>>0],tr[b+2>>0]=v,tr[b>>0]=1,g=0|lr[i+4>>1],m=0|lr[i+2>>1],vc(A,e,r,f,n,a,k,s,c,l,0,v<<24>>24,u,h),v=h+(((0|cr[t>>0])>>>2&1)<<2)|0,v=lr[v>>1]|lr[v+2>>1]<<16,ar[d>>2]=v,g=(0|lr[2+d>>1])+g|0,or[b+4>>1]=v+m,or[b+6>>1]=g;break;default:tr[b+2>>0]=-1,tr[b>>0]=0}((3&tr[t>>0])-2&255)<2?(v=0|tr[i+1>>0],tr[b+3>>0]=v,tr[b+1>>0]=1,g=0|lr[i+8>>1],m=0|lr[i+6>>1],vc(A,e,r,f,n,a,k,s,c,l,1,v<<24>>24,u,h),c=h+(((0|cr[t>>0])>>>3&1)<<2)|0,c=lr[c>>1]|lr[c+2>>1]<<16,ar[4+d>>2]=c,g=(0|lr[6+d>>1])+g|0,or[b+8>>1]=c+m,or[b+10>>1]=g):(tr[b+3>>0]=-1,tr[b+1>>0]=0),ur=w}(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,s),function(A,e,r,i,f,n,t,o,a,c,l){A|=0,e|=0,o|=0,a|=0,c|=0,l|=0;var u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0;ur=(B=ur)+49168|0,w=B+32768|0,Y=(y=B)+49152|0,N=(n|=0)+(i|=0)|0,V=(t|=0)+(f|=0)|0,F=(r|=0)+764|0,v=0|ar[r+5780>>2],m=0|ar[r+5784>>2],k=0|ar[r+40>>2],J=(0|br(k,V))+N|0,J=(0|ar[r+4>>2])+(J<>0])|0,g=0|ar[r+44>>2],M=(0|br(g,(0|V)/(0|m)|0))+((0|N)/(0|v)|0)|0,Z=(0|ar[r+8>>2])+(M<>0])|0,M=(0|ar[r+12>>2])+(M<>0])|0,f=255&(u=0|tr[l>>0]),ar[Y>>2]=f,i=255&(D=0|tr[l+1>>0]),ar[(n=Y+4|0)>>2]=i,h=0|ar[(R=r+5760|0)>>2],p=0|ar[(_=r+5768|0)>>2],d=u<<24>>24==0,D<<24>>24==0|0!=(0|tr[(b=r+5961|0)>>0])|d||(0|or[l+4>>1])!=(0|or[l+8>>1])||(0|or[l+6>>1])!=(0|or[l+10>>1])||(0|ar[e+916+(tr[l+2>>0]<<2)>>2])!=(0|ar[e+980+(tr[l+3>>0]<<2)>>2])||(i=ar[n>>2]=0),s=r+10516|0,D=A+4|0,G=0,n=f;A:for(;;){do{if(0|n){if(15<(n=0|tr[l+2+G>>0])<<24>>24){Q=9;break A}if(C=0|Hb[31&ar[8+(0|ar[A>>2])>>2]](A,0|ar[e+916+(G<<6)+(n<<24>>24<<2)>>2]),!(0|ar[C+96>>2])){tr[s>>0]=3,er(D,1012,0);break}if(n=0|or[(W=l+4+(G<<2)|0)>>1],f=0|or[(I=l+4+(G<<2)+2|0)>>1],t=w+(G<<13)|0,E=0|ar[C+4>>2],X=0|ar[C+40>>2],(8<(0|ar[R>>2])?uc:bc)(A,F,n,f,N,V,t,o,E,X,a,c,h),n=0|or[W>>1],f=0|or[I>>1],t=y+(G<<13)|0,E=0|ar[C+8>>2],8<(0|ar[R>>2])){T=(0|a)/(0|v)|0,X=(0|c)/(0|m)|0,sc(A,F,n,f,N,V,t,o,E,0|ar[(U=C+44|0)>>2],T,X,p),sc(A,F,0|or[W>>1],0|or[I>>1],N,V,y+16384+(G<<13)|0,o,0|ar[C+12>>2],0|ar[U>>2],T,X,p);break}T=(0|a)/(0|v)|0,U=(0|c)/(0|m)|0,dc(A,F,n,f,N,V,t,o,E,0|ar[(X=C+44|0)>>2],T,U,p),dc(A,F,0|or[W>>1],0|or[I>>1],N,V,y+16384+(G<<13)|0,o,0|ar[C+12>>2],0|ar[X>>2],T,U,p);break}}while(0);if(2<=(0|(n=G+1|0)))break;n=0|ar[Y+((G=n)<<2)>>2]}if(9==(0|Q))return tr[s>>0]=3,er(D,1012,0),ur=B;switch(f=2<(0|(f=14-(0|ar[R>>2])|0))?f:2,V=0|cr[r+5920>>0],W=2<(0|(W=14-(0|ar[_>>2])|0))?W:2,Y=0|cr[r+5921>>0],0|ar[e+20>>2]){case 1:return i=u<<24>>24==1&0==(0|i),0|tr[b>>0]?i?(U=0|tr[l+2>>0],t=(0|cr[e+380>>0])+f|0,I=(0|cr[e+381>>0])+W|0,n=0|or[e+446+(U<<1)>>1],i=tr[e+510+U>>0]<>1],X=tr[e+670+(U<<1)>>0]<>1],f=tr[e+670+(U<<1)+1>>0]<>2]](J,k,w,o,a,c,n,i,t):bs[7&ar[A+196>>2]](J,k,w,o,a,c,n,i,t,h),n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(us[3&ar[(U=A+180|0)>>2]](Z,g,y,o,n,i,E,X,I),us[3&ar[U>>2]](M,g,y+16384|0,o,n,i,W,f,I)):(bs[7&ar[(U=A+196|0)>>2]](Z,g,y,o,n,i,E,X,I,p),bs[7&ar[U>>2]](M,g,y+16384|0,o,n,i,W,f,I,p))):(er(D,1011,0),tr[s>>0]=3):i?((0|h)<9?as[15&ar[A+176>>2]](J,k,w,o,a,c):cs[31&ar[A+192>>2]](J,k,w,o,a,c,h),n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(as[15&ar[(U=A+176|0)>>2]](Z,g,y,o,n,i),as[15&ar[U>>2]](M,g,y+16384|0,o,n,i)):(cs[31&ar[(U=A+192|0)>>2]](Z,g,y,o,n,i,p),cs[31&ar[U>>2]](M,g,y+16384|0,o,n,i,p))):(er(D,1011,0),tr[s>>0]=3),ur=B;case 0:return(n=u<<24>>24==1)&(i=1==(0|i))?0|tr[r+5962>>0]?(F=0|tr[l+2>>0],i=0|tr[l+3>>0],X=(0|cr[e+380>>0])+f|0,_=(0|cr[e+381>>0])+W|0,f=0|or[e+446+(F<<1)>>1],t=tr[e+510+F>>0]<>1],n=tr[e+526+i>>0]<>1],C=tr[e+670+(F<<1)>>0]<>1],V=tr[e+670+(F<<1)+1>>0]<>1],R=tr[e+702+(i<<1)>>0]<>1],W=tr[e+702+(i<<1)+1>>0]<>2]](J,k,w,i,o,a,c,f,t,E,n,X):ds[1&ar[A+200>>2]](J,k,w,i,o,a,c,f,t,E,n,X,h),f=y+8192|0,t=y+16384|0,E=y+24576|0,n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(ss[1&ar[(U=A+184|0)>>2]](Z,g,y,f,o,n,i,I,C,F,R,_),ss[1&ar[U>>2]](M,g,t,E,o,n,i,G,V,N,W,_)):(ds[1&ar[(U=A+200|0)>>2]](Z,g,y,f,o,n,i,I,C,F,R,_,p),ds[1&ar[U>>2]](M,g,t,E,o,n,i,G,V,N,W,_,p))):(i=8192+w|0,X=A+172|0,(0|h)<9?cs[31&ar[X>>2]](J,k,w,i,o,a,c):ls[31&ar[A+188>>2]](J,k,w,i,o,a,c,h),f=y+8192|0,t=y+16384|0,E=y+24576|0,n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(cs[31&ar[X>>2]](Z,g,y,f,o,n,i),cs[31&ar[X>>2]](M,g,t,E,o,n,i)):(ls[31&ar[(U=A+188|0)>>2]](Z,g,y,f,o,n,i,p),ls[31&ar[U>>2]](M,g,t,E,o,n,i,p))):n|i?(G=1&d,0|tr[r+5962>>0]?(t=0|tr[l+2+G>>0],E=(0|cr[e+380>>0])+f|0,C=(0|cr[e+381>>0])+W|0,f=0|or[e+446+(G<<5)+(t<<1)>>1],n=tr[e+510+(G<<4)+t>>0]<>1],W=tr[e+670+(G<<5)+(t<<1)>>0]<>1],t=tr[e+670+(G<<5)+(t<<1)+1>>0]<>2]](J,k,i,o,a,c,f,n,E):bs[7&ar[A+196>>2]](J,k,i,o,a,c,f,n,E,h),f=y+(G<<13)|0,n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(us[3&ar[(U=A+180|0)>>2]](Z,g,f,o,n,i,X,W,C),us[3&ar[U>>2]](M,g,y+16384+(G<<13)|0,o,n,i,I,t,C)):(bs[7&ar[(U=A+196|0)>>2]](Z,g,f,o,n,i,X,W,C,p),bs[7&ar[U>>2]](M,g,y+16384+(G<<13)|0,o,n,i,I,t,C,p))):(i=w+(G<<13)|0,(0|h)<9?as[15&ar[A+176>>2]](J,k,i,o,a,c):cs[31&ar[A+192>>2]](J,k,i,o,a,c,h),f=y+(G<<13)|0,n=(0|a)/(0|v)|0,i=(0|c)/(0|m)|0,(0|p)<9?(as[15&ar[(U=A+176|0)>>2]](Z,g,f,o,n,i),as[15&ar[U>>2]](M,g,y+16384+(G<<13)|0,o,n,i)):(cs[31&ar[(U=A+192|0)>>2]](Z,g,f,o,n,i,p),cs[31&ar[U>>2]](M,g,y+16384+(G<<13)|0,o,n,i,p)))):(er(D,1011,0),tr[s>>0]=3),ur=B;default:sr(48395,48428,489,48438)}}(A,e,r,f,n,t,o,a,c,l,s),function(A,e,r,i,f,n){var t,o,a,c,l;if(n|=0,l=(e|=0)>>2,c=(r|=0)>>2,a=(i|=0)>>2,o=(f|=0)>>2,t=0|ar[(A|=0)+10392>>2],!((0|o)<=0)&&(i=A+10380|0,0<(0|a))){e=0;do{for(f=(0|br(e+c|0,t))+l|0,r=0;A=(0|ar[i>>2])+(12*(f+r|0)|0)|0,or[A>>1]=0|or[n>>1],or[A+2>>1]=0|or[n+2>>1],or[A+4>>1]=0|or[n+4>>1],or[A+6>>1]=0|or[n+6>>1],or[A+8>>1]=0|or[n+8>>1],or[A+10>>1]=0|or[n+10>>1],(0|(r=r+1|0))!=(0|a););e=e+1|0}while((0|e)!=(0|o))}}(r,t+f|0,o+n|0,c,l,s),ur=b}function gc(A){var e;for(e=(A|=0)+100|0;(0|(A=A+2|(or[A>>1]=0)))<(0|e););}function Zc(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0;var o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;if(o=ur,0!=(0|(f|=0))&&(255&(0|At(r,1)))<<24>>24!=0){do{if(t){if(-99999!=(0|(t=0|it(r)))&(0|t)<(0|f)){t=t+1|0;break}return ur=o,(i=0)|i}t=1}while(0);if((0|(X=f-t|0))<=-1&&sr(48788,48796,129,48806),l=0|At(r,1),-99999==(0|(t=0|it(r))))return ur=o,(i=0)|i;for(u=t+1|0,a=~t,y=0|cr[(0|ar[n>>2])+(100*X|0)+98>>0],ur=(E=ur=(B=ur)+(15+(0|+(c=y+1|0))&-16)|0)+(15+(0|+c)&-16)|0,t=0;p=255&(0|At(r,1)),f=(tr[B+t>>0]=p)<<24>>24?1:255&(0|At(r,1)),tr[E+t>>0]=f,(0|(t=t+1|0))!=(0|c););g=0|l?a:u,t=0|ar[n>>2],Z=255&(u=0|tr[t+(100*X|0)+96>>0]),p=255&(w=0|tr[t+(100*X|0)+97>>0]),w=w<<24>>24==0;A:do{if(w)d=0;else{X>>>0<(((0|ar[(l=n+4|0)>>2])-t|0)/100|0)>>>0?(b=p,k=0,s=t):sr(48834,48796,174,48806);e:for(;;){for(t=b;;){if(a=t+-1|0,17<=(0|t)){I=18;break e}if((0|(f=(0|or[s+(100*X|0)+32+(a<<1)>>1])+g|0))<0&&0|tr[E+(h=a+Z|0)>>0])break;if(!(1<(0|t))){d=k;break A}t=a}if(15<(0|k)){v=0,I=74;break}if(c=k+1|0,or[i+(k<<1)>>1]=f,tr[i+64+k>>0]=0|tr[B+h>>0],(0|t)<=1){d=c;break A}if(t=0|ar[n>>2],!(X>>>0<(((0|ar[l>>2])-t|0)/100|0)>>>0)){I=17;break}b=a,k=c,s=t}if(17==(0|I))sr(48834,48796,174,48806);else if(18==(0|I))sr(48866,48796,175,48806);else if(74==(0|I))return ur=o,0|v}}while(0);do{if((0|g)<0&&0!=(0|tr[E+y>>0])){if(15<(0|d))return ur=o,(i=0)|i;or[i+(d<<1)>>1]=g,tr[i+64+d>>0]=0|tr[B+y>>0],t=d+1|0;break}t=d}while(0);c=u<<24>>24==0;A:do{if(c)tr[(u=i+96|0)>>0]=t,t=0;else{for(a=0;;){if((0|(f=(0|or[(0|ar[n>>2])+(100*X|0)+(a<<1)>>1])+g|0))<0&&0!=(0|tr[E+a>>0])){if(15<(0|t)){v=0,I=74;break}or[i+(t<<1)>>1]=f,tr[i+64+t>>0]=0|tr[B+a>>0],m=t+1|0}else m=t;if((0|Z)<=(0|(a=a+1|0)))break;t=m}if(74==(0|I))return ur=o,0|v;if(tr[(u=i+96|0)>>0]=m,!c){for(f=Z,t=0;;){for(c=0|ar[n>>2],a=f;!(0<(0|(l=(0|or[c+(100*X|0)+((f=a+-1|0)<<1)>>1])+g|0))&&0|tr[E+f>>0]);){if(!(1<(0|a)))break A;a=f}if(15<(0|t)){v=0;break}if(c=t+1|0,or[i+32+(t<<1)>>1]=l,tr[i+80+t>>0]=0|tr[B+f>>0],!(1<(0|a))){t=c;break A}t=c}return ur=o,0|v}t=0}}while(0);do{if(0<(0|g)&&0!=(0|tr[E+y>>0])){if(15<(0|t))return ur=o,(i=0)|i;or[i+32+(t<<1)>>1]=g,tr[i+80+t>>0]=0|tr[B+y>>0],t=t+1|0;break}}while(0);A:do{if(!w){for(a=0;;){if(0<(0|(f=(0|or[(0|ar[n>>2])+(100*X|0)+32+(a<<1)>>1])+g|0))&&0!=(0|tr[E+(W=a+Z|0)>>0])){if(15<(0|t)){v=0;break}or[i+32+(t<<1)>>1]=f,tr[i+80+t>>0]=0|tr[B+W>>0],t=t+1|0}if((0|p)<=(0|(a=a+1|0)))break A}return ur=o,0|v}}while(0);tr[i+97>>0]=t}else I=54;A:do{if(54==(0|I)){if(l=0|it(r),((b=0|it(r))+l|0)>(0|ar[e+528+((0|tr[e+2>>0])-1<<2)>>2]))return or[(i=i+96|0)>>1]=0,er(A,1018,or[i+2>>1]=0),ur=o,(i=0)|i;if(16<(0|l)|16<(0|b))return er(A,1018,0),ur=o,(i=0)|i;tr[(u=i+96|0)>>0]=l,tr[i+97>>0]=b;e:do{if(0<(0|l)){for(f=t=0;;){if(-99999==(0|(a=0|it(r)))){v=0;break}if(e=255&(0|At(r,1)),or[(c=i+(t<<1)|0)>>1]=f+65535-a,tr[i+64+t>>0]=e,(0|l)<=(0|(t=t+1|0)))break e;f=0|or[c>>1]}return ur=o,0|v}}while(0);if(0<(0|b)){for(f=t=0;;){if(-99999==(0|(a=0|it(r)))){v=0;break}if(e=255&(0|At(r,1)),or[(c=i+32+(t<<1)|0)>>1]=f+1+a,tr[i+80+t>>0]=e,(0|b)<=(0|(t=t+1|0)))break A;f=0|or[c>>1]}return ur=o,0|v}}}while(0);if((l=(tr[(b=i+99|0)>>0]=0)|tr[u>>0])<<24>>24)for(c=255&l,f=a=0;t=f+1<<24>>24,0|tr[i+64+a>>0]?tr[b>>0]=t:t=f,(0|(a=a+1|0))!=(0|c);)f=t;else t=0;if(c=255&(r=0|tr[i+97>>0]),r<<24>>24)for(a=0;f=t+1<<24>>24,0|tr[i+80+a>>0]&&(t=tr[b>>0]=f),(0|(a=a+1|0))!=(0|c););return tr[i+98>>0]=c+(255&l),ur=o,0|(i=1)}function pc(A,e,r){A|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0;if(t=16+(i=ur=(o=ur)+31&-32)|0,n=8+i|0,ur=(f=ur=ur+32|0)+(15+((a=(e|=0)<<1)+2|0)&-16)|0,(tr[f+(a|=1)>>0]=0)<(0|a)&&vb(0|f,46,0|a),tr[f+e>>0]=124,(a=0|tr[A+96>>0])<<24>>24)for(b=0-e|0,a&=255;u=0|or[A+((a=(c=a)+-1|0)<<1)>>1],l=0|tr[A+64+a>>0]?88:111,(0|u)<(0|b)?(ar[i>>2]=u,ar[4+i>>2]=255&l,Pn(r,48895,i)):tr[f+(u+e)>>0]=l,1<(0|c););if(!((a=0|tr[A+97>>0])<<24>>24))return ar[n>>2]=f,Pn(r,48902,n),void(ur=o);for(a&=255;u=0|or[A+32+((a=(c=a)+-1|0)<<1)>>1],l=0|tr[A+80+a>>0]?88:111,(0|e)<(0|u)?(ar[t>>2]=u,ar[4+t>>2]=255&l,Pn(r,48895,t)):tr[f+(u+e)>>0]=l,1<(0|c););ar[n>>2]=f,Pn(r,48902,n),ur=o}function yc(A){A|=0;var e,r=0,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;s=ur=(e=ur)+31&-32,ur=ur+16|0;do{if(A>>>0<245){if(A=(l=A>>>0<11?16:A+11&-8)>>>3,3&(i=(b=0|ar[14392])>>>A)|0)return f=0|ar[(i=(A=57608+((r=(1&i^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|A)==(0|(t=0|ar[(n=f+8|0)>>2]))?ar[14392]=b&~(1<>2]=A,ar[i>>2]=t),Z=r<<3,ar[f+4>>2]=3|Z,ar[(Z=f+Z+4|0)>>2]=1|ar[Z>>2],ur=e,0|(Z=n);if((u=0|ar[14394])>>>0>>0){if(0|i)return r=((r=i<>>=o=r>>>12&16)>>>5&8)|o|(n=(r>>>=i)>>>2&4)|(A=(r>>>=n)>>>1&2)|(f=(r>>>=A)>>>1&1))+(r>>>f)|0)<<1<<2)|0)+8|0)>>2],(0|r)==(0|(i=0|ar[(o=n+8|0)>>2]))?(A=b&~(1<>2]=r,ar[A>>2]=i,A=b),t=(f<<3)-l|0,ar[n+4>>2]=3|l,ar[(f=n+l|0)+4>>2]=1|t,ar[f+t>>2]=t,0|u&&(n=0|ar[14397],i=57608+((r=u>>>3)<<1<<2)|0,A&(r=1<>2]:(ar[14392]=A|r,A=(r=i)+8|0),ar[A>>2]=n,ar[r+12>>2]=n,ar[n+8>>2]=r,ar[n+12>>2]=i),ar[14394]=t,ar[14397]=f,ur=e,0|(Z=o);if(a=0|ar[14393]){if(i=(a&0-a)-1|0,A=0|ar[57872+(((t=(i>>>=o=i>>>12&16)>>>5&8)|o|(c=(i>>>=t)>>>2&4)|(f=(i>>>=c)>>>1&2)|(A=(i>>>=f)>>>1&1))+(i>>>A)<<2)>>2],i=(-8&ar[A+4>>2])-l|0,f=0|ar[A+16+((0==(0|ar[A+16>>2])&1)<<2)>>2]){for(;i=(c=(o=(-8&ar[f+4>>2])-l|0)>>>0>>0)?o:i,A=c?f:A,0!=(0|(f=0|ar[f+16+((0==(0|ar[f+16>>2])&1)<<2)>>2])););c=A,t=i}else c=A,t=i;if(c>>>0<(o=c+l|0)>>>0){n=0|ar[c+24>>2],r=0|ar[c+12>>2];do{if((0|r)==(0|c)){if(!(r=0|ar[(A=c+20|0)>>2])&&!(r=0|ar[(A=c+16|0)>>2])){i=0;break}for(;;)if(0|(f=0|ar[(i=r+20|0)>>2]))r=f,A=i;else{if(!(f=0|ar[(i=r+16|0)>>2]))break;r=f,A=i}ar[A>>2]=0,i=r}else i=0|ar[c+8>>2],ar[i+12>>2]=r,ar[r+8>>2]=i,i=r}while(0);do{if(0|n){if(r=0|ar[c+28>>2],(0|c)==(0|ar[(A=57872+(r<<2)|0)>>2])){if(!(ar[A>>2]=i)){ar[14393]=a&~(1<>2])!=(0|c)&1)<<2)>>2]=i))break;ar[i+24>>2]=n,0|(r=0|ar[c+16>>2])&&(ar[i+16>>2]=r,ar[r+24>>2]=i),0|(r=0|ar[c+20>>2])&&(ar[i+20>>2]=r,ar[r+24>>2]=i)}}while(0);return t>>>0<16?(Z=t+l|0,ar[c+4>>2]=3|Z,ar[(Z=c+Z+4|0)>>2]=1|ar[Z>>2]):(ar[c+4>>2]=3|l,ar[o+4>>2]=1|t,ar[o+t>>2]=t,0|u&&(f=0|ar[14397],i=57608+((r=u>>>3)<<1<<2)|0,b&(r=1<>2]:(ar[14392]=b|r,A=(r=i)+8|0),ar[A>>2]=f,ar[r+12>>2]=f,ar[f+8>>2]=r,ar[f+12>>2]=i),ar[14394]=t,ar[14397]=o),ur=e,0|(Z=c+8|0)}b=l}else b=l}else b=l}else if(A>>>0<=4294967231)if(l=-8&(A=A+11|0),c=0|ar[14393]){f=0-l|0,a=(A>>>=8)?16777215>>0?31:l>>>((a=14-((u=((g=A<<(b=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|b|(a=((g<<=u)+245760|0)>>>16&2))+(g<>>15)|0)+7|0)&1|a<<1:0,i=0|ar[57872+(a<<2)>>2];A:do{if(i)for(o=l<<(31==((A=0)|a)?0:25-(a>>>1)|0),t=0;;){if((n=(-8&ar[i+4>>2])-l|0)>>>0>>0){if(!n){f=0,n=A=i,g=61;break A}A=i,f=n}if(t=0==(0|(n=0|ar[i+20>>2]))|(0|n)==(0|(i=0|ar[i+16+(o>>>31<<2)>>2]))?t:n,n=0==(0|i)){i=t,g=57;break}o<<=1&(1^n)}else A=i=0,g=57}while(0);if(57==(0|g)){if(0==(0|i)&0==(0|A)){if(!(A=c&((A=2<>>=o=b>>>12&16)>>>5&8)|o|(a=(b>>>=t)>>>2&4)|(u=(b>>>=a)>>>1&2)|(i=(b>>>=u)>>>1&1))+(b>>>i)<<2)>>2]}i?(n=i,g=61):(a=A,o=f)}if(61==(0|g))for(;;){if(g=0,i=(b=(i=(-8&ar[n+4>>2])-l|0)>>>0>>0)?i:f,A=b?n:A,!(n=0|ar[n+16+((0==(0|ar[n+16>>2])&1)<<2)>>2])){a=A,o=i;break}f=i,g=61}if(0!=(0|a)&&o>>>0<((0|ar[14394])-l|0)>>>0){if((t=a+l|0)>>>0<=a>>>0)return ur=e,(Z=0)|Z;n=0|ar[a+24>>2],r=0|ar[a+12>>2];do{if((0|r)==(0|a)){if(!(r=0|ar[(A=a+20|0)>>2])&&!(r=0|ar[(A=a+16|0)>>2])){r=0;break}for(;;)if(0|(f=0|ar[(i=r+20|0)>>2]))r=f,A=i;else{if(!(f=0|ar[(i=r+16|0)>>2]))break;r=f,A=i}ar[A>>2]=0}else Z=0|ar[a+8>>2],ar[Z+12>>2]=r,ar[r+8>>2]=Z}while(0);do{if(n){if(A=0|ar[a+28>>2],(0|a)==(0|ar[(i=57872+(A<<2)|0)>>2])){if(!(ar[i>>2]=r)){f=c&~(1<>2])!=(0|a)&1)<<2)>>2]=r)){f=c;break}ar[r+24>>2]=n,0|(A=0|ar[a+16>>2])&&(ar[r+16>>2]=A,ar[A+24>>2]=r),f=((A=0|ar[a+20>>2])&&(ar[r+20>>2]=A,ar[A+24>>2]=r),c)}else f=c}while(0);do{if(16<=o>>>0){if(ar[a+4>>2]=3|l,ar[t+4>>2]=1|o,r=(ar[t+o>>2]=o)>>>3,o>>>0<256){i=57608+(r<<1<<2)|0,(A=0|ar[14392])&(r=1<>2]:(ar[14392]=A|r,A=(r=i)+8|0),ar[A>>2]=t,ar[r+12>>2]=t,ar[t+8>>2]=r,ar[t+12>>2]=i;break}if(i=57872+((r=(r=o>>>8)?16777215>>0?31:o>>>((r=14-((m=((Z=r<<(g=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|g|(r=((Z<<=m)+245760|0)>>>16&2))+(Z<>>15)|0)+7|0)&1|r<<1:0)<<2)|0,ar[t+28>>2]=r,ar[(A=t+16|0)+4>>2]=0,ar[A>>2]=0,!(f&(A=1<>2]=t,ar[t+24>>2]=i,ar[t+12>>2]=t,ar[t+8>>2]=t;break}for(A=o<<(31==(0|r)?0:25-(r>>>1)|0),i=0|ar[i>>2];;){if((-8&ar[i+4>>2]|0)==(0|o)){g=97;break}if(!(r=0|ar[(f=i+16+(A>>>31<<2)|0)>>2])){g=96;break}A<<=1,i=r}if(96==(0|g)){ar[f>>2]=t,ar[t+24>>2]=i,ar[t+12>>2]=t,ar[t+8>>2]=t;break}if(97==(0|g)){Z=0|ar[(g=i+8|0)>>2],ar[Z+12>>2]=t,ar[g>>2]=t,ar[t+8>>2]=Z,ar[t+12>>2]=i,ar[t+24>>2]=0;break}}else Z=o+l|0,ar[a+4>>2]=3|Z,ar[(Z=a+Z+4|0)>>2]=1|ar[Z>>2]}while(0);return ur=e,0|(Z=a+8|0)}b=l}else b=l;else b=-1}while(0);if(b>>>0<=(i=0|ar[14394])>>>0)return r=i-b|0,A=0|ar[14397],15>>0?(Z=A+b|0,ar[14397]=Z,ar[14394]=r,ar[Z+4>>2]=1|r,ar[Z+r>>2]=r,ar[A+4>>2]=3|b):(ar[14394]=0,ar[14397]=0,ar[A+4>>2]=3|i,ar[(Z=A+i+4|0)>>2]=1|ar[Z>>2]),ur=e,0|(Z=A+8|0);if(b>>>0<(o=0|ar[14395])>>>0)return m=o-b|0,ar[14395]=m,g=(Z=0|ar[14398])+b|0,ar[14398]=g,ar[g+4>>2]=1|m,ar[Z+4>>2]=3|b,ur=e,0|(Z=Z+8|0);if(a=b+48|0,(l=(t=(A=0|ar[14510]?0|ar[14512]:(ar[14512]=4096,ar[14511]=4096,ar[14513]=-1,ar[14514]=-1,ar[14515]=0,ar[14503]=0,A=-16&s^1431655768,ar[s>>2]=A,ar[14510]=A,4096))+(c=b+47|0)|0)&(n=0-A|0))>>>0<=b>>>0)return ur=e,(Z=0)|Z;if(0|(A=0|ar[14502])&&(s=(u=0|ar[14500])+l|0)>>>0<=u>>>0|A>>>0>>0)return ur=e,(Z=0)|Z;A:do{if(4&ar[14503])r=0,g=133;else{i=0|ar[14398];e:do{if(i){for(f=58016;!((A=0|ar[f>>2])>>>0<=i>>>0&&(A+(0|ar[(h=f+4|0)>>2])|0)>>>0>i>>>0);){if(!(A=0|ar[f+8>>2])){g=118;break e}f=A}if((r=t-o&n)>>>0<2147483647)if((0|(A=0|yb(0|r)))==((0|ar[f>>2])+(0|ar[h>>2])|0)){if(-1!=(0|A)){o=r,t=A,g=135;break A}}else f=A,g=126;else r=0}else g=118}while(0);do{if(118==(0|g))if(-1!=(0|(i=0|yb(0)))&&(r=i,k=(r=(0==((k=(d=0|ar[14511])+-1|0)&r|0)?0:(k+r&0-d)-r|0)+l|0)+(d=0|ar[14500])|0,b>>>0>>0&r>>>0<2147483647)){if(0|(h=0|ar[14502])&&k>>>0<=d>>>0|h>>>0>>0){r=0;break}if((0|(A=0|yb(0|r)))==(0|i)){o=r,t=i,g=135;break A}f=A,g=126}else r=0}while(0);do{if(126==(0|g)){if(i=0-r|0,!(r>>>0>>0&r>>>0<2147483647&-1!=(0|f))){if(-1==(0|f)){r=0;break}o=r,t=f,g=135;break A}if(2147483647<=(A=c-r+(A=0|ar[14512])&0-A)>>>0){o=r,t=f,g=135;break A}if(-1==(0|yb(0|A))){yb(0|i),r=0;break}o=A+r|0,t=f,g=135;break A}}while(0);ar[14503]=4|ar[14503],g=133}}while(0);if(133==(0|g)&&l>>>0<2147483647&&!(-1==(0|(m=0|yb(0|l)))|1^(v=(b+40|0)>>>0<(w=(h=0|yb(0))-m|0)>>>0)|m>>>0>>0&-1!=(0|m)&-1!=(0|h)^1)&&(o=v?w:r,t=m,g=135),135==(0|g)){r=(0|ar[14500])+o|0,(ar[14500]=r)>>>0>(0|ar[14501])>>>0&&(ar[14501]=r),c=0|ar[14398];do{if(c){for(r=58016;;){if((0|t)==((A=0|ar[r>>2])+(f=0|ar[(i=r+4|0)>>2])|0)){g=145;break}if(!(n=0|ar[r+8>>2]))break;r=n}if(145==(0|g)&&0==(8&ar[r+12>>2]|0)&&c>>>0>>0&A>>>0<=c>>>0){ar[i>>2]=f+o,g=c+(Z=0==(7&(Z=c+8|0)|0)?0:0-Z&7)|0,Z=(0|ar[14395])+(o-Z)|0,ar[14398]=g,ar[14395]=Z,ar[g+4>>2]=1|Z,ar[g+Z+4>>2]=40,ar[14399]=ar[14514];break}for(t>>>0<(0|ar[14396])>>>0&&(ar[14396]=t),i=t+o|0,r=58016;;){if((0|ar[r>>2])==(0|i)){g=153;break}if(!(A=0|ar[r+8>>2]))break;r=A}if(153==(0|g)&&0==(8&ar[r+12>>2]|0)){ar[r>>2]=t,ar[(u=r+4|0)>>2]=(0|ar[u>>2])+o,l=(u=t+(0==(7&(u=t+8|0)|0)?0:0-u&7)|0)+b|0,a=(r=i+(0==(7&(r=i+8|0)|0)?0:0-r&7)|0)-u-b|0,ar[u+4>>2]=3|b;do{if((0|r)!=(0|c)){if((0|r)==(0|ar[14397])){Z=(0|ar[14394])+a|0,ar[14394]=Z,ar[14397]=l,ar[l+4>>2]=1|Z,ar[l+Z>>2]=Z;break}if(1==(3&(A=0|ar[r+4>>2])|0)){o=-8&A,f=A>>>3;A:do{if(A>>>0<256){if(A=0|ar[r+8>>2],(0|(i=0|ar[r+12>>2]))==(0|A)){ar[14392]=ar[14392]&~(1<>2]=i,ar[i+8>>2]=A;break}t=0|ar[r+24>>2],A=0|ar[r+12>>2];do{if((0|A)==(0|r)){if(!(A=0|ar[(i=(f=r+16|0)+4|0)>>2])){if(!(A=0|ar[f>>2])){A=0;break}i=f}for(;;)if(0|(n=0|ar[(f=A+20|0)>>2]))A=n,i=f;else{if(!(n=0|ar[(f=A+16|0)>>2]))break;A=n,i=f}ar[i>>2]=0}else Z=0|ar[r+8>>2],ar[Z+12>>2]=A,ar[A+8>>2]=Z}while(0);if(!t)break;f=57872+((i=0|ar[r+28>>2])<<2)|0;do{if((0|r)==(0|ar[f>>2])){if(0|(ar[f>>2]=A))break;ar[14393]=ar[14393]&~(1<>2])!=(0|r)&1)<<2)>>2]=A))break A}while(0);if(ar[A+24>>2]=t,0|(f=0|ar[(i=r+16|0)>>2])&&(ar[A+16>>2]=f,ar[f+24>>2]=A),!(i=0|ar[i+4>>2]))break;ar[A+20>>2]=i,ar[i+24>>2]=A}while(0);r=r+o|0,n=o+a|0}else n=a;if(ar[(r=r+4|0)>>2]=-2&ar[r>>2],ar[l+4>>2]=1|n,r=(ar[l+n>>2]=n)>>>3,n>>>0<256){i=57608+(r<<1<<2)|0,(A=0|ar[14392])&(r=1<>2]:(ar[14392]=A|r,A=(r=i)+8|0),ar[A>>2]=l,ar[r+12>>2]=l,ar[l+8>>2]=r,ar[l+12>>2]=i;break}r=n>>>8;do{if(r){if(16777215>>0){r=31;break}r=n>>>((r=14-((m=((Z=r<<(g=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|g|(r=((Z<<=m)+245760|0)>>>16&2))+(Z<>>15)|0)+7|0)&1|r<<1}else r=0}while(0);if(f=57872+(r<<2)|0,ar[l+28>>2]=r,ar[(A=l+16|0)+4>>2]=0,!((A=(ar[A>>2]=0)|ar[14393])&(i=1<>2]=l,ar[l+24>>2]=f,ar[l+12>>2]=l,ar[l+8>>2]=l;break}for(A=n<<(31==(0|r)?0:25-(r>>>1)|0),i=0|ar[f>>2];;){if((-8&ar[i+4>>2]|0)==(0|n)){g=194;break}if(!(r=0|ar[(f=i+16+(A>>>31<<2)|0)>>2])){g=193;break}A<<=1,i=r}if(193==(0|g)){ar[f>>2]=l,ar[l+24>>2]=i,ar[l+12>>2]=l,ar[l+8>>2]=l;break}if(194==(0|g)){Z=0|ar[(g=i+8|0)>>2],ar[Z+12>>2]=l,ar[g>>2]=l,ar[l+8>>2]=Z,ar[l+12>>2]=i,ar[l+24>>2]=0;break}}else Z=(0|ar[14395])+a|0,ar[14395]=Z,ar[14398]=l,ar[l+4>>2]=1|Z}while(0);return ur=e,0|(Z=u+8|0)}for(r=58016;!((A=0|ar[r>>2])>>>0<=c>>>0&&c>>>0<(Z=A+(0|ar[r+4>>2])|0)>>>0);)r=0|ar[r+8>>2];for(r=(A=(A=(n=Z+-47|0)+(0==(7&(A=n+8|0)|0)?0:0-A&7)|0)>>>0<(n=c+16|0)>>>0?c:A)+8|0,g=t+(i=0==(7&(i=t+8|0)|0)?0:0-i&7)|0,i=o+-40-i|0,ar[14398]=g,ar[14395]=i,ar[g+4>>2]=1|i,ar[g+i+4>>2]=40,ar[14399]=ar[14514],ar[(i=A+4|0)>>2]=27,ar[r>>2]=ar[14504],ar[r+4>>2]=ar[14505],ar[r+8>>2]=ar[14506],ar[r+12>>2]=ar[14507],ar[14504]=t,ar[14505]=o,ar[14507]=0,ar[14506]=r,r=A+24|0;ar[(r=(g=r)+4|0)>>2]=7,(g+8|0)>>>0>>0;);if((0|A)!=(0|c)){if(t=A-c|0,ar[i>>2]=-2&ar[i>>2],ar[c+4>>2]=1|t,r=(ar[A>>2]=t)>>>3,t>>>0<256){i=57608+(r<<1<<2)|0,(A=0|ar[14392])&(r=1<>2]:(ar[14392]=A|r,A=(r=i)+8|0),ar[A>>2]=c,ar[r+12>>2]=c,ar[c+8>>2]=r,ar[c+12>>2]=i;break}if(f=57872+((i=(r=t>>>8)?16777215>>0?31:t>>>((i=14-((m=((Z=r<<(g=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|g|(i=((Z<<=m)+245760|0)>>>16&2))+(Z<>>15)|0)+7|0)&1|i<<1:0)<<2)|0,ar[c+28>>2]=i,ar[c+20>>2]=0,!((r=(ar[n>>2]=0)|ar[14393])&(A=1<>2]=c,ar[c+24>>2]=f,ar[c+12>>2]=c,ar[c+8>>2]=c;break}for(A=t<<(31==(0|i)?0:25-(i>>>1)|0),i=0|ar[f>>2];;){if((-8&ar[i+4>>2]|0)==(0|t)){g=216;break}if(!(r=0|ar[(f=i+16+(A>>>31<<2)|0)>>2])){g=215;break}A<<=1,i=r}if(215==(0|g)){ar[f>>2]=c,ar[c+24>>2]=i,ar[c+12>>2]=c,ar[c+8>>2]=c;break}if(216==(0|g)){Z=0|ar[(g=i+8|0)>>2],ar[Z+12>>2]=c,ar[g>>2]=c,ar[c+8>>2]=Z,ar[c+12>>2]=i,ar[c+24>>2]=0;break}}}else{for(0==(0|(Z=0|ar[14396]))|t>>>0>>0&&(ar[14396]=t),ar[14504]=t,ar[14505]=o,ar[14507]=0,ar[14401]=ar[14510],ar[14400]=-1,r=0;ar[(Z=57608+(r<<1<<2)|0)+12>>2]=Z,ar[Z+8>>2]=Z,32!=(0|(r=r+1|0)););g=t+(Z=0==(7&(Z=t+8|0)|0)?0:0-Z&7)|0,Z=o+-40-Z|0,ar[14398]=g,ar[14395]=Z,ar[g+4>>2]=1|Z,ar[g+Z+4>>2]=40,ar[14399]=ar[14514]}}while(0);if(b>>>0<(r=0|ar[14395])>>>0)return m=r-b|0,ar[14395]=m,g=(Z=0|ar[14398])+b|0,ar[14398]=g,ar[g+4>>2]=1|m,ar[Z+4>>2]=3|b,ur=e,0|(Z=Z+8|0)}return ar[(Z=10364)>>2]=12,ur=e,(Z=0)|Z}function Bc(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0;if(A|=0){r=A+-8|0,f=0|ar[14396],a=r+(e=-8&(A=0|ar[A+-4>>2]))|0;do{if(1&A)t=o=r;else{if(i=0|ar[r>>2],!(3&A))return;if(n=i+e|0,(t=r+(0-i)|0)>>>0>>0)return;if((0|t)==(0|ar[14397])){if(3==(3&(e=0|ar[(A=a+4|0)>>2])|0))return ar[14394]=n,ar[A>>2]=-2&e,ar[t+4>>2]=1|n,void(ar[t+n>>2]=n);o=t,e=n;break}if(r=i>>>3,i>>>0<256){if(A=0|ar[t+8>>2],(0|(e=0|ar[t+12>>2]))==(0|A)){ar[14392]=ar[14392]&~(1<>2]=e,ar[e+8>>2]=A,o=t,e=n;break}f=0|ar[t+24>>2],A=0|ar[t+12>>2];do{if((0|A)==(0|t)){if(!(A=0|ar[(e=(r=t+16|0)+4|0)>>2])){if(!(A=0|ar[r>>2])){A=0;break}e=r}for(;;)if(0|(i=0|ar[(r=A+20|0)>>2]))A=i,e=r;else{if(!(i=0|ar[(r=A+16|0)>>2]))break;A=i,e=r}ar[e>>2]=0}else o=0|ar[t+8>>2],ar[o+12>>2]=A,ar[A+8>>2]=o}while(0);if(f){if(e=0|ar[t+28>>2],(0|t)==(0|ar[(r=57872+(e<<2)|0)>>2])){if(!(ar[r>>2]=A)){ar[14393]=ar[14393]&~(1<>2])!=(0|t)&1)<<2)>>2]=A)){o=t,e=n;break}ar[A+24>>2]=f,0|(r=0|ar[(e=t+16|0)>>2])&&(ar[A+16>>2]=r,ar[r+24>>2]=A),e=(o=((e=0|ar[e+4>>2])&&(ar[A+20>>2]=e,ar[e+24>>2]=A),t),n)}else o=t,e=n}}while(0);if(!(a>>>0<=t>>>0)&&1&(i=0|ar[(A=a+4|0)>>2])){if(2&i)ar[A>>2]=-2&i,ar[o+4>>2]=1|e,f=ar[t+e>>2]=e;else{if(A=0|ar[14397],(0|a)==(0|ar[14398])){if(a=(0|ar[14395])+e|0,ar[14395]=a,ar[14398]=o,ar[o+4>>2]=1|a,(0|o)!=(0|A))return;return ar[14397]=0,void(ar[14394]=0)}if((0|a)==(0|A))return a=(0|ar[14394])+e|0,ar[14394]=a,ar[14397]=t,ar[o+4>>2]=1|a,void(ar[t+a>>2]=a);f=(-8&i)+e|0,r=i>>>3;do{if(i>>>0<256){if(e=0|ar[a+8>>2],(0|(A=0|ar[a+12>>2]))==(0|e)){ar[14392]=ar[14392]&~(1<>2]=A,ar[A+8>>2]=e;break}n=0|ar[a+24>>2],A=0|ar[a+12>>2];do{if((0|A)==(0|a)){if(!(A=0|ar[(e=(r=a+16|0)+4|0)>>2])){if(!(A=0|ar[r>>2])){r=0;break}e=r}for(;;)if(0|(i=0|ar[(r=A+20|0)>>2]))A=i,e=r;else{if(!(i=0|ar[(r=A+16|0)>>2]))break;A=i,e=r}ar[e>>2]=0,r=A}else r=0|ar[a+8>>2],ar[r+12>>2]=A,ar[A+8>>2]=r,r=A}while(0);if(0|n){if(A=0|ar[a+28>>2],(0|a)==(0|ar[(e=57872+(A<<2)|0)>>2])){if(!(ar[e>>2]=r)){ar[14393]=ar[14393]&~(1<>2])!=(0|a)&1)<<2)>>2]=r))break;ar[r+24>>2]=n,0|(e=0|ar[(A=a+16|0)>>2])&&(ar[r+16>>2]=e,ar[e+24>>2]=r),0|(A=0|ar[A+4>>2])&&(ar[r+20>>2]=A,ar[A+24>>2]=r)}}while(0);if(ar[o+4>>2]=1|f,ar[t+f>>2]=f,(0|o)==(0|ar[14397]))return void(ar[14394]=f)}if(A=f>>>3,f>>>0<256)return r=57608+(A<<1<<2)|0,(e=0|ar[14392])&(A=1<>2]:(ar[14392]=e|A,e=(A=r)+8|0),ar[e>>2]=o,ar[A+12>>2]=o,ar[o+8>>2]=A,void(ar[o+12>>2]=r);i=57872+((A=(A=f>>>8)?16777215>>0?31:f>>>((A=14-((n=((a=A<<(t=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|t|(A=((a<<=n)+245760|0)>>>16&2))+(a<>>15)|0)+7|0)&1|A<<1:0)<<2)|0,ar[o+28>>2]=A,ar[o+20>>2]=0,e=(ar[o+16>>2]=0)|ar[14393],r=1<>>1)|0),r=0|ar[i>>2];;){if((-8&ar[r+4>>2]|0)==(0|f)){A=73;break}if(!(A=0|ar[(i=r+16+(e>>>31<<2)|0)>>2])){A=72;break}e<<=1,r=A}if(72==(0|A)){ar[i>>2]=o,ar[o+24>>2]=r,ar[o+12>>2]=o,ar[o+8>>2]=o;break}if(73==(0|A)){a=0|ar[(t=r+8|0)>>2],ar[a+12>>2]=o,ar[t>>2]=o,ar[o+8>>2]=a,ar[o+12>>2]=r,ar[o+24>>2]=0;break}}else ar[14393]=e|r,ar[i>>2]=o,ar[o+24>>2]=i,ar[o+12>>2]=o,ar[o+8>>2]=o}while(0);if(a=(0|ar[14400])-1|0,!(ar[14400]=a)){for(A=58024;A=0|ar[A>>2];)A=A+8|0;ar[14400]=-1}}}}function Ec(A,e){e|=0;var r=0,i=0;return(A|=0)?4294967231>>0?(ar[(e=10364)>>2]=12,(e=0)|e):0|(r=0|function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(l=0|ar[(u=4+(A|=0)|0)>>2],r=A+(f=-8&l)|0,!(3&l))return!(e>>>0<256)&&(e+4|0)>>>0<=f>>>0&&(f-e|0)>>>0<=ar[14512]<<1>>>0?0|A:(A=0)|A;if(e>>>0<=f>>>0)return(f=f-e|0)>>>0<=15||(c=A+e|0,ar[u>>2]=1&l|e|2,ar[c+4>>2]=3|f,ar[(u=c+f+4|0)>>2]=1|ar[u>>2],Xc(c,f)),0|A;if((0|r)==(0|ar[14398]))return c=(0|ar[14395])+f|0,f=c-e|0,n=A+e|0,c>>>0<=e>>>0?(A=0)|A:(ar[u>>2]=1&l|e|2,ar[n+4>>2]=1|f,ar[14398]=n,ar[14395]=f,0|A);if((0|r)==(0|ar[14397]))return(t=(0|ar[14394])+f|0)>>>0>>0?(A=0)|A:(n=1&l,15<(f=t-e|0)>>>0?(c=(l=A+e|0)+f|0,ar[u>>2]=n|e|2,ar[l+4>>2]=1|f,ar[c>>2]=f,ar[(n=c+4|0)>>2]=-2&ar[n>>2],n=l):(ar[u>>2]=n|t|2,ar[(n=A+t+4|0)>>2]=1|ar[n>>2],f=n=0),ar[14394]=f,ar[14397]=n,0|A);if(2&(n=0|ar[4+r>>2])|0)return(A=0)|A;if((i=(-8&n)+f|0)>>>0>>0)return(A=0)|A;c=i-e|0,t=n>>>3;do{if(n>>>0<256){if(n=0|ar[8+r>>2],(0|(f=0|ar[12+r>>2]))==(0|n)){ar[14392]=ar[14392]&~(1<>2]=f,ar[f+8>>2]=n;break}a=0|ar[24+r>>2],f=0|ar[12+r>>2];do{if((0|f)==(0|r)){if(f=0|ar[(n=(t=16+r|0)+4|0)>>2])o=n;else{if(!(f=0|ar[t>>2])){t=0;break}o=t}for(;;)if(0|(n=0|ar[(t=f+20|0)>>2]))f=n,o=t;else{if(!(t=0|ar[(n=f+16|0)>>2]))break;f=t,o=n}ar[o>>2]=0,t=f}else t=0|ar[8+r>>2],ar[t+12>>2]=f,ar[f+8>>2]=t,t=f}while(0);if(0|a){if(f=0|ar[28+r>>2],(0|r)==(0|ar[(n=57872+(f<<2)|0)>>2])){if(!(ar[n>>2]=t)){ar[14393]=ar[14393]&~(1<>2])!=(0|r)&1)<<2)>>2]=t))break;ar[t+24>>2]=a,0|(n=0|ar[(f=16+r|0)>>2])&&(ar[t+16>>2]=n,ar[n+24>>2]=t),0|(f=0|ar[f+4>>2])&&(ar[t+20>>2]=f,ar[f+24>>2]=t)}}while(0);return f=1&l,c>>>0<16?(ar[u>>2]=i|f|2,ar[(u=A+i+4|0)>>2]=1|ar[u>>2]):(l=A+e|0,ar[u>>2]=f|e|2,ar[l+4>>2]=3|c,ar[(u=l+c+4|0)>>2]=1|ar[u>>2],Xc(l,c)),0|A}(A+-8|0,e>>>0<11?16:e+11&-8))?0|(e=r+8|0):(r=0|yc(e))?(hb(0|r,0|A,0|((i=(-8&(i=0|ar[A+-4>>2]))-(0==(3&i|0)?8:4)|0)>>>0>>0?i:e)),Bc(A),0|(e=r)):(e=0)|e:0|(e=0|yc(e))}function Xc(A,e){var r=0,i=0,f=0,n=0,t=0,o=0,a=0;a=(A|=0)+(e|=0)|0,r=0|ar[A+4>>2];do{if(1&r)o=A,r=e;else{if(i=0|ar[A>>2],!(3&r))return;if(t=i+e|0,(0|(n=A+(0-i)|0))==(0|ar[14397])){if(3==(3&(r=0|ar[(A=a+4|0)>>2])|0))return ar[14394]=t,ar[A>>2]=-2&r,ar[n+4>>2]=1|t,void(ar[n+t>>2]=t);o=n,r=t;break}if(e=i>>>3,i>>>0<256){if(A=0|ar[n+8>>2],(0|(r=0|ar[n+12>>2]))==(0|A)){ar[14392]=ar[14392]&~(1<>2]=r,ar[r+8>>2]=A,o=n,r=t;break}f=0|ar[n+24>>2],A=0|ar[n+12>>2];do{if((0|A)==(0|n)){if(!(A=0|ar[(r=(e=n+16|0)+4|0)>>2])){if(!(A=0|ar[e>>2])){A=0;break}r=e}for(;;)if(0|(i=0|ar[(e=A+20|0)>>2]))A=i,r=e;else{if(!(i=0|ar[(e=A+16|0)>>2]))break;A=i,r=e}ar[r>>2]=0}else o=0|ar[n+8>>2],ar[o+12>>2]=A,ar[A+8>>2]=o}while(0);if(f){if(r=0|ar[n+28>>2],(0|n)==(0|ar[(e=57872+(r<<2)|0)>>2])){if(!(ar[e>>2]=A)){ar[14393]=ar[14393]&~(1<>2])!=(0|n)&1)<<2)>>2]=A)){o=n,r=t;break}ar[A+24>>2]=f,0|(e=0|ar[(r=n+16|0)>>2])&&(ar[A+16>>2]=e,ar[e+24>>2]=A),r=(o=((r=0|ar[r+4>>2])&&(ar[A+20>>2]=r,ar[r+24>>2]=A),n),t)}else o=n,r=t}}while(0);if(2&(i=0|ar[(A=a+4|0)>>2]))ar[A>>2]=-2&i,ar[o+4>>2]=1|r,ar[o+r>>2]=r;else{if(A=0|ar[14397],(0|a)==(0|ar[14398]))return a=(0|ar[14395])+r|0,ar[14395]=a,ar[14398]=o,ar[o+4>>2]=1|a,(0|o)==(0|A)&&(ar[14397]=0,void(ar[14394]=0));if((0|a)==(0|A))return a=(0|ar[14394])+r|0,ar[14394]=a,ar[14397]=o,ar[o+4>>2]=1|a,void(ar[o+a>>2]=a);n=(-8&i)+r|0,e=i>>>3;do{if(i>>>0<256){if(r=0|ar[a+8>>2],(0|(A=0|ar[a+12>>2]))==(0|r)){ar[14392]=ar[14392]&~(1<>2]=A,ar[A+8>>2]=r;break}f=0|ar[a+24>>2],A=0|ar[a+12>>2];do{if((0|A)==(0|a)){if(!(A=0|ar[(r=(e=a+16|0)+4|0)>>2])){if(!(A=0|ar[e>>2])){e=0;break}r=e}for(;;)if(0|(i=0|ar[(e=A+20|0)>>2]))A=i,r=e;else{if(!(i=0|ar[(e=A+16|0)>>2]))break;A=i,r=e}ar[r>>2]=0,e=A}else e=0|ar[a+8>>2],ar[e+12>>2]=A,ar[A+8>>2]=e,e=A}while(0);if(0|f){if(A=0|ar[a+28>>2],(0|a)==(0|ar[(r=57872+(A<<2)|0)>>2])){if(!(ar[r>>2]=e)){ar[14393]=ar[14393]&~(1<>2])!=(0|a)&1)<<2)>>2]=e))break;ar[e+24>>2]=f,0|(r=0|ar[(A=a+16|0)>>2])&&(ar[e+16>>2]=r,ar[r+24>>2]=e),0|(A=0|ar[A+4>>2])&&(ar[e+20>>2]=A,ar[A+24>>2]=e)}}while(0);if(ar[o+4>>2]=1|n,ar[o+n>>2]=n,(0|o)==(0|ar[14397]))return void(ar[14394]=n);r=n}if(A=r>>>3,r>>>0<256)return e=57608+(A<<1<<2)|0,(r=0|ar[14392])&(A=1<>2]:(ar[14392]=r|A,r=(A=e)+8|0),ar[r>>2]=o,ar[A+12>>2]=o,ar[o+8>>2]=A,void(ar[o+12>>2]=e);if(f=57872+((A=(A=r>>>8)?16777215>>0?31:r>>>((A=14-((n=((a=A<<(t=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|t|(A=((a<<=n)+245760|0)>>>16&2))+(a<>>15)|0)+7|0)&1|A<<1:0)<<2)|0,ar[o+28>>2]=A,ar[o+20>>2]=0,!((e=(ar[o+16>>2]=0)|ar[14393])&(i=1<>2]=o,ar[o+24>>2]=f,ar[o+12>>2]=o,void(ar[o+8>>2]=o);for(e=r<<(31==(0|A)?0:25-(A>>>1)|0),i=0|ar[f>>2];;){if((-8&ar[i+4>>2]|0)==(0|r)){A=69;break}if(!(A=0|ar[(f=i+16+(e>>>31<<2)|0)>>2])){A=68;break}e<<=1,i=A}return 68==(0|A)?(ar[f>>2]=o,ar[o+24>>2]=i,ar[o+12>>2]=o,void(ar[o+8>>2]=o)):69==(0|A)&&(a=0|ar[(t=i+8|0)>>2],ar[a+12>>2]=o,ar[t>>2]=o,ar[o+8>>2]=a,ar[o+12>>2]=i,void(ar[o+24>>2]=0))}function Wc(A,e){return e|=0,(A|=0)>>>0<9?0|(e=0|yc(e)):0|(e=0|function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0;if((A=16<(A|=0)>>>0?A:16)+-1&A)for(i=16;;){if(!(i>>>0>>0)){A=i;break}i<<=1}if((-64-A|0)>>>0<=e>>>0)return ar[(t=10364)>>2]=12,(t=0)|t;if(!(i=0|yc(12+(n=e>>>0<11?16:e+11&-8)+A|0)))return(t=0)|t;r=i+-8|0;do{if(i&A+-1){if(e=(f=15<((f=(i+A+-1&0-A)-8|0)-(e=r)|0)>>>0?f:f+A|0)-e|0,o=0|ar[(A=i+-4|0)>>2],i=(-8&o)-e|0,3&o){ar[(o=f+4|0)>>2]=i|1&ar[o>>2]|2,ar[(i=f+i+4|0)>>2]=1|ar[i>>2],ar[A>>2]=e|1&ar[A>>2]|2,ar[o>>2]=1|ar[o>>2],Xc(r,e),e=A=f;break}ar[f>>2]=(0|ar[r>>2])+e,ar[f+4>>2]=i,e=A=f;break}e=A=r}while(0);3&(i=0|ar[(A=A+4|0)>>2])|0&&(t=-8&i)>>>0>(n+16|0)>>>0&&(o=t-n|0,t=e+n|0,ar[A>>2]=n|1&i|2,ar[t+4>>2]=3|o,ar[(n=t+o+4|0)>>2]=1|ar[n>>2],Xc(t,o));return 0|(o=e+8|0)}(A,e))}function Ic(A){return 4294963200<(A|=0)>>>0&&(ar[10364>>2]=0-A,A=-1),0|A}function Cc(){return 10364}function Gc(A,e,r){e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0;c=ur=(o=ur)+31&-32,ur=ur+48|0,t=c+16|0,c=(l=c)+32|0,a=0|ar[(f=(A|=0)+28|0)>>2],ar[c>>2]=a,a=(0|ar[(n=A+20|0)>>2])-a|0,ar[c+4>>2]=a,ar[c+8>>2]=e,a=a+(ar[c+12>>2]=r)|0,i=A+60|0,ar[l>>2]=ar[i>>2],ar[l+4>>2]=c,ar[l+8>>2]=2,l=0|Ic(0|_(146,0|l));A:do{if((0|a)!=(0|l)){for(e=2;!((0|l)<0);)if(a=a-l|0,e=((b=(s=0|ar[c+4>>2])>>>0>>0)<<31>>31)+e|0,s=l-(b?s:0)|0,ar[(c=b?c+8|0:c)>>2]=(0|ar[c>>2])+s,ar[(b=c+4|0)>>2]=(0|ar[b>>2])-s,ar[t>>2]=ar[i>>2],ar[4+t>>2]=c,ar[8+t>>2]=e,(0|a)==(0|(l=0|Ic(0|_(146,0|t))))){u=3;break A}ar[A+16>>2]=0,ar[f>>2]=0,ar[n>>2]=0,ar[A>>2]=32|ar[A>>2],r=2==(0|e)?0:r-(0|ar[c+4>>2])|0}else u=3}while(0);return 3==(0|u)&&(s=0|ar[A+44>>2],ar[A+16>>2]=s+(0|ar[A+48>>2]),ar[f>>2]=s,ar[n>>2]=s),ur=o,0|r}function Vc(A){var e,r=0,i=0;e=A|=0;A:do{if(3&e)for(r=e;;){if(!(0|tr[A>>0])){A=r;break A}if(!(3&(r=A=A+1|0))){i=4;break}}else i=4}while(0);if(4==(0|i)){for(;!((-2139062144&(r=0|ar[A>>2])^-2139062144)&r+-16843009);)A=A+4|0;if((255&r)<<24>>24)for(;0!=(0|tr[(A=A+1|0)>>0]););}return A-e|0}function Fc(A,e){e|=0;var r=0,i=0;if(r=0|tr[(A|=0)>>0],i=0|tr[e>>0],r<<24>>24==0||r<<24>>24!=i<<24>>24)A=i;else{for(;e=e+1|0,r=0|tr[(A=A+1|0)>>0],i=0|tr[e>>0],r<<24>>24!=0&&r<<24>>24==i<<24>>24;);A=i}return(255&r)-(255&A)|0}function Rc(A,e,r){A|=0;var i=0,f=0,n=0,t=0;n=255&(e|=0),i=0!=(0|(r|=0));A:do{if(i&0!=(3&A|0))for(f=255&e;;){if((0|tr[A>>0])==f<<24>>24){t=6;break A}if(!((i=0!=(0|(r=r+-1|0)))&0!=(3&(A=A+1|0)|0))){t=5;break}}else t=5}while(0);5==(0|t)&&(i?t=6:r=0);A:do{if(6==(0|t)&&(f=255&e,(0|tr[A>>0])!=f<<24>>24)){i=0|br(n,16843009);e:do{if(3>>0){for(;!((-2139062144&(n=ar[A>>2]^i)^-2139062144)&n+-16843009|0);)if(A=A+4|0,(r=r+-4|0)>>>0<=3){t=11;break e}}else t=11}while(0);if(11==(0|t)&&!r){r=0;break}for(;;){if((0|tr[A>>0])==f<<24>>24)break A;if(A=A+1|0,!(r=r+-1|0)){r=0;break}}}}while(0);return 0|(0|r?A:0)}function Nc(A,e){A|=0;var r=0,i=0,f=0;i=255&(e|=0);A:do{if(i){if(3&A){r=255&e;do{if((f=0|tr[A>>0])<<24>>24==0||f<<24>>24==r<<24>>24)break A;A=A+1|0}while(0!=(3&A|0))}i=0|br(i,16843009),r=0|ar[A>>2];e:do{if(!((-2139062144&r^-2139062144)&r+-16843009))do{if((-2139062144&(f=r^i)^-2139062144)&f+-16843009|0)break e;r=0|ar[(A=A+4|0)>>2]}while(!((-2139062144&r^-2139062144)&r+-16843009|0))}while(0);for(r=255&e;(f=0|tr[A>>0])<<24>>24!=0&&f<<24>>24!=r<<24>>24;)A=A+1|0}else A=A+(0|Vc(A))|0}while(0);return 0|A}function _c(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n;return n=ur=(f=ur)+31&-32,ur=ur+16|0,ar[n>>2]=i,i=0|Yc(A,e,r,n),ur=f,0|i}function Yc(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0;for(l=ur=(n=ur)+31&-32,ur=ur+128|0,t=l+124|0,a=10804,f=(o=l)+124|0;ar[o>>2]=ar[a>>2],a=a+4|0,(0|(o=o+4|0))<(0|f););return 2147483646<(e+-1|0)>>>0?e?(ar[(e=10364)>>2]=75,e=-1):(A=t,e=1,c=4):c=4,4==(0|c)&&(c=(c=-2-A|0)>>>0>>0?c:e,ar[l+48>>2]=c,ar[(t=l+20|0)>>2]=A,e=(ar[l+44>>2]=A)+c|0,ar[(A=l+16|0)>>2]=e,ar[l+28>>2]=e,e=0|Qc(l,r,i),c&&(l=0|ar[t>>2],tr[l+(((0|l)==(0|ar[A>>2]))<<31>>31)>>0]=0)),ur=n,0|e}function Qc(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;for(k=ur=(t=ur)+31&-32,ur=ur+224|0,i=k+120|0,f=k+80|0,k=(n=k)+136|0,a=(o=f)+40|0;(0|(o=o+4|(ar[o>>2]=0)))<(0|a););return ar[i>>2]=ar[r>>2],r=(0|Dc(0,e,i,n,f))<0?-1:(d=-1<(0|ar[A+76>>2])?0|Jc():0,s=32&(r=0|ar[A>>2]),(0|tr[A+74>>0])<1&&(ar[A>>2]=-33&r),0|ar[(o=A+48|0)>>2]?r=0|Dc(A,e,i,n,f):(c=0|ar[(a=A+44|0)>>2],ar[a>>2]=k,ar[(l=A+28|0)>>2]=k,ar[(u=A+20|0)>>2]=k,ar[o>>2]=80,ar[(b=A+16|0)>>2]=k+80,r=0|Dc(A,e,i,n,f),c&&(xb[63&ar[A+36>>2]](A,0,0),r=0==(0|ar[u>>2])?-1:r,ar[a>>2]=c,ar[o>>2]=0,ar[b>>2]=0,ar[l>>2]=0,ar[u>>2]=0)),o=0|ar[A>>2],ar[A>>2]=o|s,0|d&&Mc(),0==(32&o|0)?r:-1),ur=t,0|r}function Dc(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0;W=ur=(b=ur)+31&-32,ur=ur+64|0,c=W+16|0,X=(l=W)+24|0,u=W+8|0,W=W+20|0,ar[c>>2]=e,n=0!=(0|A),o=t=X+40|0,X=X+39|0,a=4+u|0,v=s=d=0;A:for(;;){do{if(-1<(0|s)){if((2147483647-s|0)<(0|d)){ar[(s=10364)>>2]=75,s=-1;break}s=d+s|0;break}}while(0);if(!((d=0|tr[e>>0])<<24>>24)){E=87;break}k=e;e:for(;;){switch(d<<24>>24){case 37:d=k,E=9;break e;case 0:d=k;break e}B=k+1|0,ar[c>>2]=B,d=0|tr[B>>0],k=B}e:do{if(9==(0|E))for(;;){if(37!=((E=0)|tr[k+1>>0]))break e;if(d=d+1|0,k=k+2|0,ar[c>>2]=k,37!=(0|tr[k>>0]))break;E=9}}while(0);if(d=d-e|0,n&&Tc(A,e,d),0|d)e=k;else{(d=(0|tr[(h=k+1|0)>>0])-48|0)>>>0<10?(y=(B=36==(0|tr[k+2>>0]))?d:-1,v=B?1:v,h=B?k+3|0:h):y=-1,ar[c>>2]=h,k=((d=0|tr[h>>0])<<24>>24)-32|0;e:do{if(k>>>0<32)for(w=0,m=d;;){if(!(75913&(d=1<>2]=h,32<=(k=((d=0|tr[h>>0])<<24>>24)-32|0)>>>0)break;m=d}else w=0}while(0);if(d<<24>>24==42){if((d=(0|tr[(k=h+1|0)>>0])-48|0)>>>0<10&&36==(0|tr[h+2>>0]))ar[f+(d<<2)>>2]=10,d=0|ar[i+((0|tr[k>>0])-48<<3)>>2],v=1,h=h+3|0;else{if(0|v){s=-1;break}h=(v=n?(v=3+(0|ar[r>>2])&-4,d=0|ar[v>>2],ar[r>>2]=v+4,0):d=0,k)}ar[c>>2]=h,d=(B=(0|d)<0)?0-d|0:d,w=B?8192|w:w}else{if((0|(d=0|Uc(c)))<0){s=-1;break}h=0|ar[c>>2]}do{if(46==(0|tr[h>>0])){if(42!=(0|tr[h+1>>0])){ar[c>>2]=h+1,k=0|Uc(c),h=0|ar[c>>2];break}if((k=(0|tr[(m=h+2|0)>>0])-48|0)>>>0<10&&36==(0|tr[h+3>>0])){ar[f+(k<<2)>>2]=10,k=0|ar[i+((0|tr[m>>0])-48<<3)>>2],h=h+4|0,ar[c>>2]=h;break}if(0|v){s=-1;break A}n?(B=3+(0|ar[r>>2])&-4,k=0|ar[B>>2],ar[r>>2]=B+4):k=0,h=ar[c>>2]=m}else k=-1}while(0);for(p=0;;){if(57<((0|tr[h>>0])-65|0)>>>0){s=-1;break A}if(B=h+1|0,ar[c>>2]=B,!(((g=255&(m=0|tr[(0|tr[h>>0])-65+(50202+(58*p|0))>>0]))+-1|0)>>>0<8))break;p=g,h=B}if(!(m<<24>>24)){s=-1;break}Z=-1<(0|y);do{if(m<<24>>24==19){if(Z){s=-1;break A}E=49}else{if(Z){ar[f+(y<<2)>>2]=g,y=0|ar[(Z=i+(y<<3)|0)+4>>2],ar[(E=l)>>2]=ar[Z>>2],ar[E+4>>2]=y,E=49;break}if(!n){s=0;break A}Sc(l,g,r)}}while(0);if(49!=(0|E)||(E=0,n)){h=0!=(0|p)&3==(15&(h=0|tr[h>>0])|0)?-33&h:h,Z=-65537&w,y=0==(8192&w|0)?w:Z;e:do{switch(0|h){case 110:switch((255&p)<<24>>24){case 0:case 1:ar[ar[l>>2]>>2]=s,d=0,e=B;continue A;case 2:d=0|ar[l>>2],ar[d>>2]=s,ar[d+4>>2]=((0|s)<0)<<31>>31,d=0,e=B;continue A;case 3:or[ar[l>>2]>>1]=s,d=0,e=B;continue A;case 4:tr[ar[l>>2]>>0]=s,d=0,e=B;continue A;case 6:ar[ar[l>>2]>>2]=s,d=0,e=B;continue A;case 7:d=0|ar[l>>2],ar[d>>2]=s,ar[d+4>>2]=((0|s)<0)<<31>>31,d=0,e=B;continue A;default:d=0,e=B;continue A}case 112:h=120,k=8>>0?k:8,e=8|y,E=61;break;case 88:case 120:e=y,E=61;break;case 111:m=50666,k=(w=0)==(8&y|0)|(0|(Z=o-(g=0|zc(e=0|ar[(h=l)>>2],h=0|ar[h+4>>2],t))|0))<(0|k)?k:Z+1|0,Z=y,E=67;break;case 105:case 100:if(e=0|ar[(h=l)>>2],(0|(h=0|ar[h+4>>2]))<0){e=0|ob(0,0,0|e,0|h),h=D,ar[(w=l)>>2]=e,ar[w+4>>2]=h,w=1,m=50666,E=66;break e}w=0!=(2049&y|0)&1,m=0==(2048&y|0)?0==(1&y|0)?50666:50668:50667,E=66;break e;case 117:m=50666,e=(w=0)|ar[(h=l)>>2],h=0|ar[h+4>>2],E=66;break;case 99:tr[X>>0]=ar[l>>2],e=X,w=0,m=50666,g=t,h=1,k=Z;break;case 109:h=0|Hc(0|ar[(h=10364)>>2]),E=71;break;case 115:h=0|(h=0|ar[l>>2])?h:50676,E=71;break;case 67:ar[u>>2]=ar[l>>2],ar[a>>2]=0,g=-1,h=ar[l>>2]=u,E=75;break;case 83:e=0|ar[l>>2],E=k?(g=k,h=e,75):(xc(A,32,d,0,y),e=0,84);break;case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:d=0|Lc(A,+Q[l>>3],d,k,y,h),e=B;continue A;default:w=0,m=50666,g=t,h=k,k=y}}while(0);e:do{if(61==(0|E))g=0|Oc(p=0|ar[(y=l)>>2],y=0|ar[y+4>>2],t,32&h),w=(m=0==(8&e|0)|0==(0|p)&0==(0|y))?0:2,m=m?50666:50666+(h>>4)|0,Z=e,e=p,h=y,E=67;else if(66==(0|E))g=0|jc(e,h,t),Z=y,E=67;else if(71==(0|E))w=E=0,m=50666,g=(p=0==(0|(y=0|Rc(e=h,0,k))))?h+k|0:y,h=p?k:y-h|0,k=Z;else if(75==(0|E)){for(m=h,k=e=E=0;(w=0|ar[m>>2])&&!((0|(k=0|Pc(W,w)))<0|(g-e|0)>>>0>>0)&&(e=k+e|0)>>>0>>0;)m=m+4|0;if((0|k)<0){s=-1;break A}if(xc(A,32,d,e,y),e)for(w=0;;){if(!(k=0|ar[h>>2])){E=84;break e}if((0|e)<(0|(w=(k=0|Pc(W,k))+w|0))){E=84;break e}if(Tc(A,W,k),e>>>0<=w>>>0){E=84;break}h=h+4|0}else e=0,E=84}}while(0);if(67==(0|E))y=(E=0)!=(0|k)|(h=0!=(0|e)|0!=(0|h)),h=o-g+(1&(1^h))|0,e=y?g:t,g=t,h=!y||(0|h)<(0|k)?k:h,k=-1<(0|k)?-65537&Z:Z;else if(84==(0|E)){E=0,xc(A,32,d,e,8192^y),d=(0|e)<(0|d)?d:e,e=B;continue}xc(A,32,d=(0|d)<(0|(y=(Z=(0|h)<(0|(p=g-e|0))?p:h)+w|0))?y:d,y,k),Tc(A,m,w),xc(A,48,d,y,65536^k),xc(A,48,Z,p,0),Tc(A,e,p),xc(A,32,d,y,8192^k),e=B}else d=0,e=B}}A:do{if(87==(0|E)&&!A)if(v){for(s=1;e=0|ar[f+(s<<2)>>2];)if(Sc(i+(s<<3)|0,e,r),10<=(0|(s=s+1|0))){s=1;break A}for(;;){if(0|ar[f+(s<<2)>>2]){s=-1;break A}if(10<=(0|(s=s+1|0))){s=1;break}}}else s=0}while(0);return ur=b,0|s}function Jc(){return 0}function Mc(){0}function Tc(A,e,r){e|=0,r|=0,32&ar[(A|=0)>>2]||el(e,r,A)}function Uc(A){var e=0,r=0,i=0;if(r=0|ar[(A|=0)>>2],(i=(0|tr[r>>0])-48|0)>>>0<10)for(e=0;e=i+(10*e|0)|0,r=r+1|0,ar[A>>2]=r,(i=(0|tr[r>>0])-48|0)>>>0<10;);else e=0;return 0|e}function Sc(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,n=0;A:do{if(e>>>0<=20){switch(0|e){case 9:i=3+(0|ar[r>>2])&-4,e=0|ar[i>>2],ar[r>>2]=i+4,ar[A>>2]=e;break A;case 10:i=3+(0|ar[r>>2])&-4,e=0|ar[i>>2],ar[r>>2]=i+4,ar[(i=A)>>2]=e,ar[i+4>>2]=((0|e)<0)<<31>>31;break A;case 11:i=3+(0|ar[r>>2])&-4,e=0|ar[i>>2],ar[r>>2]=i+4,ar[(i=A)>>2]=e,ar[i+4>>2]=0;break A;case 12:i=7+(0|ar[r>>2])&-8,f=0|ar[(e=i)>>2],e=0|ar[e+4>>2],ar[r>>2]=i+8,ar[(i=A)>>2]=f,ar[i+4>>2]=e;break A;case 13:f=3+(0|ar[r>>2])&-4,i=0|ar[f>>2],ar[r>>2]=f+4,i=(65535&i)<<16>>16,ar[(f=A)>>2]=i,ar[f+4>>2]=((0|i)<0)<<31>>31;break A;case 14:f=3+(0|ar[r>>2])&-4,i=0|ar[f>>2],ar[r>>2]=f+4,ar[(f=A)>>2]=65535&i,ar[f+4>>2]=0;break A;case 15:f=3+(0|ar[r>>2])&-4,i=0|ar[f>>2],ar[r>>2]=f+4,i=(255&i)<<24>>24,ar[(f=A)>>2]=i,ar[f+4>>2]=((0|i)<0)<<31>>31;break A;case 16:f=3+(0|ar[r>>2])&-4,i=0|ar[f>>2],ar[r>>2]=f+4,ar[(f=A)>>2]=255&i,ar[f+4>>2]=0;break A;case 17:case 18:f=7+(0|ar[r>>2])&-8,n=+Q[f>>3],ar[r>>2]=f+8,Q[A>>3]=n;break A;default:break A}}}while(0)}function Oc(A,e,r,i){if(r|=0,i|=0,!(0==(0|(A|=0))&0==(0|(e|=0))))for(;tr[(r=r+-1|0)>>0]=0|cr[50714+(15&A)>>0]|i,!(0==(0|(A=0|sb(0|A,0|e,4)))&0==(0|(e=D))););return 0|r}function zc(A,e,r){if(r|=0,!(0==(0|(A|=0))&0==(0|(e|=0))))for(;tr[(r=r+-1|0)>>0]=7&A|48,!(0==(0|(A=0|sb(0|A,0|e,3)))&0==(0|(e=D))););return 0|r}function jc(A,e,r){r|=0;var i=0;if(0<(e|=0)>>>0|0==(0|e)&4294967295<(A|=0)>>>0){for(;i=0|ub(0|A,0|e,10,0),tr[(r=r+-1|0)>>0]=255&i|48,A=0|lb(0|(i=A),0|e,10,0),9>>0|9==(0|e)&4294967295>>0;)e=D;e=A}else e=A;if(e)for(;tr[(r=r+-1|0)>>0]=(e>>>0)%10|48,!(e>>>0<10);)e=(e>>>0)/10|0;return 0|r}function Hc(A){return 0|function(A,e){A|=0,e|=0;var r=0,i=0;i=0;for(;;){if((0|cr[50732+i>>0])==(0|A)){A=2;break}if(87==(0|(r=i+1|0))){r=50820,i=87,A=5;break}i=r}2==(0|A)&&(i?(r=50820,A=5):r=50820);if(5==(0|A))for(;;){for(;r=(A=r)+1|0,0!=(0|tr[A>>0]););if(!(i=i+-1|0))break;A=5}return 0|function(A,e){return 0|function(A,e){A|=0,e=(e|=0)?0|function(A,e,r){e|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;i=1794895138+(0|ar[(A|=0)>>2])|0,t=0|Al(0|ar[A+8>>2],i),f=0|Al(0|ar[A+12>>2],i),n=0|Al(0|ar[A+16>>2],i);A:do{if(t>>>0>>2>>>0&&(b=e-(t<<2)|0,f>>>0>>0&n>>>0>>0)&&0==(3&(n|f)|0)){for(b=f>>>2,u=n>>>2,l=0;;){if(f=0|Al(0|ar[A+((n=(o=(c=l+(a=t>>>1)|0)<<1)+b|0)<<2)>>2],i),!((n=0|Al(0|ar[A+(n+1<<2)>>2],i))>>>0>>0&f>>>0<(e-n|0)>>>0)){f=0;break A}if(0|tr[A+(n+f)>>0]){f=0;break A}if(!(f=0|Fc(r,A+n|0)))break;if(f=(0|f)<0,1==(0|t)){f=0;break A}l=f?l:c,t=f?a:t-a|0}n=0|Al(0|ar[A+((f=o+u|0)<<2)>>2],i),f=(f=0|Al(0|ar[A+(f+1<<2)>>2],i))>>>0>>0&n>>>0<(e-f|0)>>>0&&0==(0|tr[A+(f+n)>>0])?A+f|0:0}else f=0}while(0);return 0|f}(0|ar[e>>2],0|ar[e+4>>2],A):0;return 0|(0|e?e:A)}(A|=0,e|=0)}(r,0|ar[e+20>>2])}(A|=0,0|ar[2622])}function xc(A,e,r,i,f){A|=0,e|=0;var n,t;if(n=ur=(t=ur)+31&-32,ur=ur+256|0,(0|(i|=0))<(0|(r|=0))&0==(73728&(f|=0)|0)){if(vb(0|n,0|e,0|((f=r-i|0)>>>0<256?f:256)),255>>0){for(e=r-i|0;Tc(A,n,256),255<(f=f+-256|0)>>>0;);f=255&e}Tc(A,n,f)}ur=t}function Pc(A,e){return e|=0,0|(A=(A|=0)?0|$c(A,e):0)}function Lc(A,e,r,i,f,n){A|=0,e=+e,r|=0,i|=0,f|=0,n|=0;var t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;l=ur=(t=ur)+31&-32,ur=ur+560|0,c=l+8|0,W=I=(w=l)+524|0,X=(l=l+512|0)+12|(ar[w>>2]=0),Kc(e),y=(0|D)<0?(e=-e,B=1,50683):(B=0!=(2049&f|0)&1,0==(2048&f|0)?0==(1&f|0)?50684:50689:50686),Kc(e),E=2146435072&D;do{if(E>>>0<2146435072|2146435072==(0|E)&!1){if((o=0!=(d=2*qc(e,w)))&&(ar[w>>2]=(0|ar[w>>2])-1),97==(0|(m=32|n))){s=0==(0|(k=32&n))?y:y+9|0,b=2|B,o=12-i|0;do{if(!(11>>0|0==(0|o))){for(e=8;e*=16,0!=(0|(o=o+-1|0)););if(45==(0|tr[s>>0])){e=-(e+(-d-e));break}e=d+e-e;break}e=d}while(0);for((0|(o=0|jc(o=(0|(a=0|ar[w>>2]))<0?0-a|0:a,((0|o)<0)<<31>>31,X)))==(0|X)&&(tr[(o=l+11|0)>>0]=48),tr[o+-1>>0]=43+(a>>31&2),tr[(u=o+-2|0)>>0]=n+15,l=(0|i)<1,c=0==(8&f|0),o=I;E=~~e,a=o+1|0,tr[o>>0]=cr[50714+E>>0]|k,e=16*(e-(0|E)),o=1!=(a-W|0)||c&l&0==e?a:(tr[a>>0]=46,o+2|0),0!=e;);E=o-W|0,xc(A,32,r,o=(W=X-u|0)+b+(X=0!=(0|i)&(E+-2|0)<(0|i)?i+2|0:E)|0,f),Tc(A,s,b),xc(A,48,r,o,65536^f),Tc(A,I,E),xc(A,48,X-E|0,0,0),Tc(A,u,W),xc(A,32,r,o,8192^f);break}for(a=(0|i)<0?6:i,o?(o=(0|ar[w>>2])-28|0,ar[w>>2]=o,e=268435456*d):(e=d,o=0|ar[w>>2]),c=E=(0|o)<0?c:c+288|0;Z=~~e>>>0,ar[c>>2]=Z,c=c+4|0,0!=(e=1e9*(e-(Z>>>0))););if(0<(0|o))for(l=E,b=c;;){if(u=(0|o)<29?o:29,l>>>0<=(o=b+-4|0)>>>0){for(c=0;v=0|ub(0|(g=0|tb(0|(g=0|db(0|ar[o>>2],0,0|u)),0|D,0|c,0)),0|(Z=D),1e9,0),ar[o>>2]=v,c=0|lb(0|g,0|Z,1e9,0),l>>>0<=(o=o+-4|0)>>>0;);c&&(ar[(l=l+-4|0)>>2]=c)}for(c=b;!(c>>>0<=l>>>0||0|ar[(o=c+-4|0)>>2]);)c=o;if(o=(0|ar[w>>2])-u|0,!(0<(0|(ar[w>>2]=o))))break;b=c}else l=E;if((0|o)<0){i=1+((a+25|0)/9|0)|0,h=102==(0|m);do{if(k=(0|(k=0-o|0))<9?k:9,l>>>0>>0){for(u=(1<>>k,s=0,o=l;Z=0|ar[o>>2],ar[o>>2]=(Z>>>k)+s,s=0|br(Z&u,b),(o=o+4|0)>>>0>>0;);o=0==(0|ar[l>>2])?l+4|0:l,o=s?(ar[c>>2]=s,l=o,c+4|0):(l=o,c)}else l=0==(0|ar[l>>2])?l+4|0:l,o=c;c=(0|i)<(o-(c=h?E:l)>>2|0)?c+(i<<2)|0:o,o=(0|ar[w>>2])+k|0,ar[w>>2]=o}while((0|o)<0);o=l,i=c}else o=l,i=c;if(Z=E,o>>>0>>0){if(c=9*(Z-o>>2)|0,10<=(u=0|ar[o>>2])>>>0)for(l=10;c=c+1|0,(l=10*l|0)>>>0<=u>>>0;);}else c=0;if((0|(l=a-(102!=(0|m)?c:0)+(((v=0!=(0|a))&(h=103==(0|m)))<<31>>31)|0))<((9*(i-Z>>2)|0)-9|0)){if(k=E+4+(((0|(l=l+9216|0))/9|0)-1024<<2)|0,(0|(l=1+((0|l)%9|0)|0))<9)for(u=10;u=10*u|0,9!=(0|(l=l+1|0)););else u=10;if((l=(k+4|0)==(0|i))&0==(0|(s=((b=0|ar[k>>2])>>>0)%(u>>>0)|0)))l=k;else if(d=0==(1&((b>>>0)/(u>>>0)|0)|0)?9007199254740992:9007199254740994,e=s>>>0<(g=(0|u)/2|0)>>>0?.5:l&(0|s)==(0|g)?1:1.5,B&&(e=(g=45==(0|tr[y>>0]))?-e:e,d=g?-d:d),l=b-s|0,ar[k>>2]=l,d+e!=d){if(g=l+u|0,999999999<(ar[k>>2]=g)>>>0)for(c=k;(l=c+-4|0)>>>(ar[c>>2]=0)>>0&&(ar[(o=o+-4|0)>>2]=0),g=1+(0|ar[l>>2])|0,999999999<(ar[l>>2]=g)>>>0;)c=l;else l=k;if(c=9*(Z-o>>2)|0,10<=(b=0|ar[o>>2])>>>0)for(u=10;c=c+1|0,(u=10*u|0)>>>0<=b>>>0;);}else l=k;l=(l=l+4|0)>>>0>>0?l:i,g=o}else l=i,g=o;for(m=l;;){if(m>>>0<=g>>>0){w=0;break}if(0|ar[(o=m+-4|0)>>2]){w=1;break}m=o}i=0-c|0;do{if(h){if(a=(0|c)<(0|(o=(1&(1^v))+a|0))&-5<(0|c)?(u=n+-1|0,o+-1-c|0):(u=n+-2|0,o+-1|0),!(o=8&f)){if(w&&0!=(0|(p=0|ar[m+-4>>2])))if((p>>>0)%10|0)l=0;else for(l=0,o=10;l=l+1|0,!((p>>>0)%((o=10*o|0)>>>0)|0););else l=9;if(o=(9*(m-Z>>2)|0)-9|0,102==(32|u)){a=(0|a)<(0|(k=0<(0|(k=o-l|0))?k:0))?a:k,k=0;break}a=(0|a)<(0|(k=0<(0|(k=o+c-l|0))?k:0))?a:k,k=0;break}k=o}else u=n,k=8&f}while(0);if(b=0!=(0|(h=a|k))&1,s=102==(32|u))o=(v=0)<(0|c)?c:0;else{if(((l=X)-(o=0|jc(o=(0|c)<0?i:c,((0|o)<0)<<31>>31,X))|0)<2)for(;tr[(o=o+-1|0)>>0]=48,(l-o|0)<2;);tr[o+-1>>0]=43+(c>>31&2),tr[(o=o+-2|0)>>0]=u,o=l-(v=o)|0}if(xc(A,32,r,o=B+1+a+b+o|0,f),Tc(A,y,B),xc(A,48,r,o,65536^f),s){b=k=I+9|0,s=I+8|0,l=u=E>>>0>>0?E:g;do{if(c=0|jc(0|ar[l>>2],0,k),(0|l)==(0|u))(0|c)==(0|k)&&(tr[s>>0]=48,c=s);else if(I>>>0>>0)for(vb(0|I,48,c-W|0);I>>>0<(c=c+-1|0)>>>0;);Tc(A,c,b-c|0),l=l+4|0}while(l>>>0<=E>>>0);if(0|h&&Tc(A,50730,1),l>>>0>>0&0<(0|a))for(;;){if(I>>>0<(c=0|jc(0|ar[l>>2],0,k))>>>0)for(vb(0|I,48,c-W|0);I>>>0<(c=c+-1|0)>>>0;);if(Tc(A,c,(0|a)<9?a:9),c=a+-9|0,!((l=l+4|0)>>>0>>0&9<(0|a))){a=c;break}a=c}xc(A,48,a+9|0,9,0)}else{if(h=w?m:g+4|0,-1<(0|a)){k=0==(0|k),i=w=I+9|0,b=0-W|0,s=I+8|0,u=g;do{(0|(c=0|jc(0|ar[u>>2],0,w)))==(0|w)&&(tr[s>>0]=48,c=s);do{if((0|u)==(0|g)){if(l=c+1|0,Tc(A,c,1),k&(0|a)<1){c=l;break}Tc(A,50730,1),c=l}else{if(c>>>0<=I>>>0)break;for(vb(0|I,48,c+b|0);I>>>0<(c=c+-1|0)>>>0;);}}while(0);Tc(A,c,(0|(W=i-c|0))<(0|a)?W:a),a=a-W|0,u=u+4|0}while(u>>>0>>0&-1<(0|a))}xc(A,48,a+18|0,18,0),Tc(A,v,X-v|0)}xc(A,32,r,o,8192^f)}else I=0!=(32&n|0),xc(A,32,r,o=B+3|0,-65537&f),Tc(A,y,B),Tc(A,e!=e|!1?I?52899:50710:I?50702:50706,3),xc(A,32,r,o,8192^f)}while(0);return ur=t,0|((0|o)<(0|r)?r:o)}function Kc(A){A=+A;var e;return Q[d>>3]=A,e=0|ar[d>>2],D=0|ar[d+4>>2],0|e}function qc(A,e){return+ +function A(e,r){e=+e;r|=0;var i=0,f=0,n=0;Q[d>>3]=e;i=0|ar[d>>2];f=0|ar[d+4>>2];n=0|sb(0|i,0|f,52);switch(2047&n){case 0:i=0!=e?(e=+A(0x10000000000000000*e,r),(0|ar[r>>2])-64|0):0,ar[r>>2]=i;break;case 2047:break;default:ar[r>>2]=(2047&n)-1022,ar[d>>2]=i,ar[d+4>>2]=-2146435073&f|1071644672,e=+Q[d>>3]}return+e}(A=+A,e|=0)}function $c(A,e){A|=0,e|=0;do{if(A){if(e>>>0<128){tr[A>>0]=e,A=1;break}if(!(0|ar[ar[10488>>2]>>2])){if(57216==(-128&e|0)){tr[A>>0]=e,A=1;break}ar[(A=10364)>>2]=84,A=-1;break}if(e>>>0<2048){tr[A>>0]=e>>>6|192,tr[A+1>>0]=63&e|128,A=2;break}if(e>>>0<55296|57344==(-8192&e|0)){tr[A>>0]=e>>>12|224,tr[A+1>>0]=e>>>6&63|128,tr[A+2>>0]=63&e|128,A=3;break}if((e+-65536|0)>>>0<1048576){tr[A>>0]=e>>>18|240,tr[A+1>>0]=e>>>12&63|128,tr[A+2>>0]=e>>>6&63|128,tr[A+3>>0]=63&e|128,A=4;break}ar[(A=10364)>>2]=84,A=-1;break}A=1}while(0);return 0|A}function Al(A,e){var r;return r=0|kb(0|(A|=0)),0|(0==(0|(e|=0))?A:r)}function el(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0;(f=0|ar[(i=(r|=0)+16|0)>>2])?n=5:0|rl(r)?i=0:(f=0|ar[i>>2],n=5);A:do{if(5==(0|n)){if((f-(i=t=0|ar[(o=r+20|0)>>2])|0)>>>0>>0){i=0|xb[63&ar[r+36>>2]](r,A,e);break}e:do{if(-1<(0|tr[r+75>>0])){for(t=e;;){if(!t){n=0,f=A;break e}if(10==(0|tr[A+(f=t+-1|0)>>0]))break;t=f}if((i=0|xb[63&ar[r+36>>2]](r,A,t))>>>0>>0)break A;f=A+(n=t)|0,e=e-t|0,i=0|ar[o>>2]}else n=0,f=A}while(0);hb(0|i,0|f,0|e),ar[o>>2]=(0|ar[o>>2])+e,i=n+e|0}}while(0);return 0|i}function rl(A){var e=0,r=0;return r=0|tr[(e=(A|=0)+74|0)>>0],tr[e>>0]=r+255|r,0|(A=8&(e=0|ar[A>>2])?(ar[A>>2]=32|e,-1):(ar[A+8>>2]=0,r=(ar[A+4>>2]=0)|ar[A+44>>2],ar[A+28>>2]=r,ar[A+20>>2]=r,ar[A+16>>2]=r+(0|ar[A+48>>2]),0))}function il(A,e,r){var i,f,n;return 0|(0|(i=A|=0,f=e|=0,n=r|=0,0|(n=0|fl(i|=0,f|=0,n|=0,-1,-1))))}function fl(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a;return t=ur=(a=ur)+31&-32,ur=ur+128|0,ar[t>>2]=0,ar[(o=4+t|0)>>2]=A,ar[44+t>>2]=A,ar[(n=8+t|0)>>2]=(0|A)<0?-1:A+2147483647|0,ar[76+t>>2]=-1,nl(t,0),r=0|wi(t,r,1,i,f),0|e&&(ar[e>>2]=A+((0|ar[o>>2])+(0|ar[108+t>>2])-(0|ar[n>>2]))),ur=a,0|r}function nl(A,e){e|=0;var r,i,f;ar[(A|=0)+104>>2]=e,f=(r=0|ar[A+8>>2])-(i=0|ar[A+4>>2])|0,ar[A+108>>2]=f,ar[A+100>>2]=0!=(0|e)&(0|e)<(0|f)?i+e|0:r}function tl(A){switch(0|(A|=0)){case 15:case 13:case 11:return 0|(A=1);case 14:case 12:case 10:case 3:case 2:case 1:case 0:case 99:return(A=0)|A;default:sr(55739,25597,495,25802)}return 0}function ol(A,e,r,i){A|=0,e|=0,i|=0;var f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(!(r|=0))return t=0|ar[e>>2],(f=0|ar[e+4>>2])||(A=0|X(4),ar[A>>2]=17536,I(0|A,3920,421)),(n=0|function(A){var e,r=0,i=0;r=0|ar[(e=4+(A|=0)|0)>>2];for(;;){if(-1==(0|r)){A=0;break}if((0|(i=0|ar[e>>2]))==(0|r)&&(ar[e>>2]=r+1),(0|i)==(0|r))break;r=i}return 0|A}(f))||(A=0|X(4),ar[A>>2]=17536,I(0|A,3920,421)),ar[i>>2]=t,f=0|ar[(e=i+4|0)>>2],ar[e>>2]=n,0|f&&du(f),Z=0|ar[(g=56592)+4>>2],ar[(e=A)>>2]=ar[g>>2],ar[e+4>>2]=Z,void yu(A+8|0,56600);switch(f=0|ar[e+24>>2],n=0|ar[e+28>>2],g=90==(0|r),Z=270==(0|r),0|r){case 90:case 270:l=n;break;default:l=f,f=n}o=0|hu(80),ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o>>2]=6208,ar[(n=o+12|0)>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,ar[n+12>>2]=0,ar[n+16>>2]=0,ar[o+32>>2]=32215,ar[o+36>>2]=0,ar[o+40>>2]=0,ar[o+44>>2]=99,ar[o+48>>2]=99,c=o+52|0,ar[(a=o+72|0)>>2]=0,ar[o+76>>2]=0,ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,ar[c+12>>2]=0,ar[o+68>>2]=a,a=n,m=(c=o)+16|0,bu(o),su(o),t=0|ar[m>>2],ar[n>>2]=a,ar[m>>2]=c,0|t&&ku(t),du(o),ar[i>>2]=a,t=0|ar[(m=i+4|0)>>2],ar[m>>2]=c,t?(du(t),n=0|ar[(m=i)>>2]):m=i,v=0|ar[e+32>>2],w=0|ar[e+36>>2],ar[n+24>>2]=l,ar[n+28>>2]=f,ar[n+32>>2]=v,ar[n+36>>2]=w,f=0|ar[e+56>>2],w=e+60|0;A:do{if((0|f)!=(0|w))for(v=180==(0|r),h=f;;){switch(c=0|ar[h+16>>2],f=0|ar[(o=h+24|0)>>2],n=0|ar[(a=h+28|0)>>2],0|r){case 90:case 270:t=f,f=n;break;default:t=n}if(l=h+20|0,Bo(0|ar[m>>2],c,f,t,0|cr[l>>0]),k=0|ar[o>>2],b=0|ar[a>>2],s=0|ar[h+48>>2],d=0|ar[h+40>>2],o=60+(0|ar[m>>2])|0,n=0|ar[o>>2]){f=o;e:for(;;){for(t=n;!((0|ar[t+16>>2])>=(0|c));){if(!(n=0|ar[t+4>>2]))break e;t=n}if(!(n=0|ar[t>>2])){f=t;break}f=t}i=(0|f)!=(0|o)&&(0|ar[f+16>>2])<=(0|c)?(u=0|ar[f+40>>2],0|ar[f+48>>2]):u=0}else i=u=0;f=0<(0|b);e:do{if(8==(0|tr[l>>0])){if(Z){if(!f)break;if(t=b+-1|0,!(0<(0|k)))break;for(n=0;;){for(o=0|br(t-n|0,s),f=0;l=u+((0|br(f,i))+n)|0,tr[l>>0]=0|tr[d+(f+o)>>0],(0|(f=f+1|0))!=(0|k););if((0|(n=n+1|0))==(0|b))break e}}if(v){if(!f)break;if(t=b+-1|0,o=k+-1|0,!(0<(0|k)))break;n=0;do{for(a=o+(0|br(t-n|0,s))|0,c=0|br(n,i),f=0;tr[u+(f+c)>>0]=0|tr[d+(a-f)>>0],(0|(f=f+1|0))!=(0|k););n=n+1|0}while((0|n)!=(0|b))}else{if(!(g&f))break;if(t=k+-1|0,!(0<(0|k)))break;n=0;do{for(o=t+(0|br(n,s))|0,f=0;l=u+((0|br(f,i))+n)|0,tr[l>>0]=0|tr[d+(o-f)>>0],(0|(f=f+1|0))!=(0|k););n=n+1|0}while((0|n)!=(0|b))}}else{if(Z){if(!f)break;if(t=b+-1|0,!(0<(0|k)))break;for(n=0;;){for(o=0|br(t-n|0,s),a=n<<1,f=0;c=(f<<1)+o|0,l=(0|br(f,i))+a|0,tr[u+l>>0]=0|tr[d+c>>0],tr[u+(l+1)>>0]=0|tr[d+(c+1)>>0],(0|(f=f+1|0))!=(0|k););if((0|(n=n+1|0))==(0|b))break e}}if(v){if(!f)break;if(t=b+-1|0,o=k+-1|0,!(0<(0|k)))break;n=0;do{for(a=0|br(t-n|0,s),c=0|br(n,i),f=0;p=(o-f<<1)+a|0,tr[u+(l=(f<<1)+c|0)>>0]=0|tr[d+p>>0],tr[u+(l+1)>>0]=0|tr[d+(p+1)>>0],(0|(f=f+1|0))!=(0|k););n=n+1|0}while((0|n)!=(0|b))}else{if(!(g&f))break;if(t=k+-1|0,!(0<(0|k)))break;f=0;do{for(o=0|br(f,s),a=f<<1,n=0;l=(t-n<<1)+o|0,p=(0|br(n,i))+a|0,tr[u+p>>0]=0|tr[d+l>>0],tr[u+(p+1)>>0]=0|tr[d+(l+1)>>0],(0|(n=n+1|0))!=(0|k););f=f+1|0}while((0|f)!=(0|b))}}}while(0);if(f=0|ar[h+4>>2])for(;n=0|ar[f>>2];)f=n;else if(f=0|ar[(n=h+8|0)>>2],(0|ar[f>>2])!=(0|h))for(;p=0|ar[n>>2],f=0|ar[(n=p+8|0)>>2],(0|ar[f>>2])!=(0|p););if((0|f)==(0|w))break A;h=f}}while(0);f=0|ar[m>>2],n=0|ar[e+40>>2],(o=0==(0|(t=0|ar[e+44>>2])))||(bu(t),bu(t)),ar[f+40>>2]=n,f=0|ar[(p=f+44|0)>>2],ar[p>>2]=t,0|f&&du(f),o||du(t),f=0|ar[m>>2],n=0|ar[e+48>>2],(o=0==(0|(t=0|ar[e+52>>2])))||(bu(t),bu(t)),ar[f+48>>2]=n,f=0|ar[(p=f+52|0)>>2],ar[p>>2]=t,0|f&&du(f),o||du(t),e=0|ar[(Z=56592)+4>>2],ar[(p=A)>>2]=ar[Z>>2],ar[p+4>>2]=e,yu(A+8|0,56600)}function al(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0;ur=(f=ur)+16|0,w=f,n=0|ar[(e|=0)+56>>2],i=e+60|0;A:do{if((0|n)!=(0|i)){for(;8==(0|tr[n+20>>0]);){if(c=0|ar[n+24>>2],l=0|ar[n+28>>2],b=0|ar[n+48>>2],s=0|ar[n+40>>2],r){if(0<(0|l)&&(k=(0|c)/2|0,h=c+-1|0,1<(0|c))){t=0;do{for(a=h+(o=0|br(t,b))|0,e=0;u=s+(a-e)|0,c=0|tr[(v=s+(e+o)|0)>>0],tr[v>>0]=0|tr[u>>0],tr[u>>0]=c,(0|(e=e+1|0))<(0|k););t=t+1|0}while((0|t)!=(0|l))}}else if(u=(0|l)/2|0,1<(0|l)&&(d=l+-1|0,0<(0|c))){e=0;do{for(o=0|br(e,b),a=0|br(d-e|0,b),t=0;v=s+(t+a)|0,l=0|tr[(m=s+(t+o)|0)>>0],tr[m>>0]=0|tr[v>>0],tr[v>>0]=l,(0|(t=t+1|0))!=(0|c););e=e+1|0}while((0|e)<(0|u))}if(e=0|ar[n+4>>2])for(;n=0|ar[e>>2];)e=n;else if(e=0|ar[(t=n+8|0)>>2],(0|ar[e>>2])!=(0|n))for(n=t;m=0|ar[n>>2],e=0|ar[(n=m+8|0)>>2],(0|ar[e>>2])!=(0|m););if((0|e)==(0|i))break A;n=e}for(e=0|hu(64),ar[w>>2]=e,ar[w+8>>2]=-2147483584,t=25898,o=(n=e)+(ar[w+4>>2]=54)|0;tr[n>>0]=0|tr[t>>0],t=t+1|0,(0|(n=n+1|0))<(0|o););return(oo(A,4,tr[e+54>>0]=0,w),0<=(0|tr[w+11>>0]))?void(ur=f):(vu(0|ar[w>>2]),void(ur=f))}}while(0);v=0|ar[(w=56592)+4>>2],ar[(m=A)>>2]=ar[w>>2],ar[m+4>>2]=v,yu(A+8|0,56600),ur=f}function cl(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(l=0|hu(80),ar[l+4>>2]=0,ar[l+8>>2]=0,ar[l>>2]=6208,ar[(o=l+12|0)>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o+12>>2]=0,ar[o+16>>2]=0,ar[l+32>>2]=32215,ar[l+36>>2]=0,ar[l+40>>2]=0,ar[l+44>>2]=99,ar[l+48>>2]=99,u=l+52|0,ar[(c=l+72|0)>>2]=0,ar[l+76>>2]=0,ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[l+68>>2]=c,c=o,p=(u=l)+16|0,bu(l),su(l),a=0|ar[p>>2],ar[o>>2]=c,ar[p>>2]=u,0|a&&ku(a),du(l),ar[t>>2]=c,a=0|ar[(p=t+4|0)>>2],ar[p>>2]=u,a?(du(a),o=0|ar[(p=t)>>2]):p=t,Z=0|ar[e+32>>2],m=0|ar[e+36>>2],ar[o+24>>2]=1-r+i,ar[o+28>>2]=1-f+n,ar[o+32>>2]=Z,ar[o+36>>2]=m,(0|(o=0|ar[e+56>>2]))!=(0|(m=e+60|0)))for(g=e+24|0,Z=e+28|0,v=o;;){if(u=0|ar[v+16>>2],h=0|ar[v+24>>2],t=0|ar[v+28>>2],b=(0|(b=0|br(h,r)))/(0|(s=0|ar[g>>2]))|0,s=(0|br(h,i))/(0|s)|0,h=(0|(h=0|br(t,f)))/(0|(w=0|ar[Z>>2]))|0,w=(0|br(t,n))/(0|w)|0,s=s-b+1|0,t=v+20|0,Bo(0|ar[p>>2],u,s,1-h+w|0,0|cr[t>>0]),d=0|ar[v+48>>2],k=0|ar[v+40>>2],l=60+(0|ar[p>>2])|0,a=0|ar[l>>2]){o=l;A:for(;;){for(c=a;!((0|ar[c+16>>2])>=(0|u));){if(!(a=0|ar[c+4>>2]))break A;c=a}if(!(a=0|ar[c>>2])){o=c;break}o=c}l=(0|o)!=(0|l)&&(0|ar[o+16>>2])<=(0|u)?(u=0|ar[o+40>>2],0|ar[o+48>>2]):u=0}else l=u=0;if(o=(0|w)<(0|h),8==(0|tr[t>>0])){if(!o)for(o=h;hb(u+(0|br(o-h|0,l))|0,k+((0|br(o,d))+b)|0,0|s),(0|o)<(0|w);)o=o+1|0}else if(!o)for(c=b<<1,a=s<<1,o=h;hb(u+(0|br(o-h|0,l))|0,k+((0|br(o,d))+c)|0,0|a),(0|o)<(0|w);)o=o+1|0;if(o=0|ar[v+4>>2])for(;a=0|ar[o>>2];)o=a;else if(o=0|ar[(a=v+8|0)>>2],(0|ar[o>>2])!=(0|v))for(;v=0|ar[a>>2],o=0|ar[(a=v+8|0)>>2],(0|ar[o>>2])!=(0|v););if((0|o)==(0|m))break;v=o}if(o=0|ar[p>>2],a=0|ar[e+40>>2],(l=0==(0|(c=0|ar[e+44>>2])))||(bu(c),bu(c)),ar[o+40>>2]=a,o=0|ar[(n=o+44|0)>>2],ar[n>>2]=c,0|o&&du(o),l||du(c),o=0|ar[p>>2],a=0|ar[e+48>>2],(l=0==(0|(c=0|ar[e+52>>2])))||(bu(c),bu(c)),ar[o+48>>2]=a,o=0|ar[(e=o+52|0)>>2],ar[e>>2]=c,0|o&&du(o),l)return i=0|ar[(i=n=56592)>>2],n=0|ar[(n=n+4|0)>>2],ar[(f=e=A)>>2]=i,ar[(e=e+4|0)>>2]=n,void yu(A=A+8|0,56600);du(c),i=0|ar[(i=n=56592)>>2],n=0|ar[(n=n+4|0)>>2],ar[(f=e=A)>>2]=i,ar[(e=e+4|0)>>2]=n,yu(A=A+8|0,56600)}function ll(A,e,r,i,f,n){A|=0;var t,o,a,c,l,u,b=0,s=0,d=0,k=0;ur=(u=ur)+32|0,s=u+12|0,k=u,l=(e|=0)+60|0,c=(65535&(i|=0))>>>8&255,a=(65535&(r|=0))>>>8&255,o=(65535&(f|=0))>>>8&255,t=(65535&(n|=0))>>>8&255,n=6228;A:for(;;){if(e=0|ar[l>>2],b=0|ar[n>>2],e){r=l,i=e;e:for(;;){for(e=i;!((0|ar[e+16>>2])>=(0|b));)if(!(e=0|ar[e+4>>2])){e=r;break e}if(!(i=0|ar[e>>2]))break;r=e}if((0|e)!=(0|l)&&(0|b)>=(0|ar[e+16>>2])){if(8!=(0|tr[e+20>>0])){d=13;break}switch(r=0|ar[e+28>>2],f=0|ar[e+48>>2],i=0|ar[e+40>>2],0|b){case 3:e=a;break;case 4:e=c;break;case 5:e=o;break;case 6:e=t;break;default:d=19;break A}vb(0|i,0|e,0|br(f,r))}else d=9}else d=9;if(9==(0|d)&&6!=((d=0)|b)){d=10;break}if(6244==(0|(n=n+4|0))){d=22;break}}if(10==(0|d))return ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,oo(A,5,2002,s),0<=(0|tr[s+11>>0])||vu(0|ar[s>>2]),void(ur=u);if(13==(0|d)){for(e=0|hu(64),ar[k>>2]=e,ar[k+8>>2]=-2147483584,r=25953,f=(i=e)+(ar[k+4>>2]=52)|0;tr[i>>0]=0|tr[r>>0],r=r+1|0,(0|(i=i+1|0))<(0|f););return(oo(A,4,tr[e+52>>0]=0,k),0<=(0|tr[k+11>>0]))?void(ur=u):(vu(0|ar[k>>2]),void(ur=u))}if(19==(0|d))sr(55739,25597,756,26006);else if(22==(0|d))return d=0|ar[(s=56592)+4>>2],ar[(k=A)>>2]=ar[s>>2],ar[k+4>>2]=d,yu(A+8|0,56600),void(ur=u)}function ul(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;if(ur=(a=ur)+48|0,W=a+12|0,Io(o=(I=a)+24|0,0|ar[(r|=0)>>2]),k=60+(0|ar[r>>2])|0,s=0==(0|(u=0|ar[k>>2])))d=8;else{c=k,b=u;A:for(;;){for(l=b;!(6<=(0|ar[l+16>>2]));)if(!(l=0|ar[l+4>>2]))break A;if(!(b=0|ar[l>>2])){c=l;break}c=l}(0|c)!=(0|k)&&(0|ar[c+16>>2])<=6||(d=8)}if(8==(0|d)&&(c=k),t=(0|c)==(0|k),s)X=0;else{c=k;A:for(;;){for(l=u;!(6<=(0|ar[l+16>>2]));)if(!(l=0|ar[l+4>>2]))break A;if(!(u=0|ar[l>>2])){c=l;break}c=l}X=(0|c)!=(0|k)&&(0|ar[c+16>>2])<=6?0|ar[c+40>>2]:0}c=0|ar[o>>2],n=4+o|0;A:do{if((0|c)!=(0|n)){E=e+60|0,y=(B=(0|i)<0)?0-i|0:0,B=B?0:i,p=(0|f)<0?0-f|0:0,Z=c;e:for(;;){v=0|ar[Z+16>>2],h=0|ar[E>>2];r:do{if(0|h){c=E,u=h;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}if((0|c)!=(0|E)&&(0|ar[c+16>>2])<=(0|v)){if(k=60+(0|ar[r>>2])|0,b=0==(0|(s=0|ar[k>>2])))g=m=0;else{c=k,u=s;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}g=(0|c)!=(0|k)&&(0|ar[c+16>>2])<=(0|v)?(m=0|ar[c+40>>2],0|ar[c+48>>2]):m=0}c=E,u=h;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}if(e=(0|c)!=(0|E)&&(0|ar[c+16>>2])<=(0|v)?(w=0|ar[c+48>>2],0|ar[c+40>>2]):w=0,b){d=59;break e}c=k,u=s;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}if(d=(0|c)!=(0|k)&&(0|ar[c+16>>2])<=(0|v)?0|ar[c+24>>2]:-1,b)s=-1;else{c=k,u=s;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}s=(0|c)!=(0|k)&&(0|ar[c+16>>2])<=(0|v)?0|ar[c+28>>2]:-1}if((0|d)<=-1){d=59;break e}if(!(-1<(0|s))){d=61;break e}c=E,u=h;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}b=(0|c)!=(0|E)&&(0|ar[c+16>>2])<=(0|v)?0|ar[c+24>>2]:-1,c=E,u=h;i:for(;;){for(l=u;!((0|ar[l+16>>2])>=(0|v));)if(!(l=0|ar[l+4>>2]))break i;if(!(u=0|ar[l>>2])){c=l;break}c=l}if(c=(0|c)!=(0|E)&&(0|ar[c+16>>2])<=(0|v)?0|ar[c+28>>2]:-1,(0|b)<=-1){d=78;break e}if((0|c)<=-1){d=80;break e}if(((s=(0|c)<(s+f|0)?c-f|0:s)|(d=(0|b)<(d+i|0)?b-i|0:d)|0)<0){d=82;break e}if(!((0|y)<(0|d)&(0|p)<(0|s))){d=90;break e}if(l=e+B|0,u=m+y|0,b=d-y|0,t){for(c=p;;)if(hb(l+(0|br(c+f|0,w))|0,u+(0|br(c,g))|0,0|b),(0|s)<=(0|(c=c+1|0)))break r}else l=p;do{for(u=(0|br(l+f|0,w))+B|0,b=(0|br(l,g))+y|0,c=y;v=e+(u+c)|0,k=0|cr[X+(h=b+c|0)>>0],h=0|br(k,0|cr[m+h>>0]),h=255&((((0|br(0|cr[v>>0],255^k))+h|0)>>>0)/255|0),tr[v>>0]=h,(0|(c=c+1|0))<(0|d););l=l+1|0}while((0|l)<(0|s))}}}while(0);if(c=0|ar[Z+4>>2])for(;l=0|ar[c>>2];)c=l;else if(c=0|ar[(l=Z+8|0)>>2],(0|ar[c>>2])!=(0|Z))for(;Z=0|ar[l>>2],c=0|ar[(l=Z+8|0)>>2],(0|ar[c>>2])!=(0|Z););if((0|c)==(0|n))break A;Z=c}if(59==(0|d))sr(26021,25597,795,26031);else if(61==(0|d))sr(26039,25597,796,26031);else if(78==(0|d))sr(26049,25597,800,26031);else if(80==(0|d))sr(26060,25597,801,26031);else{if(82==(0|d)){for(ar[W>>2]=0,ar[W+4>>2]=0,c=(ar[W+8>>2]=0)|hu(64),ar[W>>2]=c,ar[W+8>>2]=-2147483584,u=26071,b=(l=c)+(ar[W+4>>2]=54)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););return(tr[c+54>>0]=0,oo(A,2,122,W),0<=(0|tr[W+11>>0]))?(Co(o,A=0|ar[n>>2]),void(ur=a)):(vu(0|ar[W>>2]),Co(o,A=0|ar[n>>2]),void(ur=a))}if(90==(0|d)){for(ar[I>>2]=0,ar[I+4>>2]=0,c=(ar[I+8>>2]=0)|hu(64),ar[I>>2]=c,ar[I+8>>2]=-2147483584,u=26126,b=(l=c)+(ar[I+4>>2]=50)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););return(tr[c+50>>0]=0,oo(A,2,122,I),0<=(0|tr[I+11>>0]))?(Co(o,A=0|ar[n>>2]),void(ur=a)):(vu(0|ar[I>>2]),Co(o,A=0|ar[n>>2]),void(ur=a))}}}}while(0);W=0|ar[(f=56592)+4>>2],ar[(I=A)>>2]=ar[f>>2],ar[I+4>>2]=W,yu(A+8|0,56600),Co(o,A=0|ar[n>>2]),ur=a}function bl(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A|=0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(4144,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}function sl(A,e){e|=0;var r,i,f,n=0,t=0;if(ar[(A|=0)>>2]=0,ar[(f=A+4|0)>>2]=0,(r=(n=((ar[A+8>>2]=0)|ar[(i=e+4|0)>>2])-(0|ar[e>>2])|0)>>3)&&(536870911>>0&&zl(),t=0|hu(n),ar[f>>2]=t,ar[A>>2]=t,ar[A+8>>2]=t+(r<<3),(0|(n=0|ar[e>>2]))!=(0|(e=0|ar[i>>2]))))for(;ar[t>>2]=ar[n>>2],A=0|ar[n+4>>2],0|(ar[t+4>>2]=A)&&bu(A),n=n+8|0,t=8+(0|ar[f>>2])|0,ar[f>>2]=t,(0|n)!=(0|e););}function dl(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A|=0)>>2],ar[f>>2]=ar[e>>2],e=0|cA(4144,0|f),ar[f>>2]=ar[r>>2],r=0|cA(4152,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}function kl(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;f=0|ar[(u=(A|=0)+4|0)>>2],c=n=0|ar[A>>2],536870911<(t=1+(r=f-n>>3)|0)>>>0&&zl(),o=(l=(0|ar[(i=A+8|0)>>2])-n|0)>>2,o=l>>3>>>0<268435455?o>>>0>>0?t:o:536870911;do{if(o){if(!(536870911>>0)){a=0|hu(o<<3);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else a=0}while(0);if(l=a+(o<<3)|0,ar[(t=n=a+(r<<3)|0)>>2]=ar[e>>2],o=0|ar[e+4>>2],o=(ar[a+(r<<3)+4>>2]=o)?(bu(o),f=0|ar[u>>2],0|ar[A>>2]):c,a=n+8|0,(0|f)!=(0|o)){for(;f=(c=f)+-8|0,ar[n+-8>>2]=ar[f>>2],c=c+-4|0,ar[n+-4>>2]=ar[c>>2],ar[f>>2]=0,t=n=t+-8|(ar[c>>2]=0),(0|f)!=(0|o););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=l,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function hl(A){var e;(A|=0)&&(0|(e=0|ar[A+4>>2])&&du(e),vu(A))}function wl(A,e){var r=0,i=0,f=0,n=0,t=0,o=0,a=0;if((e|=0)>>>0<=(f=0|ar[(o=(A|=0)+8|0)>>2])-(r=0|ar[(a=A+4|0)>>2])>>3>>>0)for(;ar[(o=r)>>2]=0,r=8+((ar[o+4>>2]=0)|ar[a>>2])|0,ar[a>>2]=r,0!=(0|(e=e+-1|0)););else{536870911<(r=(n=r-(i=0|ar[A>>2])>>3)+e|0)>>>0&&zl(),t=(f=f-i|0)>>2,r=f>>3>>>0<268435455?t>>>0>>0?r:t:536870911;do{if(r){if(!(536870911>>0)){i=0|hu(r<<3);break}Zu(a=0|X(8),44519),ar[a>>2]=17660,I(0|a,4016,428)}else i=0}while(0);for(t=i+(n<<3)|0,n=i+(r<<3)|0,f=r=t;ar[(i=r)>>2]=0,f=r=f+8|(ar[i+4>>2]=0),0!=(0|(e=e+-1|0)););e=0|ar[A>>2],r=t+(0-((i=(0|ar[a>>2])-e|0)>>3)<<3)|0,0<(0|i)&&hb(0|r,0|e,0|i),ar[A>>2]=r,ar[a>>2]=f,ar[o>>2]=n,e&&vu(e)}}function vl(A,e){A|=0,(e|=0)&&(vl(A,0|ar[e>>2]),vl(A,0|ar[e+4>>2]),0|(A=0|ar[e+24>>2])&&du(A),vu(e))}function ml(A,e){return A|=0,(e|=0)&&(ml(A,0|ar[e>>2]),ml(A,0|ar[e+4>>2]),void vu(e))}function gl(A){var e,r,i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(f=ur)+16|0,e=f,(0|(n=0|ar[(r=(A|=0)+28|0)>>2]))!=(0|(i=A+32|0)))for(s=b=e+4|0,u=n;;){if(a=0|ar[u+20>>2],(l=0==(0|(c=0|ar[u+24>>2])))||bu(c),sl(e,a+48|0),o=0|ar[e>>2],(0|(n=0|ar[b>>2]))==(0|o))n=o;else{for(;t=n+-8|0,ar[b>>2]=t,(0|(n=(n=0|ar[n+-4>>2])?(du(n),0|ar[b>>2]):t))!=(0|o););n=0|ar[e>>2]}if(0|n){if((0|o)!=(0|n)){for(;t=o+-8|0,ar[b>>2]=t,(o=0|ar[o+-4>>2])&&(du(o),t=0|ar[b>>2]),(0|t)!=(0|n);)o=t;n=0|ar[e>>2]}vu(n)}if(n=(ar[a+68>>2]=0)|ar[(o=a+72|0)>>2],(ar[o>>2]=0)|n&&du(n),n=(ar[a+84>>2]=0)|ar[(o=a+88|0)>>2],(ar[o>>2]=0)|n&&du(n),sl(e,a+172|0),o=0|ar[e>>2],(0|(n=0|ar[s>>2]))==(0|o))n=o;else{for(;t=n+-8|0,ar[s>>2]=t,(0|(n=(n=0|ar[n+-4>>2])?(du(n),0|ar[s>>2]):t))!=(0|o););n=0|ar[e>>2]}if(0|n){if((0|o)!=(0|n)){for(;t=o+-8|0,ar[s>>2]=t,(o=0|ar[o+-4>>2])&&(du(o),t=0|ar[s>>2]),(0|t)!=(0|n);)o=t;n=0|ar[e>>2]}vu(n)}if(l||du(c),n=0|ar[u+4>>2])for(;t=0|ar[n>>2];)n=t;else if(n=0|ar[(t=u+8|0)>>2],(0|ar[n>>2])!=(0|u))for(;u=0|ar[t>>2],n=0|ar[(t=u+8|0)>>2],(0|ar[n>>2])!=(0|u););if((0|n)==(0|i))break;u=n}if(0|(n=0|ar[A+64>>2])&&du(n),0|(n=0|ar[A+56>>2])&&du(n),0|(n=0|ar[(a=A+40|0)>>2])){if((0|(t=0|ar[(c=A+44|0)>>2]))!=(0|n)){for(;o=t+-8|0,ar[c>>2]=o,(0|(t=(t=0|ar[t+-4>>2])?(du(t),0|ar[c>>2]):o))!=(0|n););n=0|ar[a>>2]}vu(n)}vl(r,0|ar[i>>2]),ml(A+16|0,0|ar[A+20>>2]),ur=(0<=(0|tr[A+11>>0])||vu(0|ar[A>>2]),f)}function Zl(A,e){A|=0;var r=0,i=0,f=0,n=0,t=0;if(r=0|ar[(e|=0)>>2]){n=(r=0|qu(r,416,400,0))?(0|(f=i=0|ar[e+4>>2])&&bu(i),r?(ar[A+204>>2]=r,r=0|ar[(n=A+208|0)>>2],ar[n>>2]=f,r&&du(r),0):f):0,r=0|ar[e>>2];do{if(0|r&&0|(t=0|qu(r,416,440,0))){if(i=t,0|(f=r=0|ar[e+4>>2])&&bu(r),t){if(ar[A+196>>2]=i,r=0|ar[(t=A+200|0)>>2],ar[t>>2]=f,!r)break;du(r);break}if(!r)break;du(r);break}}while(0);n&&du(n)}}function pl(A,e){A|=0,e|=0;var r,i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+32|0,ar[(n=(i=o)+8|0)>>2]=0,ar[(t=4+n|0)>>2]=0,((ar[8+n>>2]=0)|(a=0|ar[(f=A+40|0)>>2]))!=(0|(r=0|ar[A+44>>2]))){l=i+4|0,u=8+n|0;do{c=0|ar[a>>2],ar[i>>2]=c,A=0|ar[a+4>>2],A=(ar[l>>2]=A)?(bu(A),c=0|ar[i>>2]):c;do{if((0|A)!=(0|ar[e>>2])){if((0|(A=0|ar[t>>2]))==(0|ar[u>>2])){kl(n,i);break}ar[A>>2]=c,c=0|ar[l>>2],(ar[A+4>>2]=c)&&(bu(c),A=0|ar[t>>2]),ar[t>>2]=A+8}}while(0);0|(A=0|ar[l>>2])&&du(A),a=a+8|0}while((0|a)!=(0|r))}if((0|f)!=(0|n)&&function(A,e,r){var i=0,f=0,n=0,t=0,o=0,a=0,c=0;if(o=(r|=0)-(e|=0)>>3,i=0|ar[(a=8+(A|=0)|0)>>2],n=0|ar[A>>2],o>>>0>i-(f=n)>>3>>>0){if(n){if((0|(i=0|ar[(t=A+4|0)>>2]))==(0|f))i=n;else{for(n=i;i=n+-8|0,ar[t>>2]=i,(n=0|ar[n+-4>>2])&&(du(n),i=0|ar[t>>2]),(0|i)!=(0|f);)n=i;i=0|ar[A>>2]}vu(i),ar[a>>2]=0,ar[t>>2]=0,ar[A>>2]=0,i=0}if(536870911>>0&&zl(),f=i>>2,536870911<(f=i>>3>>>0<268435455?f>>>0>>0?o:f:536870911)>>>0&&zl(),i=0|hu(f<<3),ar[(n=A+4|0)>>2]=i,ar[A>>2]=i,ar[a>>2]=i+(f<<3),(0|e)==(0|r))return;for(;ar[i>>2]=ar[e>>2],f=0|ar[e+4>>2],0|(ar[i+4>>2]=f)&&bu(f),e=e+8|0,i=8+(0|ar[n>>2])|0,ar[n>>2]=i,(0|e)!=(0|r););return}if(i=(0|ar[(a=A+4|0)>>2])-n>>3,A=i>>>0>>0,i=e+(i<<3)|0,(0|(o=A?i:r))==(0|e))e=f;else{for(;n=0|ar[e>>2],0|(t=0|ar[e+4>>2])&&bu(t),ar[f>>2]=n,n=0|ar[(c=f+4|0)>>2],ar[c>>2]=t,0|n&&du(n),f=f+8|0,(0|(e=e+8|0))!=(0|o););e=f}if(!A){if((0|(i=0|ar[a>>2]))==(0|e))return;for(;f=i+-8|0,ar[a>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[a>>2]):f))!=(0|e););return}if((0|o)==(0|r))return;f=0|ar[a>>2];for(;ar[f>>2]=ar[i>>2],e=0|ar[i+4>>2],0|(ar[f+4>>2]=e)&&bu(e),i=i+8|0,f=8+(0|ar[a>>2])|0,ar[a>>2]=f,(0|i)!=(0|r););}(f,0|ar[n>>2],0|ar[t>>2]),A=0|ar[n>>2]){if((0|(a=0|ar[t>>2]))!=(0|A)){for(;c=a+-8|0,ar[t>>2]=c,(0|(a=(a=0|ar[a+-4>>2])?(du(a),0|ar[t>>2]):c))!=(0|A););A=0|ar[n>>2]}vu(A),ur=o}else ur=o}function yl(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;t=0|ar[(b=(A|=0)+4|0)>>2],r=o=0|ar[A>>2],536870911<(f=(l=t-o>>3)+1|0)>>>0&&zl(),a=(u=(0|ar[(i=A+8|0)>>2])-o|0)>>2,a=u>>3>>>0<268435455?a>>>0>>0?f:a:536870911;do{if(a){if(!(536870911>>0)){c=0|hu(a<<3);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(a<<3)|0,ar[(f=n=c+(l<<3)|0)>>2]=ar[e>>2],a=e+4|0,ar[c+(l<<3)+4>>2]=ar[a>>2],ar[e>>2]=0,a=n+8|(ar[a>>2]=0),(0|t)!=(0|r)){for(;t=(l=t)+-8|0,ar[n+-8>>2]=ar[t>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[t>>2]=0,f=n=f+-8|(ar[l>>2]=0),(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function Bl(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;t=0|ar[(b=(A|=0)+4|0)>>2],r=o=0|ar[A>>2],536870911<(f=(l=t-o>>3)+1|0)>>>0&&zl(),a=(u=(0|ar[(i=A+8|0)>>2])-o|0)>>2,a=u>>3>>>0<268435455?a>>>0>>0?f:a:536870911;do{if(a){if(!(536870911>>0)){c=0|hu(a<<3);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(a<<3)|0,ar[(f=n=c+(l<<3)|0)>>2]=ar[e>>2],a=e+4|0,ar[c+(l<<3)+4>>2]=ar[a>>2],ar[e>>2]=0,a=n+8|(ar[a>>2]=0),(0|t)!=(0|r)){for(;t=(l=t)+-8|0,ar[n+-8>>2]=ar[t>>2],l=l+-4|0,ar[n+-4>>2]=ar[l>>2],ar[t>>2]=0,f=n=f+-8|(ar[l>>2]=0),(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function El(A){var e=0,r=0,i=0,f=0,n=0;if(0|(e=0|ar[(A|=0)+208>>2])&&du(e),0|(e=0|ar[A+200>>2])&&du(e),0|(e=0|ar[(n=A+184|0)>>2])){if((0|(r=0|ar[(f=A+188|0)>>2]))!=(0|e)){for(;i=r+-8|0,ar[f>>2]=i,(0|(r=(r=0|ar[r+-4>>2])?(du(r),0|ar[f>>2]):i))!=(0|e););e=0|ar[n>>2]}vu(e)}if(0|(e=0|ar[(f=A+172|0)>>2])){if((0|(r=0|ar[(n=A+176|0)>>2]))!=(0|e)){for(;i=r+-8|0,ar[n>>2]=i,(0|(r=(r=0|ar[r+-4>>2])?(du(r),0|ar[n>>2]):i))!=(0|e););e=0|ar[f>>2]}vu(e)}if((0|tr[(e=A+160|0)+11>>0])<0&&vu(0|ar[e>>2]),0|(e=0|ar[A+88>>2])&&du(e),0|(e=0|ar[A+72>>2])&&du(e),0|(e=0|ar[(f=A+48|0)>>2])){if((0|(r=0|ar[(n=A+52|0)>>2]))!=(0|e)){for(;i=r+-8|0,ar[n>>2]=i,(0|(r=(r=0|ar[r+-4>>2])?(du(r),0|ar[n>>2]):i))!=(0|e););e=0|ar[f>>2]}vu(e)}0<=(0|tr[A+11>>0])||vu(0|ar[A>>2])}function Xl(A,e,r,i,f,n){A|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0;ur=(k=ur)+272|0,s=k+96|0,B=k+236|0,U=k+72|0,S=k+48|0,t=k+24|0,I=k+224|0,C=(o=k)+200|0,F=k+212|0,G=k+188|0,W=k+176|0,V=k+168|0,R=k+152|0,y=k+140|0,a=k+128|0,b=k+116|0,ho(d=k+248|0,0|ar[(N=(e|=0)+60|0)>>2],r),(Z=0|ar[(c=e+32|0)>>2])?(v=c,g=Z):sr(31354,30203,1047,31362);A:for(;;){for(m=g;!((0|ar[m+16>>2])>>>0>=r>>>0);)if(!(m=0|ar[m+4>>2]))break A;if(!(g=0|ar[m>>2])){v=m;break}v=m}(0|v)==(0|c)&&sr(31354,30203,1047,31362),(0|ar[v+16>>2])>>>0>r>>>0?sr(31354,30203,1047,31362):(w=c,p=Z);A:for(;;){for(v=p;!((0|ar[v+16>>2])>>>0>=r>>>0);)if(!(v=0|ar[v+4>>2]))break A;if(!(p=0|ar[v>>2])){w=v;break}w=v}(0|w)!=(0|c)&&(0|ar[w+16>>2])>>>0<=r>>>0||(w=c),v=0|ar[w+20>>2],0|(u=0|ar[w+24>>2])&&bu(u),(E=v)||sr(31354,30203,1047,31362),h=s,ar[(h|=0)>>2]=0,ar[h+4>>2]=0,ar[h+8>>2]=0,ar[h+12>>2]=0,v=(ar[h+16>>2]=0)|tr[(l=11+d|0)>>0],w=0|ar[(m=4+d|0)>>2],M=4==(0|(v<<24>>24<0?w:255&v))?0|Yu(d,0,-1,30298,4)?(v=0|tr[l>>0],w=0|ar[m>>2],22):25:22;A:do{if(22==(0|M)){if(4==(0|(v<<24>>24<0?w:255&v))){if(!(0|Yu(d,0,-1,30318,4))){M=25;break}v=0|tr[l>>0],w=0|ar[m>>2]}do{if(4==(0|(v<<24>>24<0?w:255&v))){if(0|Yu(d,0,-1,30303,4)){v=0|tr[l>>0],w=0|ar[m>>2];break}if(ar[U>>2]=0,ar[(g=U+4|0)>>2]=0,mo(S,(ar[U+8>>2]=0)|ar[N>>2],r,U),w=0|ar[(m=S)+4>>2],ar[(v=s)>>2]=ar[m>>2],ar[v+4>>2]=w,w=S+8|0,(0|tr[(m=(v=8+s|0)+11|0)>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+s>>2]=0):(tr[v>>0]=0,tr[m>>0]=0),Cu(v,0),ar[v>>2]=ar[w>>2],ar[v+4>>2]=ar[w+4>>2],ar[v+8>>2]=ar[w+8>>2],0|ar[s>>2]){S=0|ar[(i=s)+4>>2],ar[(w=A)>>2]=ar[i>>2],ar[w+4>>2]=S,ar[(w=A+8|0)>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w));break A}if(Wl(S,e,r,i,U),J=0|ar[(D=S)+4>>2],ar[(w=s)>>2]=ar[D>>2],ar[w+4>>2]=J,w=S+8|0,(0|tr[m>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+s>>2]=0):(tr[v>>0]=0,tr[m>>0]=0),Cu(v,0),ar[v>>2]=ar[w>>2],ar[v+4>>2]=ar[w+4>>2],ar[v+8>>2]=ar[w+8>>2],0|ar[s>>2]){S=0|ar[(i=s)+4>>2],ar[(w=A)>>2]=ar[i>>2],ar[w+4>>2]=S,ar[(w=A+8|0)>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w));break A}0|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w)),M=178;break A}}while(0);do{if(4==(0|(v<<24>>24<0?w:255&v))){if(0|Yu(d,0,-1,30308,4)){v=0|tr[l>>0],w=0|ar[m>>2];break}if(Il(U,e,r,i),v=0|ar[(m=U)+4>>2],ar[(w=s)>>2]=ar[m>>2],ar[w+4>>2]=v,v=U+8|0,(0|tr[(m=(w=8+s|0)+11|0)>>0])<0?(tr[ar[w>>2]>>0]=0,ar[12+s>>2]=0):(tr[w>>0]=0,tr[m>>0]=0),Cu(w,0),ar[w>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],!(0|ar[s>>2])){M=178;break A}U=0|ar[(i=s)+4>>2],ar[(S=A)>>2]=ar[i>>2],ar[S+4>>2]=U,ar[(A=A+8|0)>>2]=ar[w>>2],ar[A+4>>2]=ar[w+4>>2],ar[A+8>>2]=ar[w+8>>2],ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0;break A}}while(0);if(4==(0|(v<<24>>24<0?w:255&v))&&0==(0|Yu(d,0,-1,30313,4))){if(ar[U>>2]=0,ar[(g=U+4|0)>>2]=0,mo(S,(ar[U+8>>2]=0)|ar[N>>2],r,U),w=0|ar[(m=S)+4>>2],ar[(v=s)>>2]=ar[m>>2],ar[v+4>>2]=w,w=S+8|0,(0|tr[(m=(v=8+s|0)+11|0)>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+s>>2]=0):(tr[v>>0]=0,tr[m>>0]=0),Cu(v,0),ar[v>>2]=ar[w>>2],ar[v+4>>2]=ar[w+4>>2],ar[v+8>>2]=ar[w+8>>2],0|ar[s>>2]){S=0|ar[(i=s)+4>>2],ar[(w=A)>>2]=ar[i>>2],ar[w+4>>2]=S,ar[(w=A+8|0)>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w));break}if(Cl(S,e,r,i,U),J=0|ar[(D=S)+4>>2],ar[(w=s)>>2]=ar[D>>2],ar[w+4>>2]=J,w=S+8|0,(0|tr[m>>0])<0?(tr[ar[v>>2]>>0]=0,ar[12+s>>2]=0):(tr[v>>0]=0,tr[m>>0]=0),Cu(v,0),ar[v>>2]=ar[w>>2],ar[v+4>>2]=ar[w+4>>2],ar[v+8>>2]=ar[w+8>>2],0|ar[s>>2]){S=0|ar[(i=s)+4>>2],ar[(w=A)>>2]=ar[i>>2],ar[w+4>>2]=S,ar[(w=A+8|0)>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],ar[v>>2]=0,ar[v+4>>2]=0,(ar[v+8>>2]=0)|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w));break}0|(w=0|ar[U>>2])&&((0|ar[g>>2])!=(0|w)&&(ar[g>>2]=w),vu(w)),M=178;break}ar[y>>2]=0,ar[y+4>>2]=0,ar[y+8>>2]=0,oo(A,4,3001,y),(0|tr[y+11>>0])<0&&vu(0|ar[y>>2])}}while(0);do{if(25==(0|M)){if(v=0|tr[l>>0],w=0|ar[m>>2],4==(0|(v<<24>>24<0?w:255&v))?0|Yu(d,0,-1,30298,4)?(v=0|tr[l>>0],w=0|ar[m>>2],M=28):p=1:M=28,28==(0|M)&&(p=4==(0|(v<<24>>24<0?w:255&v))&&(p=0==(0|Yu(d,0,-1,30318,4)))?4:0),m=(w=0|Rl(p))?0|jb[127&ar[w+16>>2]](p):0,(0|(v=0|ar[e+16>>2]))==(0|(y=e+20|0)))g=w;else{do{if(D=0|ar[v+16>>2],w=(J=(0|m)<(0|(g=0|jb[127&ar[D+16>>2]](p))))?D:w,m=J?g:m,g=0|ar[v+4>>2])for(v=g;g=0|ar[v>>2];)v=g;else if(Z=0|ar[(g=v+8|0)>>2],(0|ar[Z>>2])==(0|v))v=Z;else for(;J=0|ar[g>>2],v=0|ar[(g=J+8|0)>>2],(0|ar[v>>2])!=(0|J););}while((0|v)!=(0|y));g=w}if(!g){if(ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,oo(A,4,3e3,B),0<=(0|tr[B+11>>0]))break;vu(0|ar[B>>2]);break}if(ar[U>>2]=0,ar[(X=U+4|0)>>2]=0,mo(S,(ar[U+8>>2]=0)|ar[N>>2],r,U),v=0|ar[(m=S)+4>>2],ar[(w=s)>>2]=ar[m>>2],ar[w+4>>2]=v,v=S+8|0,(0|tr[(m=(w=8+s|0)+11|0)>>0])<0?(tr[ar[w>>2]>>0]=0,ar[12+s>>2]=0):(tr[w>>0]=0,tr[m>>0]=0),Cu(w,0),ar[w>>2]=ar[v>>2],ar[w+4>>2]=ar[v+4>>2],ar[w+8>>2]=ar[v+8>>2],0|ar[s>>2])D=0|ar[(Q=s)+4>>2],ar[(J=A)>>2]=ar[Q>>2],ar[J+4>>2]=D,ar[(J=A+8|0)>>2]=ar[w>>2],ar[J+4>>2]=ar[w+4>>2],ar[J+8>>2]=ar[w+8>>2],ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,w=1;else{fs[63&ar[g+20>>2]](t,S),Z=0|ar[t>>2];do{if(Z)m=0|ar[4+t>>2],v=0|ar[8+t>>2],ar[I>>2]=0,ar[I+4>>2]=0,4294967279<(g=(ar[I+8>>2]=0)|Vc(v))>>>0&&pu(),g>>>0<11?(tr[I+11>>0]=g)?(w=I,M=53):w=I:(w=0|hu(M=g+16&-16),ar[I>>2]=w,ar[I+8>>2]=-2147483648|M,ar[I+4>>2]=g,M=53),53==(0|M)&&hb(0|w,0|v,0|g),tr[w+g>>0]=0,oo(A,Z,m,I),w=((0|tr[I+11>>0])<0&&vu(0|ar[I>>2]),1);else{if(J=0|ar[U>>2],ts[31&ar[g+28>>2]](o,0|ar[S>>2],J,(0|ar[X>>2])-J|0),ar[t>>2]=ar[o>>2],ar[4+t>>2]=ar[o+4>>2],ar[8+t>>2]=ar[o+8>>2],0|ar[t>>2]){if(is[511&ar[g+24>>2]](0|ar[S>>2]),m=0|ar[t>>2],g=0|ar[4+t>>2],v=0|ar[8+t>>2],ar[C>>2]=0,ar[C+4>>2]=0,4294967279<(Z=(ar[C+8>>2]=0)|Vc(v))>>>0&&pu(),Z>>>0<11?(tr[C+11>>0]=Z)?(w=C,M=62):w=C:(w=0|hu(M=Z+16&-16),ar[C>>2]=w,ar[C+8>>2]=-2147483648|M,ar[C+4>>2]=Z,M=62),62==(0|M)&&hb(0|w,0|v,0|Z),tr[w+Z>>0]=0,oo(A,m,g,C),0<=(0|tr[C+11>>0])){w=1;break}vu(0|ar[C>>2]),w=1;break}ar[o>>2]=0,ns[127&ar[g+32>>2]](F,0|ar[S>>2],o),ar[t>>2]=ar[F>>2],ar[4+t>>2]=ar[F+4>>2],ar[8+t>>2]=ar[F+8>>2];do{if(0|ar[t>>2]){if(is[511&ar[g+24>>2]](0|ar[S>>2]),m=0|ar[t>>2],g=0|ar[4+t>>2],v=0|ar[8+t>>2],ar[G>>2]=0,ar[G+4>>2]=0,4294967279<(Z=(ar[G+8>>2]=0)|Vc(v))>>>0&&pu(),Z>>>0<11?(tr[G+11>>0]=Z)?(w=G,M=71):w=G:(w=0|hu(M=Z+16&-16),ar[G>>2]=w,ar[G+8>>2]=-2147483648|M,ar[G+4>>2]=Z,M=71),71==(0|M)&&hb(0|w,0|v,0|Z),tr[w+Z>>0]=0,oo(A,m,g,G),0<=(0|tr[G+11>>0])){w=1;break}vu(0|ar[G>>2]),w=1}else{if(!(w=0|ar[o>>2])){if(is[511&ar[g+24>>2]](0|ar[S>>2]),ar[W>>2]=0,ar[W+4>>2]=0,oo(A,7,ar[W+8>>2]=0,W),0<=(0|tr[W+11>>0])){w=1;break}vu(0|ar[W>>2]),w=1;break}p=0|ar[w>>2],J=0|ar[(D=w+4|0)>>2],ar[w>>2]=0,ar[D>>2]=0,ar[i>>2]=p,w=0|ar[(p=i+4|0)>>2],ar[p>>2]=J,0|w&&du(w),hl(0|ar[o>>2]),is[511&ar[g+24>>2]](0|ar[S>>2]),w=0|ar[E+196>>2],(B=0==(0|(y=0|ar[E+200>>2])))||bu(y);do{if(0|w){if(v=0|ar[i>>2],B||(bu(y),bu(y)),ar[v+40>>2]=w,w=0|ar[(J=v+44|0)>>2],ar[J>>2]=y,0|w&&du(w),B)break;du(y)}}while(0);v=0|ar[E+204>>2],(Z=0==(0|(g=0|ar[E+208>>2])))||bu(g);do{if(0|v){if(w=0|ar[i>>2],Z||(bu(g),bu(g)),ar[w+48>>2]=v,w=0|ar[(J=w+52|0)>>2],ar[J>>2]=g,0|w&&du(w),Z)break;du(g)}}while(0);J=0|ar[i>>2],D=0|ar[J+32>>2],v=2==(0|(w=0==(0|(w=99==(0|f)?D:f))?1:w))?0:3;do{if((0|w)==(0|D)&&(0|v)==(0|ar[J+36>>2]))w=0;else{ar[V>>2]=0,me(F,i,w,v,V,ar[(m=V+4|0)>>2]=0),w=0|ar[F>>2],J=0|ar[(v=F+4|0)>>2],ar[F>>2]=0,ar[v>>2]=0,ar[i>>2]=w,w=0|ar[p>>2],ar[p>>2]=J;do{if(0|w){if(du(w),!(w=0|ar[v>>2]))break;du(w)}}while(0);if(0|(w=0|ar[m>>2])&&du(w),0|ar[i>>2]){w=0;break}if(ar[R>>2]=0,ar[R+4>>2]=0,ar[R+8>>2]=0,oo(A,4,3003,R),0<=(0|tr[R+11>>0])){w=1;break}vu(0|ar[R>>2]),w=1}}while(0);if(Z||du(g),B)break;du(y)}}while(0)}}while(0)}0|(v=0|ar[U>>2])&&((0|ar[X>>2])!=(0|v)&&(ar[X>>2]=v),vu(v)),w||(M=178)}}while(0);do{if(178==(0|M)){if(0==(0|n)||0==(0|tr[n+1>>0])){ar[U>>2]=0,ar[(J=U+4|0)>>2]=0,w=(ar[U+8>>2]=0)|ar[N>>2],v=0|ar[w+44>>2],(D=0==(0|(Q=0|ar[w+48>>2])))||(bu(Q),w=0|ar[N>>2]),ar[S>>2]=ar[w+52>>2],Y=S+4|0,w=0|ar[w+56>>2],0|(ar[Y>>2]=w)&&bu(w),Ht(t,v,r,S,U),w=0|ar[(_=t)+4>>2],ar[(N=s)>>2]=ar[_>>2],ar[N+4>>2]=w,w=8+t|0,(0|tr[(_=(N=8+s|0)+11|0)>>0])<0?(tr[ar[N>>2]>>0]=0,ar[12+s>>2]=0):(tr[N>>0]=0,tr[_>>0]=0),Cu(N,0),ar[N>>2]=ar[w>>2],ar[N+4>>2]=ar[w+4>>2],ar[N+8>>2]=ar[w+8>>2],w=0|ar[U>>2],X=0|ar[J>>2];A:do{if((0|w)!=(0|X)){W=11+a|0,G=12+s|0,f=i+4|0,V=A+8|0,F=8+t|0,R=I=4+t|0,n=C=o+8|0;e:for(;;){v=0|ar[(Z=w+4|0)>>2];r:do{if(v){if(m=0|qu(v,128,808,0)){(v=0|ar[w+8>>2])?bu(v):v=0,ar[t>>2]=0,ol(o,(ar[R>>2]=0)|ar[i>>2],0|ar[m+56>>2],t),B=0|ar[(y=o)+4>>2],ar[(E=s)>>2]=ar[y>>2],ar[E+4>>2]=B,(0|tr[_>>0])<0?(tr[ar[N>>2]>>0]=0,ar[G>>2]=0):(tr[N>>0]=0,tr[_>>0]=0),Cu(N,0),ar[N>>2]=ar[n>>2],ar[N+4>>2]=ar[n+4>>2],ar[N+8>>2]=ar[n+8>>2];do{if(0|ar[s>>2])E=0|ar[(B=s)+4>>2],ar[(m=A)>>2]=ar[B>>2],ar[m+4>>2]=E,ar[V>>2]=ar[N>>2],ar[V+4>>2]=ar[N+4>>2],ar[V+8>>2]=ar[N+8>>2],ar[N>>2]=0,ar[N+4>>2]=0,ar[N+8>>2]=0,m=1;else{if(m=0|ar[t>>2],0|(g=0|ar[R>>2])&&bu(g),ar[i>>2]=m,m=0|ar[f>>2],ar[f>>2]=g,!m){m=0;break}du(m),m=0}}while(0);if(0|(g=0|ar[R>>2])&&du(g),m){m=1;break}E=v}else E=0;if(v=0|ar[Z>>2]){m=0|qu(v,128,776,0);do{if(m){if((v=0|ar[w+8>>2])?bu(v):v=0,al(t,0|ar[i>>2],1==(0|tr[m+56>>0])),B=0|ar[(y=t)+4>>2],ar[(M=s)>>2]=ar[y>>2],ar[M+4>>2]=B,(0|tr[_>>0])<0?(tr[ar[N>>2]>>0]=0,ar[G>>2]=0):(tr[N>>0]=0,tr[_>>0]=0),Cu(N,0),ar[N>>2]=ar[F>>2],ar[N+4>>2]=ar[F+4>>2],ar[N+8>>2]=ar[F+8>>2],!(0|ar[s>>2])){B=v;break}g=0|ar[(M=s)+4>>2],ar[(m=A)>>2]=ar[M>>2],ar[m+4>>2]=g,ar[V>>2]=ar[N>>2],ar[V+4>>2]=ar[N+4>>2],ar[V+8>>2]=ar[N+8>>2],ar[N>>2]=0,ar[N+4>>2]=0,ar[N+8>>2]=0,m=1,g=v,v=E,M=241;break r}B=0}while(0);if(!(v=0|ar[Z>>2])){Z=0,g=B,v=E,M=238;break}if(!(m=0|qu(v,128,744,0))){Z=0,g=B,v=E,M=238;break}if((v=0|ar[w+8>>2])?bu(v):v=0,y=0|ar[i>>2],g=0|ar[y+24>>2],y=0|ar[y+28>>2],(0|g)<=-1){M=220;break e}if((0|y)<=-1){M=222;break e}if(p=0|Kt(m,g),M=0|qt(m,g),Z=0|$t(m,y),(0|(g=(0|M)<(0|g)?M:g+-1|0))<(0|(p=0<(0|p)?p:0))|(0|(m=(0|(m=0|Ao(m,y)))<(0|y)?m:y+-1|0))<(0|(Z=0<(0|Z)?Z:0))){if(ar[a>>2]=0,ar[4+a>>2]=0,ar[8+a>>2]=0,oo(A,2,120,a),0<=(0|tr[W>>0])){m=1,Z=v,g=B,v=E,M=239;break}vu(0|ar[a>>2]),m=1,Z=v,g=B,v=E,M=239;break}ar[t>>2]=0,cl(o,(ar[I>>2]=0)|ar[i>>2],p,g,Z,m,t),y=0|ar[(p=o)+4>>2],ar[(M=s)>>2]=ar[p>>2],ar[M+4>>2]=y,(0|tr[_>>0])<0?(tr[ar[N>>2]>>0]=0,ar[G>>2]=0):(tr[N>>0]=0,tr[_>>0]=0),Cu(N,0),ar[N>>2]=ar[C>>2],ar[N+4>>2]=ar[C+4>>2],ar[N+8>>2]=ar[C+8>>2];do{if(0|ar[s>>2])M=0|ar[(y=s)+4>>2],ar[(m=A)>>2]=ar[y>>2],ar[m+4>>2]=M,ar[V>>2]=ar[N>>2],ar[V+4>>2]=ar[N+4>>2],ar[V+8>>2]=ar[N+8>>2],ar[N>>2]=0,ar[N+4>>2]=0,ar[N+8>>2]=0,m=1;else{if(m=0|ar[t>>2],0|(g=0|ar[I>>2])&&bu(g),ar[i>>2]=m,m=0|ar[f>>2],ar[f>>2]=g,!m){m=0;break}du(m),m=0}}while(0);0|(g=0|ar[I>>2])&&du(g),M=m?(m=1,Z=v,g=B,v=E,239):(Z=v,g=B,v=E,238)}else g=Z=0,v=E,M=238}else v=g=Z=0,M=238}while(0);if(238==(0|M)&&(m=0,M=239),239==(0|M)&&(M=(Z&&du(Z),241)),241==(0|M)&&(M=0,g&&du(g)),0|v&&du(v),w=w+12|0,0|m){T=m;break A}if((0|w)==(0|X)){T=2;break A}}220==(0|M)?sr(31382,30203,1221,31362):222==(0|M)&&sr(31397,30203,1222,31362)}else T=2}while(0);if(0|(w=0|ar[Y>>2])&&du(w),D||du(Q),0|(w=0|ar[U>>2])){if((0|(v=0|ar[J>>2]))!=(0|w)){for(;m=v+-12|0,ar[J>>2]=m,(0|(v=(v=0|ar[v+-4>>2])?(du(v),0|ar[J>>2]):m))!=(0|w););w=0|ar[U>>2]}vu(w)}if(2!=(2|T))break}if(0|(m=0|ar[c>>2])){w=c,g=m;A:for(;;){for(v=g;!((0|ar[v+16>>2])>>>0>=r>>>0);)if(!(v=0|ar[v+4>>2]))break A;if(!(g=0|ar[v>>2])){w=v;break}w=v}if((0|w)!=(0|c)&&(0|ar[w+16>>2])>>>0<=r>>>0){w=c;A:for(;;){for(v=m;!((0|ar[v+16>>2])>>>0>=r>>>0);)if(!(v=0|ar[v+4>>2]))break A;if(!(m=0|ar[v>>2])){w=v;break}w=v}if((0|w)!=(0|c)&&(0|ar[w+16>>2])>>>0<=r>>>0||(w=c),v=0|ar[w+20>>2],(y=0==(0|(p=0|ar[w+24>>2])))||bu(p),w=0|ar[v+68>>2],(Z=0==(0|(g=0|ar[v+72>>2])))||bu(g),w){ar[U>>2]=0,Xl(S,e,(ar[(m=U+4|0)>>2]=0)|ar[w+20>>2],U,99,0);A:do{if(0|ar[S>>2])w=0|ar[(i=S)+4>>2],ar[(U=A)>>2]=ar[i>>2],ar[U+4>>2]=w,w=S+8|0,ar[(U=A+8|0)>>2]=ar[w>>2],ar[U+4>>2]=ar[w+4>>2],ar[U+8>>2]=ar[w+8>>2],ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,w=1;else{switch(0|ar[32+(0|ar[U>>2])>>2]){case 2:case 0:w=0;break;case 1:w=3;break;default:if(ar[b>>2]=0,ar[4+b>>2]=0,ar[8+b>>2]=0,oo(A,2,3003,b),0<=(0|tr[11+b>>0])){w=1;break A}vu(0|ar[b>>2]),w=1;break A}_o(0|ar[i>>2],U,w,6),w=0}}while(0);(0|tr[(v=S+8|0)+11>>0])<0&&vu(0|ar[v>>2]),0|(v=0|ar[m>>2])&&du(v),w||(M=289)}else M=289;if(289==(0|M)&&(w=0),Z||du(g),y||du(p),0|w)break}}U=0|ar[(i=56592)+4>>2],ar[(S=A)>>2]=ar[i>>2],ar[S+4>>2]=U,yu(A+8|0,56600)}}while(0);(0|tr[(w=8+s|0)+11>>0])<0&&vu(0|ar[w>>2]),0|u&&du(u),ur=(0<=(0|tr[l>>0])||vu(0|ar[d>>2]),k)}function Wl(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0;if(ur=(a=ur)+480|0,J=a+24|0,s=(o=a)+460|0,c=a+436|0,Z=a+280|0,k=a+424|0,v=a+264|0,t=a+256|0,p=a+96|0,y=a+240|0,B=a+80|0,E=a+68|0,Q=a+56|0,n=a+48|0,ar[(g=a+448|0)>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0;if(ur=(i=ur)+32|0,t=i+12|0,o=i,n=0|ar[(r|=0)>>2],(r=(0|ar[r+4>>2])-n|0)>>>0<8){for(r=0|hu(32),ar[t>>2]=r,ar[t+8>>2]=-2147483616,n=30033,e=(f=r)+(ar[t+4>>2]=25)|0;tr[f>>0]=0|tr[n>>0],n=n+1|0,(0|(f=f+1|0))<(0|e););return(tr[r+25>>0]=0,oo(A,2,118,t),0<=(0|tr[t+11>>0]))?ur=i:(vu(0|ar[t>>2]),ur=i)}t=0==(1&tr[n+1>>0]),or[e>>1]=1+(0|cr[n+2>>0]),or[e+2>>1]=1+(0|cr[n+3>>0]);do{if(!t){if(12<=r>>>0){ar[e+4>>2]=cr[n+5>>0]<<16|cr[n+4>>0]<<24|cr[n+6>>0]<<8|cr[n+7>>0],r=11,f=cr[n+9>>0]<<16|cr[n+8>>0]<<24|cr[n+10>>0]<<8;break}for(r=0|hu(32),ar[o>>2]=r,ar[o+8>>2]=-2147483616,n=30059,e=(f=r)+(ar[o+4>>2]=26)|0;tr[f>>0]=0|tr[n>>0],n=n+1|0,(0|(f=f+1|0))<(0|e););return(tr[r+26>>0]=0,oo(A,2,118,o),0<=(0|tr[o+11>>0]))?ur=i:(vu(0|ar[o>>2]),ur=i)}ar[e+4>>2]=cr[n+4>>0]<<8|cr[n+5>>0],r=7,f=cr[n+6>>0]<<8}while(0);ar[e+8>>2]=cr[n+r>>0]|f,t=0|ar[(e=56592)+4>>2],ar[(o=A)>>2]=ar[e>>2],ar[o+4>>2]=t,yu(A+8|0,56600),ur=i}(o,g,f),0|ar[o>>2])U=0|ar[(M=o)+4>>2],ar[(T=A)>>2]=ar[M>>2],ar[T+4>>2]=U,U=o+8|0,ar[(T=A+8|0)>>2]=ar[U>>2],ar[T+4>>2]=ar[U+4>>2],ar[T+8>>2]=ar[U+8>>2],ar[U>>2]=0,ar[U+4>>2]=0,ar[U+8>>2]=0;else{if(T=0|ar[(w=e+60|0)>>2],f=0|ar[T+76>>2],(U=0==(0|(T=0|ar[T+80>>2])))||bu(T),f){fo(c,f,r,1684630887),f=0|ar[(M=c+4|0)>>2],u=l=0|ar[c>>2],h=f,257<=(65535&(G=0|or[g>>1]))&&sr(31678,30203,133,31692),257<=(65535&(s=0|or[g+2>>1]))&&sr(31701,30203,139,31718),d=0|br(Y=65535&s,_=65535&G);A:do{if((f-l>>2|0)==(0|d)){e:do{if((0|u)!=(0|h)){d=0|ar[e+28>>2],k=e+32|0;r:do{if((0|d)==(0|k))s=0|ar[u>>2];else for(b=u;;){for(s=0|ar[b>>2],u=d;(0|ar[u+16>>2])!=(0|s);){if(f=0|ar[u+4>>2])for(;l=0|ar[f>>2];)f=l;else if(f=0|ar[(l=u+8|0)>>2],(0|ar[f>>2])!=(0|u))for(;N=0|ar[l>>2],f=0|ar[(l=N+8|0)>>2],(0|ar[f>>2])!=(0|N););if((0|f)==(0|k))break r;u=f}if((0|(b=b+4|0))==(0|h))break e}}while(0);l=Z+64|0,ar[(b=Z+8|0)>>2]=4524,u=Z+12|0,ar[Z>>2]=188,ar[l>>2]=208,Jf(Z+64|(ar[Z+4>>2]=0),u),ar[Z+136>>2]=0,ar[Z+140>>2]=-1,ar[Z>>2]=4504,ar[l>>2]=4544,ar[b>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(b=Z+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[Z+60>>2]=24,ar[J>>2]=0,ar[J+4>>2]=0,ar[J+8>>2]=0,Xe(u,J),(0|tr[J+11>>0])<0&&vu(0|ar[J>>2]),We(0|Lf(0|We(f=Z+8|0,31789,14),s),31804,23),Ie(v,u),oo(A,2,119,v),(0|tr[v+11>>0])<0&&vu(0|ar[v>>2]),ar[Z>>2]=4504,ar[l>>2]=4544,ar[f>>2]=4524,ar[u>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(u),bf(l);break A}}while(0);f=0|ar[w>>2],ar[Z>>2]=ar[f+52>>2],N=Z+4|0,l=0|ar[f+56>>2],(ar[N>>2]=l)&&(bu(l),f=0|ar[w>>2]),l=0|ar[f+44>>2],(R=0==(0|(F=0|ar[f+48>>2])))||bu(F),Lt(t,l,r,Z,1885960297),V=0!=(0|(f=0|ar[t>>2]))&&0!=(0|(m=0|qu(f,128,352,0)))?(f=0|ar[4+t>>2])?(bu(f),d=m,f):(d=m,0):d=0,h=0|ar[g+4>>2],k=0|ar[g+8>>2],(0|ar[c>>2])==(0|ar[M>>2])&&sr(31828,30203,1359,31854),s=e+72|0;e:do{if(h>>>0<(0|ar[s>>2])>>>0&&k>>>0<(0|ar[e+76>>2])>>>0){u=0|hu(80),ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u>>2]=6208,ar[(f=u+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[u+32>>2]=30025,ar[u+36>>2]=0,ar[u+40>>2]=0,ar[u+44>>2]=99,ar[u+48>>2]=99,s=u+52|0,ar[(b=u+72|0)>>2]=0,ar[u+76>>2]=0,ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s+12>>2]=0,ar[u+68>>2]=b,b=f,C=(s=u)+16|0,bu(u),su(u),l=0|ar[C>>2],ar[f>>2]=b,ar[C>>2]=s,0|l&&ku(l),du(u),ar[i>>2]=b,l=0|ar[(C=i+4|0)>>2],ar[C>>2]=s,l?(du(l),f=0|ar[(b=i)>>2]):b=i,yo(f,h,k,1,3),u=0!=(0|d);do{if(u){if(f=0|ar[d+56>>2],1<=((0|ar[d+60>>2])-f|0)){l=0|cr[f>>0];break}for(ar[B>>2]=0,ar[B+4>>2]=0,f=(ar[B+8>>2]=0)|hu(48),ar[B>>2]=f,ar[B+8>>2]=-2147483600,u=31877,b=(l=f)+(ar[B+4>>2]=37)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););if(tr[f+37>>0]=0,oo(A,2,130,B),0<=(0|tr[B+11>>0]))break e;vu(0|ar[B>>2]);break e}l=8}while(0);Bo(0|ar[b>>2],3,h,k,l);do{if(u){if(f=I=0|ar[d+56>>2],3!=((0|ar[d+60>>2])-I|0))break;if((0|cr[f+1>>0])==(0|l)&&(0|cr[f+2>>0])==(0|l))break;for(ar[E>>2]=0,ar[E+4>>2]=0,f=(ar[E+8>>2]=0)|hu(64),ar[E>>2]=f,ar[E+8>>2]=-2147483584,u=31915,b=(l=f)+(ar[E+4>>2]=51)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););if(tr[f+51>>0]=0,oo(A,2,130,E),0<=(0|tr[E+11>>0]))break e;vu(0|ar[E>>2]);break e}}while(0);Bo(0|ar[b>>2],4,h,k,l),Bo(0|ar[b>>2],5,h,k,l),Z=e+32|0,p=4+n|0,B=(y=J+8|0)+11|0,E=A+8|0,X=Q+8|0,W=Q+4|0,I=Q+11|0;r:do{if(G<<16>>16){g=f=m=0;i:for(;;){for(v=w=r=0;!((0|Y)<=(0|r));){if(d=0|ar[(0|ar[c>>2])+(f<<2)>>2],!(u=0|ar[Z>>2]))break i;l=Z;f:for(;;){for(b=u;!((0|ar[b+16>>2])>>>0>=d>>>0);){if(!(u=0|ar[b+4>>2]))break f;b=u}if(!(u=0|ar[b>>2])){l=b;break}l=b}if((0|l)==(0|Z))break i;if(d>>>0<(0|ar[l+16>>2])>>>0)break i;u=0|ar[l+20>>2],(h=0==(0|(k=0|ar[l+24>>2])))||bu(k),s=0|ar[u+24>>2],b=0|ar[u+28>>2],ar[n>>2]=ar[i>>2],l=0|ar[C>>2],(ar[p>>2]=l)?(bu(l),Gl(J,e,d,n,v,g),du(l)):Gl(J,e,d,n,v,g);do{if(0|ar[J>>2])u=0|ar[(l=J)+4>>2],ar[(b=A)>>2]=ar[l>>2],ar[b+4>>2]=u,ar[E>>2]=ar[y>>2],ar[E+4>>2]=ar[y+4>>2],ar[E+8>>2]=ar[y+8>>2],ar[y>>2]=0,ar[y+4>>2]=0,ar[y+8>>2]=0,b=w,u=v,l=1;else{if(l=s+v|0,f=f+1|0,0<=(0|tr[B>>0])){u=l,l=0;break}vu(0|ar[y>>2]),u=l,l=0}}while(0);if(h||du(k),l)break e;r=r+1|0,w=b,v=u}if((0|_)<=(0|(m=m+1|0)))break r;g=w+g|0}for(ar[Q>>2]=0,ar[Q+4>>2]=0,f=(ar[Q+8>>2]=0)|hu(48),ar[Q>>2]=f,ar[X>>2]=-2147483600,u=31967,b=(l=f)+(ar[W>>2]=32)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););if(tr[f+32>>0]=0,oo(A,2,119,Q),0<=(0|tr[I>>0]))break e;vu(0|ar[Q>>2]);break e}}while(0);J=0|ar[(Q=56592)+4>>2],ar[A>>2]=ar[Q>>2],ar[A+4>>2]=J,yu(E,56600)}else D=51}while(0);51==(0|D)&&(l=p+64|0,ar[(b=p+8|0)>>2]=4524,u=p+12|0,ar[p>>2]=188,ar[l>>2]=208,Jf(p+64|(ar[p+4>>2]=0),u),ar[p+136>>2]=0,ar[p+140>>2]=-1,ar[p>>2]=4504,ar[l>>2]=4544,ar[b>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(b=p+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[p+60>>2]=24,ar[J>>2]=0,ar[J+4>>2]=0,ar[J+8>>2]=0,Xe(u,J),(0|tr[J+11>>0])<0&&vu(0|ar[J>>2]),J=0|We(0|Lf(0|We(0|Lf(0|We(f=p+8|0,30366,11),h),30170,1),k),30378,32),J=0|We(0|Lf(J,0|ar[s>>2]),30170,1),We(0|Lf(J,0|ar[e+76>>2]),30086,1),Ie(y,u),oo(A,6,1e3,y),(0|tr[y+11>>0])<0&&vu(0|ar[y>>2]),ar[p>>2]=4504,ar[l>>2]=4544,ar[f>>2]=4524,ar[u>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(u),bf(l)),0|V&&du(V),0|(f=0|ar[4+t>>2])&&du(f),R||du(F),0|(f=0|ar[N>>2])&&du(f)}else l=Z+64|0,ar[(b=Z+8|0)>>2]=4524,u=Z+12|0,ar[Z>>2]=188,ar[l>>2]=208,Jf(Z+64|(ar[Z+4>>2]=0),u),ar[Z+136>>2]=0,ar[Z+140>>2]=-1,ar[Z>>2]=4504,ar[l>>2]=4544,ar[b>>2]=4524,Sf(u),ar[u>>2]=4340,ar[(b=Z+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[Z+60>>2]=24,ar[J>>2]=0,ar[J+4>>2]=0,ar[J+8>>2]=0,Xe(u,J),(0|tr[J+11>>0])<0&&vu(0|ar[J>>2]),J=0|We(0|Pf(0|We(0|xf(0|We(0|xf(0|We(f=Z+8|0,31730,17),G),30170,1),s),31748,1),d),31750,17),We(0|Lf(J,(0|ar[M>>2])-(0|ar[c>>2])>>2),31768,20),Ie(k,u),oo(A,2,119,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2]),ar[Z>>2]=4504,ar[l>>2]=4544,ar[f>>2]=4524,ar[u>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(u),bf(l)}while(0);0|(c=0|ar[c>>2])&&((0|(f=0|ar[M>>2]))!=(0|c)&&(ar[M>>2]=f+(~((f+-4-c|0)>>>2)<<2)),vu(c))}else{for(ar[s>>2]=0,ar[s+4>>2]=0,c=(ar[s+8>>2]=0)|hu(64),ar[s>>2]=c,ar[s+8>>2]=-2147483584,u=31629,b=(l=c)+(ar[s+4>>2]=48)|0;tr[l>>0]=0|tr[u>>0],u=u+1|0,(0|(l=l+1|0))<(0|b););tr[c+48>>0]=0,oo(A,2,113,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2])}U||du(T)}ur=(0<=(0|tr[(c=o+8|0)+11>>0])||vu(0|ar[c>>2]),a)}function Il(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+64|0,c=o+32|0,n=o+44|0,l=o+20|0,f=o,u=0|ar[(e|=0)+60>>2],a=0|ar[u+76>>2],(t=0==(0|(u=0|ar[u+80>>2])))||bu(u),a){if(fo(n,a,r,1684630887),c=4+n|0,a=0|ar[n>>2],4!=((0|ar[c>>2])-a|0)){for(ar[l>>2]=0,ar[l+4>>2]=0,a=(ar[l+8>>2]=0)|hu(48),ar[l>>2]=a,ar[l+8>>2]=-2147483600,e=31581,i=(r=a)+(ar[l+4>>2]=47)|0;tr[r>>0]=0|tr[e>>0],e=e+1|0,(0|(r=r+1|0))<(0|i););tr[a+47>>0]=0,oo(A,2,119,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2])}else Xl(f,e,0|ar[a>>2],i,1,0),i=0|ar[(e=f)+4>>2],ar[(l=A)>>2]=ar[e>>2],ar[l+4>>2]=i,l=f+8|0,ar[(A=A+8|0)>>2]=ar[l>>2],ar[A+4>>2]=ar[l+4>>2],ar[A+8>>2]=ar[l+8>>2];0|(a=0|ar[n>>2])&&((0|(r=0|ar[c>>2]))!=(0|a)&&(ar[c>>2]=r+(~((r+-4-a|0)>>>2)<<2)),vu(a))}else{for(ar[c>>2]=0,ar[c+4>>2]=0,a=(ar[c+8>>2]=0)|hu(64),ar[c>>2]=a,ar[c+8>>2]=-2147483584,e=31532,i=(r=a)+(ar[c+4>>2]=48)|0;tr[r>>0]=0|tr[e>>0],e=e+1|0,(0|(r=r+1|0))<(0|i););tr[a+48>>0]=0,oo(A,2,113,c),(0|tr[c+11>>0])<0&&vu(0|ar[c>>2])}ur=(t||du(u),o)}function Cl(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0;if(ur=(l=ur)+288|0,X=l+168|0,s=l+264|0,a=l+276|0,w=l+232|0,o=l+144|0,d=l+220|0,k=(W=l)+208|0,n=l+200|0,t=l+188|0,V=0|ar[(e|=0)+60>>2],u=0|ar[V+76>>2],(c=0==(0|(V=0|ar[V+80>>2])))||bu(V),u){fo(a,u,r,1684630887),ar[(I=w+20|0)>>2]=0,ar[(C=w+24|0)>>2]=0,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;for(ur=(n=ur)+208|0,u=n+192|0,t=(f=n)+32|0,b=n+48|0,s=n+20|0,o=0|hu(32),ar[t>>2]=o,ar[t+8>>2]=-2147483616,c=30088,l=(a=o)+(ar[t+4>>2]=29)|0;tr[a>>0]=0|tr[c>>0],c=c+1|0,(0|(a=a+1|0))<(0|l););tr[o+29>>0]=0,oo(f,2,118,t),(0|tr[t+11>>0])<0&&vu(0|ar[t>>2]),l=0|ar[i>>2],o=(0|ar[i+4>>2])-l|0;do{if(o>>>0<10)w=0|ar[(i=f)+4>>2],ar[(r=A)>>2]=ar[i>>2],ar[r+4>>2]=w,r=A+8|0,A=f+8|0,ar[r>>2]=ar[A>>2],ar[r+4>>2]=ar[A+4>>2],ar[r+8>>2]=ar[A+8>>2],ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;else{if(w=0|tr[l>>0],tr[e>>0]=w,t=0|tr[l+1>>0],tr[e+1>>0]=t,w<<24>>24){o=b+64|0,ar[(c=b+8|0)>>2]=4524,a=b+12|0,ar[b>>2]=188,ar[o>>2]=208,Jf(b+64|(ar[b+4>>2]=0),a),ar[b+136>>2]=0,ar[b+140>>2]=-1,ar[b>>2]=4504,ar[o>>2]=4544,ar[c>>2]=4524,Sf(a),ar[a>>2]=4340,ar[(c=b+44|0)>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,ar[c+12>>2]=0,ar[b+60>>2]=24,ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,Xe(a,u),(0|tr[u+11>>0])<0&&vu(0|ar[u>>2]),r=0|We(t=b+8|0,30118,27),We(0|Pf(r,0|cr[e>>0]),30146,23),Ie(s,a),oo(A,4,3002,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2]),ar[b>>2]=4504,ar[o>>2]=4544,ar[t>>2]=4524,ar[a>>2]=4340,(0|tr[c+11>>0])<0&&vu(0|ar[c>>2]),kf(a),bf(o);break}if(((10+((u=(b=t<<1&2)+2<<24>>24)<<1&255)&255)+(0|br(r<<1,w=255&u))|0)>>>0>o>>>0){w=0|ar[(i=f)+4>>2],ar[(r=A)>>2]=ar[i>>2],ar[r+4>>2]=w,r=A+8|0,A=f+8|0,ar[r>>2]=ar[A>>2],ar[r+4>>2]=ar[A+4>>2],ar[r+8>>2]=ar[A+8>>2],ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0;break}for(or[e+2>>1]=cr[l+3>>0]|cr[l+2>>0]<<8,or[e+4>>1]=cr[l+5>>0]|cr[l+4>>0]<<8,or[e+6>>1]=cr[l+7>>0]|cr[l+6>>0]<<8,or[e+8>>1]=cr[l+9>>0]|cr[l+8>>0]<<8,a=255&b,t=0,o=w,c=10;o=o+-1|0,t=cr[l+c>>0]|t<<8,o;)c=c+1|0;for(k=12|a,ar[e+12>>2]=t,o=k+a|0,c=0,t=w,a=k;t=t+-1|0,c=cr[l+a>>0]|c<<8,t;)a=a+1|0;if(l=o+2|0,ar[e+16>>2]=c,k=e+20|0,r>>>0<=(o=(c=0|ar[(t=e+24|0)>>2])-(a=0|ar[k>>2])>>3)>>>0?(r>>>0>>0&&(0|c)!=(0|(d=a+(r<<3)|0))&&(ar[t>>2]=c+(~((c+-8-d|0)>>>3)<<3)),0|r&&(h=25)):(wl(k,r-o|0),h=25),25==(0|h))for(d=~(e=128<<(u<<3&255)-8),s=4+(b<<1&255)&255,b=0|ar[i>>2],u=0;;){for(a=0,t=w,o=l;t=t+-1|0,a=cr[b+o>>0]|a<<8,t;)o=o+1|0;for(c=0|ar[k>>2],ar[c+(u<<3)>>2]=(a&d)-(0==(a&e|0)?0:e),a=(o=w)+l|(t=0);o=o+-1|0,t=cr[b+a>>0]|t<<8,o;)a=a+1|0;if(ar[c+(u<<3)+4>>2]=(t&d)-(0==(t&e|0)?0:e),(0|(u=u+1|0))==(0|r))break;l=s+l|0}w=0|ar[(i=56592)+4>>2],ar[(r=A)>>2]=ar[i>>2],ar[r+4>>2]=w,yu(A+8|0,56600)}}while(0);ur=(0<=(0|tr[(t=f+8|0)+11>>0])||vu(0|ar[t>>2]),n)}(o,w,((ar[w+28>>2]=0)|ar[(G=4+a|0)>>2])-(0|ar[a>>2])>>2,f);A:do{if(0|ar[o>>2])W=0|ar[(e=o)+4>>2],ar[(F=A)>>2]=ar[e>>2],ar[F+4>>2]=W,F=8+o|0,ar[(A=A+8|0)>>2]=ar[F>>2],ar[A+4>>2]=ar[F+4>>2],ar[A+8>>2]=ar[F+8>>2],ar[F>>2]=0,ar[F+4>>2]=0,ar[F+8>>2]=0;else{if(y=w+20|0,((0|ar[G>>2])-(0|ar[a>>2])>>2|0)!=((0|ar[C>>2])-(0|ar[y>>2])>>3|0)){for(ar[d>>2]=0,ar[d+4>>2]=0,u=(ar[d+8>>2]=0)|hu(80),ar[d>>2]=u,ar[d+8>>2]=-2147483568,f=31462,b=(r=u)+(ar[d+4>>2]=69)|0;tr[r>>0]=0|tr[f>>0],f=f+1|0,(0|(r=r+1|0))<(0|b););if(tr[u+69>>0]=0,oo(A,2,121,d),0<=(0|tr[d+11>>0]))break;vu(0|ar[d>>2]);break}if(d=0|ar[w+12>>2],h=0|ar[w+16>>2],d>>>0<(0|ar[(s=e+72|0)>>2])>>>0&&h>>>0<(0|ar[e+76>>2])>>>0){if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(u=f+12|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,ar[f+32>>2]=30025,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,s=f+52|0,ar[(b=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s+12>>2]=0,ar[f+68>>2]=b,b=u,p=(s=f)+16|0,bu(f),su(f),r=0|ar[p>>2],ar[u>>2]=b,ar[p>>2]=s,0|r&&ku(r),du(f),ar[i>>2]=b,r=0|ar[(p=i+4|0)>>2],ar[p>>2]=s,r?(du(r),u=0|ar[(p=i)>>2]):p=i,yo(u,d,h,1,3),Bo(0|ar[p>>2],3,d,h,8),Bo(0|ar[p>>2],4,d,h,8),Bo(0|ar[p>>2],5,d,h,8),ll(X,0|ar[p>>2],0|or[w+2>>1],0|or[w+4>>1],0|or[w+6>>1],0|or[w+8>>1]),u=0|ar[(Z=X)+4>>2],ar[(g=o)>>2]=ar[Z>>2],ar[g+4>>2]=u,u=X+8|0,(0|tr[(Z=(g=8+o|0)+11|0)>>0])<0?(tr[ar[g>>2]>>0]=0,ar[12+o>>2]=0):(tr[g>>0]=0,tr[Z>>0]=0),Cu(g,0),ar[g>>2]=ar[u>>2],ar[g+4>>2]=ar[u+4>>2],ar[g+8>>2]=ar[u+8>>2],0|ar[o>>2]){e=0|ar[(X=o)+4>>2],ar[(W=A)>>2]=ar[X>>2],ar[W+4>>2]=e,ar[(A=A+8|0)>>2]=ar[g>>2],ar[A+4>>2]=ar[g+4>>2],ar[A+8>>2]=ar[g+8>>2],ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0;break}u=0|ar[a>>2];e:do{if((0|ar[G>>2])==(0|u))E=(B=A)+8|0;else{b=X+4|0,d=12+o|0,k=4+n|0,i=W+4|0,h=11+t|0,w=s=W+8|0,v=A+8|0,m=4+o|0,f=0;r:for(;;){ar[X>>2]=0,Xl(W,e,(ar[b>>2]=0)|ar[u+(f<<2)>>2],X,1,0),u=0|ar[(F=W)+4>>2],ar[(r=o)>>2]=ar[F>>2],ar[r+4>>2]=u,(0|tr[Z>>0])<0?(tr[ar[g>>2]>>0]=0,ar[d>>2]=0):(tr[g>>0]=0,tr[Z>>0]=0),Cu(g,0),ar[g>>2]=ar[s>>2],ar[g+4>>2]=ar[s+4>>2],ar[g+8>>2]=ar[s+8>>2];i:do{if((0|ar[o>>2])==(0|ar[14148])){ar[n>>2]=0,me(W,X,1,3,n,ar[k>>2]=0),u=0|ar[W>>2],F=0|ar[i>>2],ar[W>>2]=0,ar[i>>2]=0,ar[X>>2]=u,u=0|ar[b>>2],ar[b>>2]=F;do{if(0|u){if(du(u),!(u=0|ar[i>>2]))break;du(u)}}while(0);if(0|(u=0|ar[k>>2])&&du(u),!(0|ar[X>>2])){if(ar[t>>2]=0,ar[4+t>>2]=0,ar[8+t>>2]=0,oo(A,4,3003,t),0<=(0|tr[h>>0])){u=1;break}vu(0|ar[t>>2]),u=1;break}if(u=F=0|ar[y>>2],(0|ar[C>>2])-F>>3>>>0<=f>>>0)break r;ul(W,0|ar[p>>2],X,0|ar[u+(f<<3)>>2],0|ar[u+(f<<3)+4>>2]),r=0|ar[(u=W)+4>>2],ar[(F=o)>>2]=ar[u>>2],ar[F+4>>2]=r,(0|tr[Z>>0])<0?(tr[ar[g>>2]>>0]=0,ar[d>>2]=0):(tr[g>>0]=0,tr[Z>>0]=0),Cu(g,0),ar[g>>2]=ar[w>>2],ar[g+4>>2]=ar[w+4>>2],ar[g+8>>2]=ar[w+8>>2];f:do{switch(0|ar[o>>2]){case 0:u=0;break i;case 2:if(122!=(0|ar[m>>2]))break f;F=0|ar[(r=56592)+4>>2],ar[(u=o)>>2]=ar[r>>2],ar[u+4>>2]=F,Eu(g,56600),u=0;break i}}while(0);F=0|ar[(r=o)+4>>2],ar[(u=A)>>2]=ar[r>>2],ar[u+4>>2]=F,ar[v>>2]=ar[g>>2],ar[v+4>>2]=ar[g+4>>2],ar[v+8>>2]=ar[g+8>>2],ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,u=1}else F=0|ar[(r=o)+4>>2],ar[(u=A)>>2]=ar[r>>2],ar[u+4>>2]=F,ar[v>>2]=ar[g>>2],ar[v+4>>2]=ar[g+4>>2],ar[v+8>>2]=ar[g+8>>2],ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,u=1}while(0);if(0|(r=0|ar[b>>2])&&du(r),f=f+1|0,0|u)break A;if(u=0|ar[a>>2],f>>>0>=(0|ar[G>>2])-u>>2>>>0){B=A,E=v;break e}}sr(30172,30203,382,30219)}}while(0);A=0|ar[(W=o)+4>>2],ar[(F=B)>>2]=ar[W>>2],ar[F+4>>2]=A,ar[E>>2]=ar[g>>2],ar[E+4>>2]=ar[g+4>>2],ar[E+8>>2]=ar[g+8>>2],ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0;break}r=W+64|0,ar[(b=W+8|0)>>2]=4524,f=W+12|0,ar[W>>2]=188,ar[r>>2]=208,Jf(W+64|(ar[W+4>>2]=0),f),ar[W+136>>2]=0,ar[W+140>>2]=-1,ar[W>>2]=4504,ar[r>>2]=4544,ar[b>>2]=4524,Sf(f),ar[f>>2]=4340,ar[(b=W+44|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[W+60>>2]=24,ar[X>>2]=0,ar[X+4>>2]=0,ar[X+8>>2]=0,Xe(f,X),(0|tr[X+11>>0])<0&&vu(0|ar[X>>2]),F=0|We(0|Lf(0|We(0|Lf(0|We(u=W+8|0,30366,11),d),30170,1),h),30378,32),F=0|We(0|Lf(F,0|ar[s>>2]),30170,1),We(0|Lf(F,0|ar[e+76>>2]),30086,1),Ie(k,f),oo(A,6,1e3,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2]),ar[W>>2]=4504,ar[r>>2]=4544,ar[u>>2]=4524,ar[f>>2]=4340,(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),kf(f),bf(r)}}while(0);(0|tr[(u=8+o|0)+11>>0])<0&&vu(0|ar[u>>2]),0|(u=0|ar[I>>2])&&((0|(r=0|ar[C>>2]))!=(0|u)&&(ar[C>>2]=r+(~((r+-8-u|0)>>>3)<<3)),vu(u)),0|(u=0|ar[a>>2])&&((0|(r=0|ar[G>>2]))!=(0|u)&&(ar[G>>2]=r+(~((r+-4-u|0)>>>2)<<2)),vu(u))}else{for(ar[s>>2]=0,ar[s+4>>2]=0,u=(ar[s+8>>2]=0)|hu(64),ar[s>>2]=u,ar[s+8>>2]=-2147483584,f=31413,b=(r=u)+(ar[s+4>>2]=48)|0;tr[r>>0]=0|tr[f>>0],f=f+1|0,(0|(r=r+1|0))<(0|b););tr[u+48>>0]=0,oo(A,2,113,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2])}ur=(c||du(V),l)}function Gl(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;if(ur=(l=ur)+80|0,Z=(c=l)+52|0,k=l+36|0,t=l+48|0,o=l+32|0,h=l+20|0,ar[(g=l+64|0)>>2]=0,Xl(c,e,r,g,(ar[(a=g+4|0)>>2]=0)|ar[32+(0|ar[i>>2])>>2],0),(0|ar[c>>2])==(0|ar[14148])){e=0|ar[i>>2],s=0|ar[e+24>>2],d=0|ar[e+28>>2],r=0|ar[g>>2],u=0|ar[r+24>>2],r=0|ar[r+28>>2],(0|u)<=-1&&sr(32e3,30203,1540,32015),(0|r)<=-1&&sr(32043,30203,1541,32015),m=0|ar[e+36>>2],Io(Z,e),e=0|ar[g>>2];A:do{if((0|m)!=(0|ar[e+36>>2])){for(ar[k>>2]=0,ar[k+4>>2]=0,e=(ar[k+8>>2]=0)|hu(64),ar[k>>2]=e,ar[k+8>>2]=-2147483584,u=32059,b=(r=e)+(ar[k+4>>2]=58)|0;tr[r>>0]=0|tr[u>>0],u=u+1|0,(0|(r=r+1|0))<(0|b););tr[e+58>>0]=0,oo(A,2,127,k),(0|tr[k+11>>0])<0&&vu(0|ar[k>>2])}else{b=0|ar[Z>>2],m=Z+4|0;e:do{if((0|b)!=(0|m)){if(k=(0|(k=s-f|0))<(0|u)?k:u,w=0<(0|(v=(0|(v=d-n|0))<(0|r)?v:r)),!((0|f)<(0|s)&(0|n)<(0|d))){Fo(e,g=0|ar[b+16>>2],t),Fo(0|ar[i>>2],g,o),ar[h>>2]=0,ar[h+4>>2]=0,ar[h+8>>2]=0,oo(A,2,118,h),(0|tr[h+11>>0])<0&&vu(0|ar[h>>2]);break A}for(;;){if(u=0|Fo(e,s=0|ar[b+16>>2],t),e=0|Fo(0|ar[i>>2],s,o),s=0|br((255&(0|Go(0|ar[g>>2],3)))>>>3&255,k),r=0|Go(0|ar[g>>2],3),w)for(r=e+(0|br((255&r)>>>3&255,f))|0,e=0;hb(0|(h=r+(0|br(0|ar[o>>2],e+n|0))|0),u+(0|br(0|ar[t>>2],e))|0,0|s),(0|(e=e+1|0))<(0|v););if(e=0|ar[b+4>>2])for(;r=0|ar[e>>2];)e=r;else if(e=0|ar[(r=b+8|0)>>2],(0|ar[e>>2])!=(0|b))for(;h=0|ar[r>>2],e=0|ar[(r=h+8|0)>>2],(0|ar[e>>2])!=(0|h););if((0|e)==(0|m))break e;b=e,e=0|ar[g>>2]}}}while(0);n=0|ar[(f=56592)+4>>2],ar[(g=A)>>2]=ar[f>>2],ar[g+4>>2]=n,yu(A+8|0,56600)}}while(0);Co(Z,0|ar[Z+4>>2]),(0|tr[c+8+11>>0])<0&&vu(0|ar[c+8>>2])}else g=0|ar[(n=c)+4>>2],ar[(Z=A)>>2]=ar[n>>2],ar[Z+4>>2]=g,Z=c+8|0,ar[(A=A+8|0)>>2]=ar[Z>>2],ar[A+4>>2]=ar[Z+4>>2],ar[A+8>>2]=ar[Z+8>>2],ar[Z>>2]=0,ar[Z+4>>2]=0,ar[Z+8>>2]=0;ur=((e=0|ar[a>>2])&&du(e),l)}function Vl(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;if(ur=(f=ur)+80|0,i=f+76|0,b=f+72|0,d=(s=f)+64|0,YA(n=f+32|0,u=0|ar[(e|=0)>>2],(0|ar[(t=e+4|0)>>2])-u|0),(0|(u=0|QA(n,32)))<=(0|(n=((0|ar[n+24>>2])/-8|0)+((0|ar[n+4>>2])-(0|ar[n+8>>2]))|0)))return b=0|ar[(b=r=56592)>>2],r=0|ar[(r=r+4|0)>>2],ar[(s=d=A)>>2]=b,ar[(d=d+4|0)>>2]=r,yu(A=A+8|0,56600),void(ur=f);if(YA(s,(u=0|ar[e>>2])+n|0,(0|ar[t>>2])-(u+n)|0),QA(s,32),u=(0|QA(s,8))>>>1,function(A,e){e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if((0|(i=0|ar[(r=(A|=0)+24|0)>>2]))<(0|e)){i=64-i|0,n=A+8|0;A:do{if(7<(0|i)){t=A+16|0,f=0|ar[n>>2];do{if(!f)break A;c=0|ar[A>>2],ar[A>>2]=c+1,c=0|cr[c>>0],f=f+-1|0,ar[n>>2]=f,c=0|db(0|c,0,0|(i=i+-8|0)),a=ar[(l=t)+4>>2]|D,ar[(o=t)>>2]=ar[l>>2]|c,ar[o+4>>2]=a}while(7<(0|i))}}while(0);i=64-i|0,ar[r>>2]=i}c=0|db(0|ar[(c=l=A+16|0)>>2],0|ar[c+4>>2],0|e),ar[l>>2]=c,ar[l+4>>2]=D,ar[r>>2]=i-e}(s,8),((255&u)-39|0)>>>0<2&&(u=0|QA(s,8),QA(s,8),177==(255&u|0))){for(u=0|hu(80),ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u>>2]=6448,t=(n=e=u+16|0)+64|0;(0|(n=n+4|(ar[n>>2]=0)))<(0|t););ar[e>>2]=6476,l=e,tr[(c=u)+24>>0]=1,ar[(e=u+68|0)>>2]=0,ar[u+72>>2]=0,k=255&((ar[u+76>>2]=0)|QA(s,1)),tr[(n=u+25|0)>>0]=k,k=255&(0|QA(s,1)),tr[(t=u+26|0)>>0]=k,k=255&(0|QA(s,1)),tr[(o=u+27|0)>>0]=k,k=255&(0|QA(s,1)),tr[(a=u+28|0)>>0]=k,DA(s,i),ar[u+64>>2]=ar[i>>2],(0!=(0|tr[o>>0])||0|tr[a>>0])&&(DA(s,b),ar[e>>2]=ar[b>>2]),0|tr[n>>0]&&(h=+Fl(s),Q[u+32>>3]=h),0|tr[t>>0]&&(h=+Fl(s),Q[u+40>>3]=h),0|tr[o>>0]&&(h=+Fl(s),Q[u+48>>3]=h),0|tr[a>>0]&&(h=+Fl(s),Q[u+56>>3]=h),ar[d>>2]=l,ar[(t=d+4|0)>>2]=c,(0|(n=0|ar[(e=r+4|0)>>2]))==(0|ar[r+8>>2])?function(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;f=0|ar[(u=4+(A|=0)|0)>>2],n=0|ar[A>>2],536870911<(t=1+(r=f-(c=n)>>3)|0)>>>0&&zl();l=(0|ar[(i=A+8|0)>>2])-n|0,o=l>>2,o=l>>3>>>0<268435455?o>>>0>>0?t:o:536870911;do{if(o){if(!(536870911>>0)){a=0|hu(o<<3);break}Zu(u=0|X(8),44519),ar[u>>2]=17660,I(0|u,4016,428)}else a=0}while(0);l=a+(o<<3)|0,ar[(t=n=a+(r<<3)|0)>>2]=ar[e>>2],o=0|ar[e+4>>2],o=(ar[a+(r<<3)+4>>2]=o)?(bu(o),f=0|ar[u>>2],0|ar[A>>2]):c;if(a=n+8|0,(0|f)!=(0|o)){for(;f=(c=f)+-8|0,ar[n+-8>>2]=ar[f>>2],c=c+-4|0,ar[n+-4>>2]=ar[c>>2],ar[f>>2]=0,ar[c>>2]=0,t=n=t+-8|0,(0|f)!=(0|o););o=0|ar[A>>2],f=0|ar[u>>2]}if(ar[A>>2]=t,ar[u>>2]=a,ar[i>>2]=l,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-4>>2],f=f+-8|0,0|n&&du(n),(0|f)!=(0|t););if(!o)return;vu(o)}(r,d):(ar[n>>2]=l,bu(ar[n+4>>2]=u),ar[e>>2]=8+(0|ar[e>>2])),0|(e=0|ar[t>>2])&&du(e)}s=0|ar[(s=d=56592)>>2],d=0|ar[(d=d+4|0)>>2],ar[(r=k=A)>>2]=s,ar[(k=k+4|0)>>2]=d,yu(k=A+8|0,56600),ur=f}function Fl(A){var e,r,i,f=0,n=0,t=0;return e=0|QA(A|=0,1),r=0|QA(A,7),i=0|QA(A,5),A=0|QA(A,f=1+i|0),0<(0|r)?(t=+Af(1,r-31|0),n=-(t*=(0|A)/Af(1,f)+1),+(n=(f=0==(0|e))?t:n)):(t=-(n=(0|A)*Af(1,-31-i|0)),+(t=(f=0==(0|e))?n:t))}function Rl(A){A|=0;var e=0,r=0,i=0,f=0,n=0,t=0;if(57284==(0|(r=0|ar[14320])))return(A=0)|A;n=e=0;do{if(t=0|ar[r+16>>2],e=(f=(0|n)<(0|(i=0|jb[127&ar[t+16>>2]](A))))?t:e,n=f?i:n,i=0|ar[r+4>>2])for(r=i;i=0|ar[r>>2];)r=i;else if(f=0|ar[(i=r+8|0)>>2],(0|ar[f>>2])==(0|r))r=f;else for(;t=0|ar[i>>2],r=0|ar[(i=t+8|0)>>2],(0|ar[r>>2])!=(0|t););}while(57284!=(0|r));return 0|e}function Nl(A,e){e|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;o=0|ar[(b=(A|=0)+4|0)>>2],r=f=0|ar[A>>2],119304647<(n=(l=((t=o)-f|0)/36|0)+1|0)>>>0&&zl(),a=(u=((0|ar[(i=A+8|0)>>2])-f|0)/36|0)<<1,a=u>>>0<59652323?a>>>0>>0?n:a:119304647;do{if(a){if(!(119304647>>0)){c=0|hu(36*a|0);break}Zu(b=0|X(8),44519),ar[b>>2]=17660,I(0|b,4016,428)}else c=0}while(0);if(u=c+(36*a|0)|0,ar[(f=n=c+(36*l|0)|0)>>2]=ar[e>>2],ar[n+4>>2]=ar[e+4>>2],ar[n+8>>2]=ar[e+8>>2],ar[n+12>>2]=ar[e+12>>2],s=e+16|0,ar[c+(36*l|0)+16>>2]=ar[s>>2],a=e+20|0,ar[c+(36*l|0)+20>>2]=ar[a>>2],ar[s>>2]=0,a=c+(36*l|(ar[a>>2]=0))+24|0,l=e+24|0,ar[a>>2]=ar[l>>2],ar[a+4>>2]=ar[l+4>>2],ar[a+8>>2]=ar[l+8>>2],a=n+36|0,(0|t)!=(0|r)){for(;t=(l=t)+-36|0,ar[(e=n+-36|0)>>2]=ar[t>>2],ar[e+4>>2]=ar[t+4>>2],ar[e+8>>2]=ar[t+8>>2],ar[e+12>>2]=ar[t+12>>2],e=l+-20|0,ar[n+-20>>2]=ar[e>>2],s=l+-16|0,ar[n+-16>>2]=ar[s>>2],ar[e>>2]=0,l=l+-12|(ar[s>>2]=0),ar[(s=n+-12|0)>>2]=ar[l>>2],ar[s+4>>2]=ar[l+4>>2],ar[s+8>>2]=ar[l+8>>2],f=n=f+-36|0,(0|t)!=(0|r););o=0|ar[A>>2]}if(ar[A>>2]=f,f=0|ar[b>>2],ar[b>>2]=a,ar[i>>2]=u,(0|f)!=(0|(t=o)))for(;n=0|ar[f+-16>>2],f=f+-36|0,0|n&&du(n),(0|f)!=(0|t););o&&vu(o)}function _l(A,e,r,i,f,n,t,o,a,c){e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0;var l,u,b;if(u=ur=(b=ur)+31&-32,ur=ur+16|0,l=12+u|0,A|=0){if(r=0|un(r,60968),e){for(fs[63&ar[44+(0|ar[r>>2])>>2]](l,r),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[32+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=a+8+3|0)>>0])<0?(i=0|ar[a>>2],ar[l>>2]=0,ln(i,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u)}else{for(fs[63&ar[40+(0|ar[r>>2])>>2]](l,r),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[28+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=a+8+3|0)>>0])<0?(i=0|ar[a>>2],ar[l>>2]=0,ln(i,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u)}for(A=0|jb[127&ar[12+(0|ar[r>>2])>>2]](r),ar[f>>2]=A,A=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),ar[n>>2]=A,fs[63&ar[20+(0|ar[r>>2])>>2]](u,r),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);for(Bu(u),fs[63&ar[24+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=o+8+3|0)>>0])<0?(t=0|ar[o>>2],ar[l>>2]=0,ln(t,l),ar[o+4>>2]=0):(ar[l>>2]=0,ln(o,l),tr[A>>0]=0),Mu(o,0),ar[o>>2]=ar[u>>2],ar[o+4>>2]=ar[4+u>>2],ar[o+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u),A=0|jb[127&ar[36+(0|ar[r>>2])>>2]](r)}else{if(r=0|un(r,60960),e){for(fs[63&ar[44+(0|ar[r>>2])>>2]](l,r),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[32+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=a+8+3|0)>>0])<0?(i=0|ar[a>>2],ar[l>>2]=0,ln(i,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u)}else{for(fs[63&ar[40+(0|ar[r>>2])>>2]](l,r),A=0|ar[l>>2],tr[i>>0]=A,tr[i+1>>0]=A>>8,tr[i+2>>0]=A>>16,tr[i+3>>0]=A>>24,fs[63&ar[28+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=a+8+3|0)>>0])<0?(i=0|ar[a>>2],ar[l>>2]=0,ln(i,l),ar[a+4>>2]=0):(ar[l>>2]=0,ln(a,l),tr[A>>0]=0),Mu(a,0),ar[a>>2]=ar[u>>2],ar[a+4>>2]=ar[4+u>>2],ar[a+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u)}for(A=0|jb[127&ar[12+(0|ar[r>>2])>>2]](r),ar[f>>2]=A,A=0|jb[127&ar[16+(0|ar[r>>2])>>2]](r),ar[n>>2]=A,fs[63&ar[20+(0|ar[r>>2])>>2]](u,r),A=((0|tr[(A=t+11|0)>>0])<0?(A=0|ar[t>>2],tr[l>>0]=0,Qf(A,l),ar[t+4>>2]=0):(tr[l>>0]=0,Qf(t,l),tr[A>>0]=0),t),Cu(t,0),ar[A>>2]=ar[u>>2],ar[A+4>>2]=ar[4+u>>2],ar[A+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);for(Bu(u),fs[63&ar[24+(0|ar[r>>2])>>2]](u,r),(0|tr[(A=o+8+3|0)>>0])<0?(t=0|ar[o>>2],ar[l>>2]=0,ln(t,l),ar[o+4>>2]=0):(ar[l>>2]=0,ln(o,l),tr[A>>0]=0),Mu(o,0),ar[o>>2]=ar[u>>2],ar[o+4>>2]=ar[4+u>>2],ar[o+8>>2]=ar[8+u>>2],A=0;3!=(0|A);)A=A+1|(ar[u+(A<<2)>>2]=0);Qu(u),A=0|jb[127&ar[36+(0|ar[r>>2])>>2]](r)}ar[c>>2]=A,ur=b}function Yl(A,e,r,i,f,n,t,o,a,c,l,u,b,s,d){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,u|=0,b|=0,s|=0,d|=0;var k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0;for(ar[(r|=0)>>2]=A,k=s+8+3|0,p=s+4|0,h=b+8+3|0,w=b+4|0,v=0==(512&i|0),m=0<(0|d),g=u+11|0,Z=u+4|0,F=0;4!=(0|F);){A:do{switch(0|tr[a+F>>0]){case 0:ar[e>>2]=ar[r>>2];break;case 1:ar[e>>2]=ar[r>>2],G=0|Hb[31&ar[44+(0|ar[t>>2])>>2]](t,32),V=0|ar[r>>2],ar[r>>2]=V+4,ar[V>>2]=G;break;case 3:0|((y=(V=0|tr[k>>0])<<24>>24<0)?0|ar[p>>2]:255&V)&&(G=0|ar[(y?0|ar[s>>2]:s)>>2],V=0|ar[r>>2],ar[r>>2]=V+4,ar[V>>2]=G);break;case 2:if(!(v|0==(0|(W=(y=(W=0|tr[h>>0])<<24>>24<0)?0|ar[w>>2]:255&W)))){for(B=(X=y?0|ar[b>>2]:b)+(W<<2)|0,y=E=0|ar[r>>2];(0|X)!=(0|B);)ar[y>>2]=ar[X>>2],y=y+4|0,X=X+4|0;ar[r>>2]=E+(W<<2)}break;case 4:for(B=0|ar[r>>2],y=f=o?f+4|0:f;!(n>>>0<=y>>>0)&&0|xb[63&ar[12+(0|ar[t>>2])>>2]](t,2048,0|ar[y>>2]);)y=y+4|0;if(m){for(X=d;f>>>0>>0&(E=0<(0|X));)C=0|ar[(V=y+-4|0)>>2],G=0|ar[r>>2],ar[r>>2]=G+4,ar[G>>2]=C,X=X+-1|0,y=V;for(I=E?0|Hb[31&ar[44+(0|ar[t>>2])>>2]](t,48):0,W=0|ar[r>>2];E=W+4|0,!((0|X)<=0);)ar[W>>2]=I,X=X+-1|0,W=E;ar[r>>2]=E,ar[W>>2]=c}if((0|y)==(0|f))G=0|Hb[31&ar[44+(0|ar[t>>2])>>2]](t,48),y=(V=0|ar[r>>2])+4|0,ar[r>>2]=y,ar[V>>2]=G;else{for(G=(V=0|tr[g>>0])<<24>>24<0,V&=255,I=E=(W=0|(G?0|ar[Z>>2]:V)?0|tr[(G?0|ar[u>>2]:u)>>0]:-1,0);(0|y)!=(0|f);)X=0|ar[r>>2],(0|I)==(0|W)&&(C=X+4|0,ar[r>>2]=C,ar[X>>2]=l,X=(I=(W=(E=E+1|0)>>>0<(G?0|ar[Z>>2]:V)>>>0?(W=0|tr[(G?0|ar[u>>2]:u)+E>>0])<<24>>24==127?-1:W<<24>>24:I,0),C)),R=0|ar[(C=y+-4|0)>>2],ar[r>>2]=X+4,ar[X>>2]=R,I=I+1|0,y=C;y=0|ar[r>>2]}if((0|B)!=(0|y))for(;;){if((y=y+-4|0)>>>0<=B>>>0)break A;R=0|ar[B>>2],ar[B>>2]=ar[y>>2],ar[y>>2]=R,B=B+4|0}}}while(0);F=F+1|0}if(1<(f=(y=(f=0|tr[k>>0])<<24>>24<0)?0|ar[p>>2]:255&f)>>>0){for(X=(y=y?0|ar[s>>2]:s)+4|0,E=(y=y+(f<<2)|0)-X|0,f=B=0|ar[r>>2];(0|X)!=(0|y);)ar[f>>2]=ar[X>>2],f=f+4|0,X=X+4|0;ar[r>>2]=B+(E>>>2<<2)}switch((176&i)<<24>>24){case 32:ar[e>>2]=ar[r>>2];break;case 16:break;default:ar[e>>2]=A}}function Ql(A){var e;ar[(A|=0)>>2]=16988,(0|(0|ar[(e=A+8|0)>>2]))!=(0|dn())&&of(0|ar[e>>2]),an()}function Dl(A){var e,r,i=0,f=0;for(ar[(A|=0)>>2]=17036,e=A+8|0,r=A+12|0,f=0;i=0|ar[e>>2],!(f>>>0>=(0|ar[r>>2])-i>>2>>>0);)0|(i=0|ar[i+(f<<2)>>2])&&lu(i),f=f+1|0;Bu(A+144|0),function(A){var e,r=0,i=0,f=0;e=0|ar[(A|=0)>>2];do{if(0|e){for(i=0|ar[(r=A+4|0)>>2];(0|i)!=(0|e);)f=i+-4|0,ar[r>>2]=f,i=f;if((A+16|0)==(0|e)){tr[A+128>>0]=0;break}vu(e);break}}while(0)}(e),an()}function Jl(A){var e;ar[(A|=0)>>2]=17056,0|(e=0|ar[A+8>>2])&&0|tr[A+12>>0]&&mu(e),an()}function Ml(){return 0|ar[3118]}function Tl(){return 0|ar[2733]}function Ul(){return 0|ar[2732]}function Sl(A){ar[(A|=0)>>2]=17108,Bu(A+12|0),an()}function Ol(A){ar[(A|=0)>>2]=17148,Bu(A+16|0),an()}function zl(){lA()}function jl(A,e){e|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j,H,x,P,L,K,q,$,AA,eA,rA,iA,fA,nA,tA,oA,aA,cA,lA=0,uA=0,bA=0,sA=0;for(r=ur=(i=ur)+31&-32,ur=ur+16|0,ar[(A|=0)+4>>2]=e+-1,ar[A>>2]=17036,f=lA=A+8|0,n=28,n|=0,ar[(f|=0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,(tr[f+128>>0]=0)|n&&(function(A,e){var r=0;(0|Ll(A|=0))>>>0<(e|=0)>>>0&&zl();r=e>>>0<29&0==(0|tr[(r=A+128|0)>>0])?(tr[r>>0]=1,A+16|0):0|hu(e<<2);ar[A+4>>2]=r,ar[A>>2]=r,ar[A+8>>2]=r+(e<<2)}(f,n),Pl(f,n)),ar[(e=A+144|0)>>2]=0,ar[e+4>>2]=0,4294967279<(uA=(ar[e+8>>2]=0)|Yf(53684))>>>0&&pu(),uA>>>0<11?tr[e+11>>0]=uA:(bA=0|hu(sA=uA+16&-16),ar[e>>2]=bA,ar[A+152>>2]=-2147483648|sA,ar[A+148>>2]=uA,e=bA),wf(e,53684,uA),Qf(e+uA|(tr[r>>0]=0),r),e=0|ar[lA>>2],uA=0|ar[(lA=A+12|0)>>2];(0|uA)!=(0|e);)sA=uA+-4|0,uA=ar[lA>>2]=sA;ar[14199]=0,ar[14198]=14700,t=A,o=56792,Hl(t|=0,o|=0,0|hn(59216)),ar[14201]=0,ar[14200]=14732,a=A,c=56800,Hl(a|=0,c|=0,0|hn(59224)),function(A,e,r,i){e|=0,r|=0,i|=0,ar[4+(A|=0)>>2]=i+-1,ar[A>>2]=17056,ar[(i=A+8|0)>>2]=e,tr[A+12>>0]=1&r,e||(r=0|Ul(),ar[i>>2]=r)}(56808,0,0,1),l=A,u=56808,Hl(l|=0,u|=0,0|hn(59232)),ar[14207]=0,ar[14206]=17252,b=A,s=56824,Hl(b|=0,s|=0,0|hn(59264)),ar[14209]=0,ar[14208]=17320,d=A,k=56832,Hl(d|=0,k|=0,0|hn(61024)),function(A,e){e|=0,ar[4+(A|=0)>>2]=e+-1,ar[A>>2]=16988,e=0|dn(),ar[A+8>>2]=e}(56840,1),h=A,w=56840,Hl(h|=0,w|=0,0|hn(61032)),ar[14215]=0,ar[14214]=17368,v=A,m=56856,Hl(v|=0,m|=0,0|hn(61040)),ar[14217]=0,ar[14216]=17416,g=A,Z=56864,Hl(g|=0,Z|=0,0|hn(61048)),function(A,e){for(e|=0,ar[4+(A|=0)>>2]=e+-1,ar[A>>2]=17108,tr[A+8>>0]=46,tr[A+9>>0]=44,ar[(e=A+12|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0}(56872,1),p=A,y=56872,Hl(p|=0,y|=0,0|hn(59248)),function(A,e){for(e|=0,ar[4+(A|=0)>>2]=e+-1,ar[A>>2]=17148,ar[A+8>>2]=46,ar[A+12>>2]=44,ar[(e=A+16|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0}(56896,1),B=A,E=56896,Hl(B|=0,E|=0,0|hn(59272)),ar[14233]=0,ar[14232]=14764,X=A,W=56928,Hl(X|=0,W|=0,0|hn(59256)),ar[14235]=0,ar[14234]=14828,I=A,C=56936,Hl(I|=0,C|=0,0|hn(59280)),ar[14237]=0,ar[14236]=14892,G=A,V=56944,Hl(G|=0,V|=0,0|hn(59288)),ar[14239]=0,ar[14238]=14944,F=A,R=56952,Hl(F|=0,R|=0,0|hn(59296)),ar[14241]=0,ar[14240]=16492,N=A,_=56960,Hl(N|=0,_|=0,0|hn(60944)),ar[14243]=0,ar[14242]=16548,Y=A,Q=56968,Hl(Y|=0,Q|=0,0|hn(60952)),ar[14245]=0,ar[14244]=16604,D=A,J=56976,Hl(D|=0,J|=0,0|hn(60960)),ar[14247]=0,ar[14246]=16660,M=A,T=56984,Hl(M|=0,T|=0,0|hn(60968)),ar[14249]=0,ar[14248]=16716,U=A,S=56992,Hl(U|=0,S|=0,0|hn(60976)),ar[14251]=0,ar[14250]=16744,O=A,z=57e3,Hl(O|=0,z|=0,0|hn(60984)),ar[14253]=0,ar[14252]=16772,j=A,H=57008,Hl(j|=0,H|=0,0|hn(60992)),ar[14255]=0,ar[14254]=16800,x=A,P=57016,Hl(x|=0,P|=0,0|hn(61e3)),ar[14257]=0,ar[14256]=17232,function(A){ar[(A|=0)>>2]=17464}(57032),ar[14256]=14996,ar[14258]=15044,L=A,K=57024,Hl(L|=0,K|=0,0|hn(60108)),ar[14261]=0,ar[14260]=17232,function(A){ar[(A|=0)>>2]=17500}(57048),ar[14260]=15080,ar[14262]=15128,q=A,$=57040,Hl(q|=0,$|=0,0|hn(60920)),ar[14265]=0,ar[14264]=17232,AA=0|dn(),ar[14266]=AA,ar[14264]=16444,eA=A,rA=57056,Hl(eA|=0,rA|=0,0|hn(60928)),ar[14269]=0,ar[14268]=17232,iA=0|dn(),ar[14270]=iA,ar[14268]=16468,fA=A,nA=57072,Hl(fA|=0,nA|=0,0|hn(60936)),ar[14273]=0,ar[14272]=16828,tA=A,oA=57088,Hl(tA|=0,oA|=0,0|hn(61008)),ar[14275]=0,ar[14274]=16860,aA=A,cA=57096,Hl(aA|=0,cA|=0,0|hn(61016)),ur=i}function Hl(A,e,r){A|=0,r|=0;var i,f=0;au(e|=0),f=0|ar[(i=A+8|0)>>2],(0|ar[A+12>>2])-f>>2>>>0>r>>>0?A=i:(function(A,e){e|=0;var r,i,f=0,n=0;f=0|ar[(i=4+(A|=0)|0)>>2],n=0|ar[A>>2],r=f-n>>2;A:do{if(e>>>0<=r>>>0){if(e>>>0>>0)for(A=n+(e<<2)|0;;){if((0|f)==(0|A))break A;n=f+-4|0,ar[i>>2]=n,f=n}}else xl(A,e-r|0)}while(0)}(i,r+1|0),f=0|ar[(A=i)>>2]),0|(f=0|ar[f+(r<<2)>>2])&&lu(f),ar[(0|ar[A>>2])+(r<<2)>>2]=e}function xl(A,e){e|=0;var r,i,f,n=0,t=0,o=0,a=0,c=0;r=ur=(f=ur)+31&-32,ur=ur+32|0,o=(A|=0)+8|0,n=0|ar[(i=A+4|0)>>2];do{if((0|ar[o>>2])-n>>2>>>0>>0){if(n=(n-(0|ar[A>>2])>>2)+e|0,!((t=0|Ll())>>>0>>0)){a=0|ar[A>>2],o=(c=(0|ar[o>>2])-a|0)>>1,Kl(r,c>>2>>>0>>1>>>0?o>>>0>>0?n:o:t,(0|ar[i>>2])-a>>2,A+16|0),ql(r,e),$l(A,r),Au(r);break}zl()}else Pl(A,e)}while(0);ur=f}function Pl(A,e){var r;for(r=(A|=0)+4|0,A=e|=0,e=0|ar[r>>2];e=4+((ar[e>>2]=0)|ar[r>>2])|0,ar[r>>2]=e,0!=(0|(A=A+-1|0)););}function Ll(){return 1073741823}function Kl(A,e,r,i){e|=0,r|=0,i|=0;var f=0;ar[(A|=0)+12>>2]=0,ar[A+16>>2]=i;do{if(e){if(e>>>0<29&0==(0|tr[(f=i+112|0)>>0])){tr[f>>0]=1;break}i=0|hu(e<<2);break}i=0}while(0);r=(ar[A>>2]=i)+(r<<2)|0,ar[A+8>>2]=r,ar[A+4>>2]=r,ar[A+12>>2]=i+(e<<2)}function ql(A,e){var r;for(r=(A|=0)+8|0,A=e|=0,e=0|ar[r>>2];e=4+((ar[e>>2]=0)|ar[r>>2])|0,ar[r>>2]=e,0!=(0|(A=A+-1|0)););}function $l(A,e){e|=0;var r=0,i=0,f=0,n=0,t=0;i=0|ar[(A|=0)>>2],n=e+4|0,f=(0|ar[(t=A+4|0)>>2])-i|0,r=(0|ar[n>>2])+(0-(f>>2)<<2)|0,ar[n>>2]=r,0<(0|f)?(hb(0|r,0|i,0|f),r=0|ar[(i=n)>>2]):i=n,n=0|ar[A>>2],ar[A>>2]=r,ar[i>>2]=n,n=e+8|0,f=0|ar[t>>2],ar[t>>2]=ar[n>>2],ar[n>>2]=f,t=e+12|0,A=0|ar[(n=A+8|0)>>2],ar[n>>2]=ar[t>>2],ar[t>>2]=A,ar[e>>2]=ar[i>>2]}function Au(A){var e=0,r=0,i=0,f=0;for(e=0|ar[(A|=0)+4>>2],i=0|ar[(r=A+8|0)>>2];(0|i)!=(0|e);)f=i+-4|0,i=ar[r>>2]=f;r=0|ar[A>>2];do{if(0|r){if((0|(e=0|ar[A+16>>2]))==(0|r)){tr[e+112>>0]=0;break}vu(r);break}}while(0)}function eu(){return 0==(0|tr[57104])&&0|ib(57104)&&(jl(57112,1),ar[15264]=57112,ar[15265]=61056),0|ar[15265]}function ru(A,e){A|=0,e=0|ar[(e|=0)>>2],au(ar[A>>2]=e)}function iu(){return 0==(0|tr[57272])&&0|ib(57272)&&(ru(61064,0|eu()),ar[15267]=61064),0|ar[15267]}function fu(A){A|=0;var e=0;e=0|iu(),e=0|ar[e>>2],au(ar[A>>2]=e)}function nu(A,e,r){return A|=0,e|=0,0|(A=(r|=0)?0|function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;A:do{if(r){for(;(i=0|tr[A>>0])<<24>>24==(f=0|tr[e>>0])<<24>>24;){if(!(r=r+-1|0)){A=0;break A}A=A+1|0,e=e+1|0}A=(255&i)-(255&f)|0}else A=0}while(0);return 0|A}(A,e,r):0)}function tu(){0}function ou(A){0}function au(A){cu((A|=0)+4|0)}function cu(A){ar[(A|=0)>>2]=1+(0|ar[A>>2])}function lu(A){return 0|(A=-1==(0|uu((A|=0)+4|0))?(is[511&ar[8+(0|ar[A>>2])>>2]](A),1):0)}function uu(A){var e;return e=0|ar[(A|=0)>>2],ar[A>>2]=e-1,e-1|0}function bu(A){au(A|=0)}function su(A){cu((A|=0)+8|0)}function du(A){0|lu(A|=0)&&ku(A)}function ku(A){var e;0!=(0|ar[(e=(A|=0)+8|0)>>2])&&-1!=(0|uu(e))||is[511&ar[16+(0|ar[A>>2])>>2]](A)}function hu(A){var e;for(e=0==(0|(A|=0))?1:A;!(0|(A=0|yc(e)));){if(!(A=0|fb())){A=0;break}rs[7&A]()}return 0|A}function wu(A){return 0|hu(A|=0)}function vu(A){Bc(A|=0)}function mu(A){vu(A|=0)}function gu(){lA()}function Zu(A,e){e|=0,ar[(A|=0)>>2]=17640,function(A,e){A|=0;var r,i,f=0;f=0|hu(13+(r=0|Vc(e|=0))|0),ar[f>>2]=r,ar[f+4>>2]=r,hb((ar[f+8>>2]=0)|(f=0|(i=f,12+(i|=0)|0)),0|e,1+r|0),ar[A>>2]=f}(A+4|0,e)}function pu(){lA()}function yu(A,e){e|=0;var r,i,f=0,n=0,t=0;r=ur=(i=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,((ar[A+8>>2]=0)|tr[e+11>>0])<0?(f=0|ar[e>>2],4294967279<(e=0|ar[e+4>>2])>>>0&&pu(),e>>>0<11?tr[A+11>>0]=e:(n=0|hu(t=e+16&-16),ar[A>>2]=n,ar[A+8>>2]=-2147483648|t,ar[A+4>>2]=e,A=n),wf(A,f,e),Qf(A+e|(tr[r>>0]=0),r)):(ar[A>>2]=ar[e>>2],ar[A+4>>2]=ar[e+4>>2],ar[A+8>>2]=ar[e+8>>2]),ur=i}function Bu(A){(0|tr[(A|=0)+11>>0])<0&&vu(0|ar[A>>2])}function Eu(A,e){var r=0,i=0;return(0|(A|=0))!=(0|(e|=0))&&Xu(A,(i=(r=0|tr[e+11>>0])<<24>>24<0)?0|ar[e>>2]:e,i?0|ar[e+4>>2]:255&r),0|A}function Xu(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0;f=ur=(t=ur)+31&-32,ur=ur+16|0,a=(i=(o=0|tr[(n=(A|=0)+11|0)>>0])<<24>>24<0)?(2147483647&ar[A+8>>2])-1|0:10;do{if(r>>>0<=a>>>0){if(Wu(o=i?0|ar[A>>2]:A,e,r),Qf(o+r|(tr[f>>0]=0),f),(0|tr[n>>0])<0){ar[A+4>>2]=r;break}tr[n>>0]=r;break}i?o=0|ar[A+4>>2]:o&=255,Iu(A,a,r-a|0,o,0,o,r,e)}while(0);return ur=t,0|A}function Wu(A,e,r){return A|=0,e|=0,0|(r|=0)&&wb(0|A,0|e,0|r),0|A}function Iu(A,e,r,i,f,n,t,o){A|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l=0,u=0,b=0;a=ur=(c=ur)+31&-32,ur=ur+16|0,(-18-(e|=0)|0)>>>0<(r|=0)>>>0&&pu(),b=(0|tr[A+11>>0])<0?0|ar[A>>2]:A,u=0|hu(l=e>>>0<2147483623?(l=(l=r+e|0)>>>0<(u=e<<1)>>>0?u:l)>>>0<11?11:l+16&-16:-17),0|f&&wf(u,b,f),0|t&&wf(u+f|0,o,t),0|(i=(r=i-n|0)-f|0)&&wf(u+f+t|0,b+f+n|0,i),10!=(0|e)&&vu(b),ar[A>>2]=u,ar[A+8>>2]=-2147483648|l,t=r+t|0,Qf(u+(ar[A+4>>2]=t)|(tr[a>>0]=0),a),ur=c}function Cu(A,e){A|=0;var r,i=0,f=0,n=0,t=0,o=0;4294967279<(e|=0)>>>0&&pu(),i=(n=(f=0|tr[(r=A+11|0)>>0])<<24>>24<0)?(o=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(o=255&f,10),t=(e=(t=e>>>0>>0?o:e)>>>0<11)?10:(t+16&-16)-1|0;do{if((0|t)!=(0|i)){do{if(!e){if(e=0|hu(t+1|0),n){n=1,i=0|ar[A>>2],f=13;break}wf(e,A,1+(255&f)|0),f=14;break}e=0|ar[A>>2],f=n?(n=0,i=e,e=A,13):(wf(A,e,1+(255&f)|0),vu(e),15)}while(0);if(13==(0|f)&&(wf(e,i,1+(0|ar[A+4>>2])|0),vu(i),f=n?14:15),14==(0|f)){ar[A+8>>2]=t+1|-2147483648,ar[A+4>>2]=o,ar[A>>2]=e;break}if(15==(0|f)){tr[r>>0]=o;break}}}while(0)}function Gu(A,e){return 0|Xu(A|=0,e|=0,0|Yf(e))}function Vu(A,e,r){e|=0,r|=0;var i,f,n,t=0,o=0;i=ur=(n=ur)+31&-32,ur=ur+16|0,(o=(t=0|tr[(f=(A|=0)+11|0)>>0])<<24>>24<0)?t=0|ar[A+4>>2]:t&=255;do{if(e>>>0<=t>>>0){if(o){o=(0|ar[A>>2])+e|0,tr[i>>0]=0,Qf(o,i),ar[A+4>>2]=e;break}Qf(A+e|(tr[i>>0]=0),i),tr[f>>0]=e;break}Fu(A,e-t|0,r)}while(0);ur=n}function Fu(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0;return i=ur=(f=ur)+31&-32,ur=ur+16|0,0|(e|=0)&&(t=(n=0|tr[(c=A+11|0)>>0])<<24>>24<0?(o=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(o=255&n,10),a=o+e|0,(t-o|0)>>>0>>0&&(Ru(A,t,a-t|0,o,o,0,0),n=0|tr[c>>0]),oi((n=n<<24>>24<0?0|ar[A>>2]:A)+o|0,e,r),(0|tr[c>>0])<0?ar[A+4>>2]=a:tr[c>>0]=a,Qf(n+a|(tr[i>>0]=0),i)),ur=f,0|A}function Ru(A,e,r,i,f,n,t){A|=0,i|=0,f|=0,n|=0,t|=0;var o=0,a=0,c=0;(-17-(e|=0)|0)>>>0<(r|=0)>>>0&&pu(),c=(0|tr[A+11>>0])<0?0|ar[A>>2]:A,a=0|hu(o=e>>>0<2147483623?(o=(o=r+e|0)>>>0<(a=e<<1)>>>0?a:o)>>>0<11?11:o+16&-16:-17),0|f&&wf(a,c,f),0|(r=i-n-f|0)&&wf(a+f+t|0,c+f+n|0,r),10!=(0|e)&&vu(c),ar[A>>2]=a,ar[A+8>>2]=-2147483648|o}function Nu(A,e,r){e|=0,r|=0;var i,f,n,t,o,a=0,c=0;return n=ur=(o=ur)+31&-32,ur=ur+16|0,a=(f=(a=0|tr[(t=(A|=0)+11|0)>>0])<<24>>24<0)?(c=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(c=255&a,10),i=c+r|0,r>>>0<=(a-c|0)>>>0?0|r&&(wf((a=f?0|ar[A>>2]:A)+c|0,e,r),(0|tr[t>>0])<0?ar[A+4>>2]=i:tr[t>>0]=i,Qf(a+i|(tr[n>>0]=0),n)):Iu(A,a,i-a|0,c,c,0,r,e),ur=o,0|A}function _u(A,e){A|=0,e|=0;var r,i,f=0,n=0,t=0,o=0;o=ur=(i=ur)+31&-32,ur=ur+16|0,o=(r=o)+1|0,tr[r>>0]=e,e=(f=(e=0|tr[(n=A+11|0)>>0])<<24>>24<0)?(t=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(t=255&e,10),7==(0|(f=(0|t)==(0|e)?(Ru(A,e,1,e,e,0,0),e=e+1|0,(0|tr[n>>0])<0?8:7):(e=t+1|0,f?8:7)))?(tr[n>>0]=e,e=A):8==(0|f)&&(n=0|ar[A>>2],ar[A+4>>2]=e,e=n),Qf(A=e+t|0,r),Qf(A+1|(tr[o>>0]=0),o),ur=i}function Yu(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t=0;return(n=(t=0|tr[(A|=0)+11>>0])<<24>>24<0)?t=0|ar[A+4>>2]:t&=255,-1==(0|f)|t>>>0>>0&&lA(),r=(t=t-e|0)>>>0>>0?t:r,n&&(A=0|ar[A>>2]),(A=0|nu(A+e|0,i,(t=f>>>0>>0)?f:r))?0|A:0|(r>>>0>>0?-1:1&t)}function Qu(A){(0|tr[(A|=0)+8+3>>0])<0&&vu(0|ar[A>>2])}function Du(A,e,r){return A|=0,e|=0,(r|=0)&&function(A,e,r){var i=0;if((r|=0)>>>0<=(A|=0)-(e|=0)>>2>>>0){if(0|r)for(i=A;r=r+-1|0,ar[i>>2]=ar[e>>2],r;)e=e+4|0,i=i+4|0}else for(;ar[A+((r=r+-1|0)<<2)>>2]=ar[e+(r<<2)>>2],0!=(0|r););}(A,e,r),0|A}function Ju(A,e,r,i,f,n,t,o){A|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u=0,b=0,s=0;c=ur=(l=ur)+31&-32,ur=ur+16|0,(1073741806-(e|=0)|0)>>>0<(r|=0)>>>0&&pu(),s=(0|tr[3+(a=A+8|0)>>0])<0?0|ar[A>>2]:A,e>>>0<536870887?1073741823<(r=(r=(r=r+e|0)>>>0<(u=e<<1)>>>0?u:r)>>>0<2?2:r+4&-4)>>>0?lA():b=r:b=1073741807,u=0|hu(b<<2),0|f&&Zf(u,s,f),0|t&&Zf(u+(f<<2)|0,o,t),0|(i=(r=i-n|0)-f|0)&&Zf(u+(f<<2)+(t<<2)|0,s+(f<<2)+(n<<2)|0,i),1!=(0|e)&&vu(s),ar[A>>2]=u,ar[a>>2]=-2147483648|b,t=r+t|0,ln(u+((ar[A+4>>2]=t)<<2)|(ar[c>>2]=0),c),ur=l}function Mu(A,e){A|=0;var r,i,f=0,n=0,t=0,o=0,a=0;1073741807<(e|=0)>>>0&&pu(),f=(t=(n=0|tr[(r=3+(i=A+8|0)|0)>>0])<<24>>24<0)?(a=0|ar[A+4>>2],(2147483647&ar[i>>2])-1|0):(a=255&n,1),o=(e=(o=e>>>0>>0?a:e)>>>0<2)?1:(o+4&-4)-1|0;do{if((0|o)!=(0|f)){do{if(!e){if(1073741823<(e=o+1|0)>>>0&&lA(),e=0|hu(e<<2),t){t=1,f=0|ar[A>>2],n=15;break}Zf(e,A,1+(255&n)|0),n=16;break}e=0|ar[A>>2],n=t?(t=0,f=e,e=A,15):(Zf(A,e,1+(255&n)|0),vu(e),17)}while(0);if(15==(0|n)&&(Zf(e,f,1+(0|ar[A+4>>2])|0),vu(f),n=t?16:17),16==(0|n)){ar[i>>2]=o+1|-2147483648,ar[A+4>>2]=a,ar[A>>2]=e;break}if(17==(0|n)){tr[r>>0]=a;break}}}while(0)}function Tu(A,e){return 0|function(A,e,r){e|=0,r|=0;var i,f,n,t,o,a=0,c=0;n=ur=(o=ur)+31&-32,ur=ur+16|0,c=(f=(i=0|tr[(t=(a=(A|=0)+8|0)+3|0)>>0])<<24>>24<0)?(2147483647&ar[a>>2])-1|0:1;do{if(r>>>0<=c>>>0){if(Du(a=f?0|ar[A>>2]:A,e,r),ln(a+(r<<2)|(ar[n>>2]=0),n),(0|tr[t>>0])<0){ar[A+4>>2]=r;break}tr[t>>0]=r;break}Ju(A,c,r-c|0,a=f?0|ar[A+4>>2]:255&i,0,a,r,e)}while(0);return ur=o,0|A}(A|=0,e|=0,0|Mr(e))}function Uu(A,e,r,i,f,n,t){A|=0,i|=0,f|=0,n|=0,t|=0;var o,a=0,c=0,l=0;(1073741807-(e|=0)|0)>>>0<(r|=0)>>>0&&pu(),l=(0|tr[3+(o=A+8|0)>>0])<0?0|ar[A>>2]:A,e>>>0<536870887?1073741823<(r=(r=(r=r+e|0)>>>0<(a=e<<1)>>>0?a:r)>>>0<2?2:r+4&-4)>>>0?lA():c=r:c=1073741807,a=0|hu(c<<2),0|f&&Zf(a,l,f),0|(r=i-n-f|0)&&Zf(a+(f<<2)+(t<<2)|0,l+(f<<2)+(n<<2)|0,r),1!=(0|e)&&vu(l),ar[A>>2]=a,ar[o>>2]=-2147483648|c}function Su(A,e,r){e|=0,r|=0;var i,f,n,t,o=0,a=0,c=0;return f=ur=(t=ur)+31&-32,ur=ur+16|0,o=(i=(o=0|tr[(n=(a=(A|=0)+8|0)+3|0)>>0])<<24>>24<0)?(c=0|ar[A+4>>2],(2147483647&ar[a>>2])-1|0):(c=255&o,1),a=c+r|0,r>>>0<=(o-c|0)>>>0?0|r&&(Zf((o=i?0|ar[A>>2]:A)+(c<<2)|0,e,r),(0|tr[n>>0])<0?ar[A+4>>2]=a:tr[n>>0]=a,ln(o+(a<<2)|(ar[f>>2]=0),f)):Ju(A,o,a-o|0,c,c,0,r,e),ur=t,0|A}function Ou(A,e){A|=0,e|=0;var r,i,f,n=0,t=0,o=0,a=0;a=ur=(f=ur)+31&-32,ur=ur+16|0,a=(i=a)+4|0,ar[i>>2]=e,e=(r=(e=0|tr[(t=(n=A+8|0)+3|0)>>0])<<24>>24<0)?(o=0|ar[A+4>>2],(2147483647&ar[n>>2])-1|0):(o=255&e,1),7==(0|(n=(0|o)==(0|e)?(Uu(A,e,1,e,e,0,0),e=e+1|0,(0|tr[t>>0])<0?8:7):(e=o+1|0,r?8:7)))?(tr[t>>0]=e,e=A):8==(0|n)&&(t=0|ar[A>>2],ar[A+4>>2]=e,e=t),ln(A=e+(o<<2)|0,i),ln(A+4|(ar[a>>2]=0),a),ur=f}function zu(){var A,e=0;return e=ur=(A=ur)+31&-32,ur=ur+16|0,0|yA(61148,5)?(ju(56158,e),0):(e=0|wA(0|ar[15288]),ur=A,0|e)}function ju(A,e){A|=0,e|=0;var r;r=ur=ur+31&-32,ur=ur+16|0,ar[r>>2]=e,Qc(e=0|ar[2669],A,r),function(A,e){var r,i=0,f=0,n=0,t=0,o=0,a=0;i=r=255&(A|=0),0<=(0|ar[(e|=0)+76>>2])&&0!=(0|Jc())?((0|i)!=(0|tr[e+75>>0])&&(o=0|ar[(t=e+20|0)>>2])>>>0<(0|ar[e+16>>2])>>>0?(ar[t>>2]=o+1,tr[o>>0]=r):i=0|Si(e,A),Mc()):a=3;do{if(3==(0|a)){if((0|i)!=(0|tr[e+75>>0])&&(n=0|ar[(f=e+20|0)>>2])>>>0<(0|ar[e+16>>2])>>>0){ar[f>>2]=n+1,tr[n>>0]=r;break}i=0|Si(e,A)}}while(0)}(10,e),lA()}function Hu(A){0}function xu(A,e){return(0|(A|=0))==(0|(e|=0))|0}function Pu(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t;f=0|ar[(A=(e|=0)+16|0)>>2],n=e+36|0,t=e+24|0;do{if(f){if((0|f)!=(0|r)){ar[n>>2]=1+(0|ar[n>>2]),ar[t>>2]=2,tr[e+54>>0]=1;break}2==(0|ar[t>>2])&&(ar[t>>2]=i)}else ar[A>>2]=r,ar[t>>2]=i,ar[n>>2]=1}while(0)}function Lu(A,e,r,i){r|=0,i|=0;var f=0;(0|ar[(e|=0)+4>>2])==(0|r)&&1!=(0|ar[(f=e+28|0)>>2])&&(ar[f>>2]=i)}function Ku(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0;tr[(e|=0)+53>>0]=1;do{if((0|ar[e+4>>2])==(0|i)){if(tr[e+52>>0]=1,o=e+54|0,a=e+48|0,t=e+24|0,A=e+36|0,!(n=0|ar[(i=e+16|0)>>2])){if(ar[i>>2]=r,ar[t>>2]=f,!((ar[A>>2]=1)==(0|ar[a>>2])&1==(0|f)))break;tr[o>>0]=1;break}if((0|n)!=(0|r)){ar[A>>2]=1+(0|ar[A>>2]),tr[o>>0]=1;break}2==(0|(A=0|ar[t>>2]))&&(A=ar[t>>2]=f),1==(0|ar[a>>2])&1==(0|A)&&(tr[o>>0]=1)}}while(0)}function qu(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o,a,c,l,u=0,b=0;for(a=ur=(l=ur)+31&-32,ur=ur+64|0,b=0|ar[(A|=0)>>2],c=A+(0|ar[b+-8>>2])|0,b=0|ar[b+-4>>2],ar[a>>2]=r,ar[4+a>>2]=A,ar[8+a>>2]=e,ar[12+a>>2]=i,e=20+a|0,i=24+a|0,f=28+a|0,n=32+a|0,t=40+a|0,o=(u=A=16+a|0)+36|0;(0|(u=u+4|(ar[u>>2]=0)))<(0|o););or[A+36>>1]=0,tr[A+38>>0]=0;A:do{if(0|xu(b,r))ar[48+a>>2]=1,as[15&ar[20+(0|ar[b>>2])>>2]](b,a,c,c,1,0),A=1==(0|ar[i>>2])?c:0;else{switch(os[63&ar[24+(0|ar[b>>2])>>2]](b,a,c,1,0),0|ar[36+a>>2]){case 0:A=1==(0|ar[t>>2])&1==(0|ar[f>>2])&1==(0|ar[n>>2])?0|ar[e>>2]:0;break A;case 1:break;default:A=0;break A}if(1!=(0|ar[i>>2])&&!(0==(0|ar[t>>2])&1==(0|ar[f>>2])&1==(0|ar[n>>2]))){A=0;break}A=0|ar[A>>2]}}while(0);return ur=l,0|A}function $u(A){var e,r,i;ar[(A|=0)>>2]=17640,e=A+4|0,(i=r=0)|(e|=0,1)&&(r=0|function(A){return(A|=0)+-12|0}(0|ar[e>>2]),e=0|ar[(i=r+8|0)>>2],ar[i>>2]=e+-1,(e+-1|0)<0)&&vu(r)}function Ab(A,e,r,i){e|=0,r|=0,i|=0;var f,n=0;n=(f=0|ar[(A|=0)+4>>2])>>8,1&f&&(n=0|ar[(0|ar[r>>2])+n>>2]),A=0|ar[A>>2],ts[31&ar[28+(0|ar[A>>2])>>2]](A,e,r+n|0,2&f|0?i:2)}function eb(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o=0;o=(t=0|ar[(A|=0)+4>>2])>>8,1&t&&(o=0|ar[(0|ar[i>>2])+o>>2]),A=0|ar[A>>2],as[15&ar[20+(0|ar[A>>2])>>2]](A,e,r,i+o|0,2&t|0?f:2,n)}function rb(A,e,r,i,f){e|=0,r|=0,i|=0,f|=0;var n,t=0;t=(n=0|ar[(A|=0)+4>>2])>>8,1&n&&(t=0|ar[(0|ar[r>>2])+t>>2]),A=0|ar[A>>2],os[63&ar[24+(0|ar[A>>2])>>2]](A,e,r+t|0,2&n|0?i:2,f)}function ib(A){return 0|(A=1==(0|tr[(A|=0)>>0])?0:tr[A>>0]=1)}function fb(){var A;return A=0|ar[15289],0|(ar[15289]=A)}function nb(A,e,r,i){e|=0,i|=0;var f,n,t,o,a,c,l,u;return r=0|(t=f=A|=0,o=n=r|=0,t=((a=(u=0)|br(u=65535&(o|=0),l=65535&(t|=0)))>>>16)+(0|br(u,c=t>>>16))|0,o=0|br(u=o>>>16,l),0|(D=(t>>>16)+(0|br(u,c))+(((65535&t)+o|0)>>>16)|0,t+o<<16|65535&a|0)),A=D,0|(D=(0|br(e,n))+(0|br(i,f))+A|0&A,0|r)}function tb(A,e,r,i){return 0|(D=(e|=0)+(i|=0)+((r=(A|=0)+(r|=0)>>>0)>>>0>>0|0)>>>0,0|r)}function ob(A,e,r,i){return 0|(D=i=(e|=0)-(i|=0)-((A|=0)>>>0<(r|=0)>>>0|0)>>>0,A-r>>>0|0)}function ab(A){var e=0;return(0|(e=0|tr[s+(255&(A|=0))>>0]))<8?0|e:(0|(e=0|tr[s+(A>>8&255)>>0]))<8?e+8|0:(0|(e=0|tr[s+(A>>16&255)>>0]))<8?e+16|0:24+(0|tr[s+(A>>>24)>>0])|0}function cb(A,e,r,i,f){f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(l=A|=0,t=r|=0,o=b=i|=0,!(c=a=e|=0))return n=0!=(0|f),o?(n&&(ar[f>>2]=0|A,ar[f+4>>2]=0&e),(f=b=0)|(D=b,f)):(n&&(ar[f>>2]=(l>>>0)%(t>>>0),ar[f+4>>2]=0),(b=0)|(D=b,f=(l>>>0)/(t>>>0)>>>0));n=0==(0|o);do{if(t){if(!n){if((n=(0|g(0|o))-(0|g(0|c))|0)>>>0<=31){A=l>>>((t=u=n+1|0)>>>0)&(e=n-31>>31)|c<<(o=31-n|0),e&=c>>>(u>>>0),n=0,o=l<>2]=0|A,ar[f+4>>2]=a|0&e,(f=b=0)|(D=b,f)):(f=b=0)|(D=b,f)}if((n=t-1|0)&t|0){A=(u=32-(o=33+(0|g(0|t))-(0|g(0|c))|0)|0)-1>>31&c>>>((s=o-32|0)>>>0)|(c<>>((t=o)>>>0))&(e=s>>31),e&=c>>>(o>>>0),n=l<<(d=64-o|0)&(a=u>>31),o=(c<>>(s>>>0))&a|l<>31;break}return 0|f&&(ar[f>>2]=n&l,ar[f+4>>2]=0),1==(0|t)?0|(D=s=a|0&e,d=0|A):(d=0|ab(0|t),0|(D=s=c>>>(d>>>0)|0,d=c<<32-d|l>>>(d>>>0)|0))}if(n)return 0|f&&(ar[f>>2]=(c>>>0)%(t>>>0),ar[f+4>>2]=0),(s=0)|(D=s,d=(c>>>0)/(t>>>0)>>>0);if(!l)return 0|f&&(ar[f>>2]=0,ar[f+4>>2]=(c>>>0)%(o>>>0)),(s=0)|(D=s,d=(c>>>0)/(o>>>0)>>>0);if(!((n=o-1|0)&o))return 0|f&&(ar[f>>2]=0|A,ar[f+4>>2]=n&c|0&e),d=c>>>(((s=0)|ab(0|o))>>>0),0|(D=s,d);if((n=(0|g(0|o))-(0|g(0|c))|0)>>>0<=30){A=c<<(o=31-n|0)|l>>>((t=e=n+1|0)>>>0),e=c>>>(e>>>0),n=0,o=l<>2]=0|A,ar[f+4>>2]=a|0&e),(d=s=0)|(D=s,d)}while(0);if(t){for(c=0|tb(0|(u=0|r),0|(l=b|0&i),-1,-1),r=D,a=o,o=0;a=n>>>31|(i=a)<<1,n=o|n<<1,ob(0|c,0|r,0|(i=A<<1|i>>>31|0),0|(b=A>>>31|e<<1|0)),o=1&(s=(d=D)>>31|((0|d)<0?-1:0)<<1),A=0|ob(0|i,0|b,s&u|0,(((0|d)<0?-1:0)>>31|((0|d)<0?-1:0)<<1)&l|0),e=D,0!=(0|(t=t-1|0)););c=a,a=0}else c=o,o=a=0;return(t=0)|f&&(ar[f>>2]=A,ar[f+4>>2]=e),0|(D=s=(0|n)>>>31|(c|t)<<1|0&(t<<1|n>>>31)|a,d=-2&(n<<1|0)|o)}function lb(A,e,r,i){return 0|cb(A|=0,e|=0,r|=0,i|=0,0)}function ub(A,e,r,i){var f,n;return ur=(n=ur)+16|0,cb(A|=0,e|=0,r|=0,i|=0,f=0|n),ur=n,0|(D=0|ar[4+f>>2],0|ar[f>>2])}function bb(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(D=e>>r,A>>>r|(e&(1<>r-32|0)}function sb(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(D=e>>>r,A>>>r|(e&(1<>>r-32|(D=0)}function db(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(D=e<>>32-r,A<>8&255)<<16|(A>>16&255)<<8|A>>>24|0}function hb(A,e,r){A|=0,e|=0;var i,f,n=0;if(8192<=(0|(r|=0)))return 0|uA(0|A,0|e,0|r);if(f=0|A,i=A+r|0,(3&A)==(3&e)){for(;3&A;){if(!r)return 0|f;tr[A>>0]=0|tr[e>>0],A=A+1|0,e=e+1|0,r=r-1|0}for(n=(r=-4&i|0)-64|0;(0|A)<=(0|n);)ar[A>>2]=ar[e>>2],ar[A+4>>2]=ar[e+4>>2],ar[A+8>>2]=ar[e+8>>2],ar[A+12>>2]=ar[e+12>>2],ar[A+16>>2]=ar[e+16>>2],ar[A+20>>2]=ar[e+20>>2],ar[A+24>>2]=ar[e+24>>2],ar[A+28>>2]=ar[e+28>>2],ar[A+32>>2]=ar[e+32>>2],ar[A+36>>2]=ar[e+36>>2],ar[A+40>>2]=ar[e+40>>2],ar[A+44>>2]=ar[e+44>>2],ar[A+48>>2]=ar[e+48>>2],ar[A+52>>2]=ar[e+52>>2],ar[A+56>>2]=ar[e+56>>2],ar[A+60>>2]=ar[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|r);)ar[A>>2]=ar[e>>2],A=A+4|0,e=e+4|0}else for(r=i-4|0;(0|A)<(0|r);)tr[A>>0]=0|tr[e>>0],tr[A+1>>0]=0|tr[e+1>>0],tr[A+2>>0]=0|tr[e+2>>0],tr[A+3>>0]=0|tr[e+3>>0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|i);)tr[A>>0]=0|tr[e>>0],A=A+1|0,e=e+1|0;return 0|f}function wb(A,e,r){var i=0;if((0|(e|=0))<(0|(A|=0))&(0|A)<(e+(r|=0)|0)){for(e=e+r|0,A=(i=A)+r|0;0<(0|r);)e=e-1|0,r=r-1|0,tr[(A=A-1|0)>>0]=0|tr[e>>0];A=i}else hb(A,e,r);return 0|A}function vb(A,e,r){e|=0;var i,f=0,n=0,t=0;if(i=(A|=0)+(r|=0)|0,e&=255,67<=(0|r)){for(;3&A;)tr[A>>0]=e,A=A+1|0;for(n=(f=-4&i|0)-64|0,t=e|e<<8|e<<16|e<<24;(0|A)<=(0|n);)ar[A>>2]=t,ar[A+4>>2]=t,ar[A+8>>2]=t,ar[A+12>>2]=t,ar[A+16>>2]=t,ar[A+20>>2]=t,ar[A+24>>2]=t,ar[A+28>>2]=t,ar[A+32>>2]=t,ar[A+36>>2]=t,ar[A+40>>2]=t,ar[A+44>>2]=t,ar[A+48>>2]=t,ar[A+52>>2]=t,ar[A+56>>2]=t,ar[A+60>>2]=t,A=A+64|0;for(;(0|A)<(0|f);)ar[A>>2]=t,A=A+4|0}for(;(0|A)<(0|i);)tr[A>>0]=e,A=A+1|0;return i-r|0}function mb(A){return 0}function gb(A){return 0}function Zb(A){return 0}function pb(A){return 0<=(A=+A)?+v(A+.5):+m(A-.5)}function yb(A){var e,r;return 0<(0|(r=(A|=0)+15&-16|0))&(0|(A=(e=0|ar[b>>2])+r|0))<(0|e)|(0|A)<0?(B(),F(12),-1):(0|(ar[b>>2]=A))>(0|y())&&0==(0|p())?(ar[b>>2]=e,F(12),-1):0|e}function Bb(){return Z(0),0}function Eb(A){return Z(1),0}function Xb(A,e){return Z(2),0}function Wb(A,e,r){return Z(3),0}function Ib(A,e,r,i,f){return Z(5),0}function Cb(A,e,r,i,f){return Z(6),0}function Gb(A,e,r,i,f,n){return Z(7),0}function Vb(A,e,r,i,f,n){return Z(8),0}function Fb(A,e,r,i,f,n,t){return Z(9),0}function Rb(A,e,r,i,f,n,t,o){return Z(10),0}function Nb(){Z(11)}function _b(A){Z(12)}function Yb(A,e){Z(13)}function Qb(A,e,r){Z(14)}function Db(A,e,r,i){Z(15)}function Jb(A,e,r,i,f){Z(16)}function Mb(A,e,r,i,f,n){Z(17)}function Tb(A,e,r,i,f,n,t){Z(18)}function Ub(A,e,r,i,f,n,t,o){Z(19)}function Sb(A,e,r,i,f,n,t,o,a){Z(20)}function Ob(A,e,r,i,f,n,t,o,a,c){Z(21)}var zb=[Bb,function(){var A,e,r=0,i=0,f=0;for(i=34509,f=(r=61161)+22|0;tr[r>>0]=0|tr[i>>0],i=i+1|0,(0|(r=r+1|0))<(0|f););if(80<=(10+(0|Vc(34542))|0)>>>0)return 61161;for(i=34531,f=(r=61161+(0|Vc(61161))|0)+11|0;tr[r>>0]=0|tr[i>>0],i=i+1|0,(0|(r=r+1|0))<(0|f););return A=61161,e=34542,e|=0,function(A,e){!function(A,e){A|=0;var r=0,i=0;r=e|=0;A:do{if(3&(r^A))i=8;else{if(3&r)do{if(r=0|tr[e>>0],!((tr[A>>0]=r)<<24>>24))break A;e=e+1|0,A=A+1|0}while(0!=(3&e|0));if(!((-2139062144&(r=0|ar[e>>2])^-2139062144)&r+-16843009))for(i=A;e=e+4|0,A=i+4|0,ar[i>>2]=r,!((-2139062144&(r=0|ar[e>>2])^-2139062144)&r+-16843009|0);)i=A;i=8}}while(0);if(8==(0|i)&&(i=0|tr[e>>0],(tr[A>>0]=i)<<24>>24))for(;A=A+1|0,i=0|tr[(e=e+1|0)>>0],(tr[A>>0]=i)<<24>>24!=0;);}(A|=0,e|=0)}((A|=0)+(0|Vc(A))|0,e),61161},function(){return 17432576},function(){var A,e,r,i,f,n;return A=0|hu(8),ar[A>>2]=0,r=(ar[(e=4+A|0)>>2]=0)|hu(92),ar[4+r>>2]=0,ar[8+r>>2]=0,ar[r>>2]=6336,f=i=12+r|0,ar[(f|=0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=30025,ar[f+20>>2]=0,ar[f+24>>2]=0,ar[f+16>>2]=f+20,ar[f+32>>2]=0,ar[f+36>>2]=0,ar[f+28>>2]=f+32,ar[(n=f+40|0)>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,ar[12+n>>2]=0,ar[16+n>>2]=0,ar[20+n>>2]=0,ar[24+n>>2]=0,ar[f+68>>2]=4,ar[f+72>>2]=32768,ar[f+76>>2]=32768,function(A){A|=0;var e=0,r=0,i=0,f=0,n=0;if(n=0|hu(132),ar[n+4>>2]=0,ar[n+8>>2]=0,ar[n>>2]=6364,co(e=n+12|0),ar[(r=A+60|0)>>2]=e,i=0|ar[(f=A+64|0)>>2],ar[f>>2]=n,i&&(du(i),e=0|ar[r>>2]),function(A){var e,r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0;if(ur=(w=ur)+64|0,f=w+48|0,t=w+40|0,o=w+32|0,a=w+24|0,l=w+16|0,b=w+8|0,h=(d=w)+56|0,v=(ar[(A|=0)>>2]=0)|ar[(N=A+4|0)>>2],(ar[N>>2]=0)|v&&du(v),g=0|ar[(k=A+8|0)>>2],(0|(v=0|ar[(N=A+12|0)>>2]))!=(0|g))for(;m=v+-8|0,ar[N>>2]=m,(0|(v=(v=0|ar[v+-4>>2])?(du(v),0|ar[N>>2]):m))!=(0|g););R=0|hu(96),ar[R+4>>2]=0,ar[R+8>>2]=0,ar[R>>2]=4600,Mt(F=R+16|0),ar[R+60>>2]=0,ar[R+64>>2]=0,ar[R+68>>2]=0,ar[F>>2]=4436,ar[(V=R+72|0)>>2]=0,ar[V+4>>2]=0,ar[V+8>>2]=0,ar[V+12>>2]=0,ar[V+16>>2]=0,ar[R+36>>2]=1718909296,tr[R+52>>0]=0,ar[(V=A+20|0)>>2]=F,v=0|ar[(F=A+24|0)>>2],ar[F>>2]=R,0|v&&du(v),R=0|hu(104),ar[R+4>>2]=0,ar[R+8>>2]=0,ar[R>>2]=4656,Mt(g=R+16|0),ar[R+60>>2]=0,ar[R+64>>2]=0,ar[R+68>>2]=0,ar[g>>2]=4684,ar[R+72>>2]=0,ar[R+76>>2]=1885954932,ar[(m=R+80|0)>>2]=0,ar[m+4>>2]=0,ar[m+8>>2]=0,ar[m+12>>2]=0,ar[m+16>>2]=0,ar[m+20>>2]=0,ar[R+36>>2]=1751411826,tr[R+52>>0]=1,ar[(m=A+28|0)>>2]=g,v=0|ar[(g=A+32|0)>>2],ar[g>>2]=R,0|v&&du(v),G=0|hu(72),ar[G+4>>2]=0,ar[G+8>>2]=0,ar[G>>2]=4628,Mt(R=G+16|0),ar[G+60>>2]=0,ar[G+64>>2]=0,ar[G+68>>2]=0,ar[R>>2]=4468,ar[G+36>>2]=1835365473,tr[G+52>>0]=1,ar[(s=A+36|0)>>2]=R,v=0|ar[(R=A+40|0)>>2],ar[R>>2]=G,0|v&&du(v),G=0|hu(72),ar[G+4>>2]=0,ar[G+8>>2]=0,ar[G>>2]=5016,Mt(I=G+16|0),ar[G+60>>2]=0,ar[G+64>>2]=0,ar[G+68>>2]=0,ar[I>>2]=5044,ar[G+36>>2]=1768973167,tr[G+52>>0]=0,ar[(c=A+44|0)>>2]=I,v=0|ar[(I=A+48|0)>>2],ar[I>>2]=G,0|v&&du(v),C=0|hu(88),ar[C+4>>2]=0,ar[C+8>>2]=0,ar[C>>2]=5076,Mt(G=C+16|0),ar[C+60>>2]=0,ar[C+64>>2]=0,ar[C+68>>2]=0,ar[G>>2]=5104,ar[C+72>>2]=0,ar[C+76>>2]=0,ar[C+80>>2]=0,ar[C+36>>2]=1768975713,tr[C+52>>0]=1,ar[(u=A+52|0)>>2]=G,v=0|ar[(G=A+56|0)>>2],ar[G>>2]=C,0|v&&du(v),C=0|hu(104),ar[C+4>>2]=0,ar[C+8>>2]=0,ar[C>>2]=4776,Mt(E=C+16|0),ar[C+60>>2]=0,ar[C+64>>2]=0,ar[C+68>>2]=0,ar[E>>2]=4804,B=C+72|0,ar[C+96>>2]=0,ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,tr[B+20>>0]=0,ar[C+36>>2]=1768714083,tr[C+52>>0]=1,ar[(B=A+60|0)>>2]=E,v=0|ar[(E=A+64|0)>>2],ar[E>>2]=C,0|v&&du(v),C=0|hu(72),ar[C+4>>2]=0,ar[C+8>>2]=0,ar[C>>2]=4836,Mt(X=C+16|0),ar[C+60>>2]=0,ar[C+64>>2]=0,ar[C+68>>2]=0,ar[X>>2]=4864,ar[C+36>>2]=1768517222,tr[C+52>>0]=1,ar[(n=A+92|0)>>2]=X,v=0|ar[(X=A+96|0)>>2],ar[X>>2]=C,0|v&&du(v),y=0|hu(72),ar[y+4>>2]=0,ar[y+8>>2]=0,ar[y>>2]=4956,Mt(W=y+16|0),ar[y+60>>2]=0,ar[y+64>>2]=0,ar[y+68>>2]=0,ar[W>>2]=4984,ar[y+36>>2]=1768977008,tr[y+52>>0]=0,ar[(C=A+100|0)>>2]=W,v=0|ar[(W=A+104|0)>>2],ar[W>>2]=y,0|v&&du(v),p=0|hu(80),ar[p+4>>2]=0,ar[p+8>>2]=0,ar[p>>2]=4716,Mt(y=p+16|0),ar[p+60>>2]=0,ar[p+64>>2]=0,ar[p+68>>2]=0,ar[y>>2]=4744,ar[p+72>>2]=0,ar[p+36>>2]=1885959277,tr[p+52>>0]=1,ar[(i=A+84|0)>>2]=y,v=0|ar[(y=A+88|0)>>2],ar[y>>2]=p,0|v&&du(v),r=0|ar[s>>2],Z=0|ar[m>>2],ar[f>>2]=Z,p=4+f|0,m=0|ar[g>>2],(g=0==(0|(ar[p>>2]=m)))||bu(m),(0|(v=0|ar[(e=48+r|0)>>2]))==(0|ar[52+r>>2])?Ut(44+r|0,f):(ar[v>>2]=Z,ar[v+4>>2]=m,g||(bu(m),v=0|ar[e>>2]),ar[e>>2]=v+8),0|(v=0|ar[p>>2])&&du(v),m=0|ar[s>>2],ar[t>>2]=ar[i>>2],Z=4+t|0,v=0|ar[y>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,t):(ar[v>>2]=ar[t>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[s>>2],ar[o>>2]=ar[B>>2],Z=4+o|0,v=0|ar[E>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,o):(ar[v>>2]=ar[o>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[s>>2],ar[a>>2]=ar[n>>2],Z=4+a|0,v=0|ar[X>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,a):(ar[v>>2]=ar[a>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[s>>2],ar[l>>2]=ar[C>>2],Z=4+l|0,v=0|ar[W>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,l):(ar[v>>2]=ar[l>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[C>>2],ar[b>>2]=ar[c>>2],Z=4+b|0,v=0|ar[I>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,b):(ar[v>>2]=ar[b>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),m=0|ar[C>>2],ar[d>>2]=ar[u>>2],Z=d+4|0,v=0|ar[G>>2],0|(ar[Z>>2]=v)&&bu(v),(0|(v=0|ar[(g=m+48|0)>>2]))==(0|ar[m+52>>2])?Ut(m+44|0,d):(ar[v>>2]=ar[d>>2],m=0|ar[Z>>2],(ar[v+4>>2]=m)&&(bu(m),v=0|ar[g>>2]),ar[g>>2]=v+8),0|(v=0|ar[Z>>2])&&du(v),uo(v=A+108|0,0|ar[(m=A+112|0)>>2]),ar[A+116>>2]=0,ar[v>>2]=m,ar[m>>2]=0,ar[h>>2]=ar[V>>2],m=4+h|0,v=0|ar[F>>2],0|(ar[m>>2]=v)&&bu(v),v=0|ar[N>>2],g=A+16|0;do{if(v>>>0<(0|ar[g>>2])>>>0)ar[v>>2]=ar[h>>2],ar[v+4>>2]=ar[m>>2],ar[h>>2]=0,ar[m>>2]=0,ar[N>>2]=v+8;else{if(ee(k,h),!(v=0|ar[m>>2]))break;du(v)}}while(0);if(ar[h>>2]=ar[s>>2],m=4+h|0,v=0|ar[R>>2],0|(ar[m>>2]=v)&&bu(v),(v=0|ar[N>>2])>>>0<(0|ar[g>>2])>>>0)return ar[v>>2]=ar[h>>2],ar[v+4>>2]=ar[m>>2],ar[h>>2]=0,ar[m>>2]=0,ar[N>>2]=v+8,ur=w;ee(k,h),(v=0|ar[m>>2])&&du(v),ur=w}(e),vl(f=A+28|0,0|ar[(i=A+32|0)>>2]),ar[A+36>>2]=0,ar[f>>2]=i,ar[i>>2]=0,i=0|ar[A+40>>2],(0|(e=0|ar[(f=A+44|0)>>2]))!=(0|i))for(;r=e+-8|0,ar[f>>2]=r,(0|(e=(e=0|ar[e+-4>>2])?(du(e),0|ar[f>>2]):r))!=(0|i););ar[A+52>>2]=0,e=0|ar[(n=A+56|0)>>2],ar[n>>2]=0,e&&du(e)}(f),ar[A>>2]=i,ar[e>>2]=r,0|A},function(){var A;return A=0|hu(12),ar[A>>2]=0,ar[4+A>>2]=0,(ar[8+A>>2]=0)|A},Bb,Bb,Bb],jb=[Eb,function(A){return D=0|ar[(A=(A|=0)+16|0)+4>>2],0|ar[A>>2]},function(A){return 0},function(A){return 0},function(A){var e=0,r=0,i=0;return(i=0|ar[(e=(A|=0)+44|0)>>2])>>>0<(r=0|ar[A+24>>2])>>>0&&(i=ar[e>>2]=r),8&ar[A+48>>2]?((r=0|ar[(e=A+16|0)>>2])>>>0>>0&&(r=ar[e>>2]=i),r>>>0<=(e=0|ar[A+12>>2])>>>0?0|(A=-1):0|(A=0|cr[e>>0])):0|(A=-1)},function(A){var e=0;return 0|(A=-1==(0|(e=0|jb[127&ar[36+(0|ar[(A|=0)>>2])>>2]](A)))?-1:(A=0|ar[(e=A+12|0)>>2],ar[e>>2]=A+1,0|hf(0|tr[A>>0])))},function(A){return 1852009592},function(A){return 0|ar[(A|=0)+4>>2]},function(A){return 0|(1==(0|(A|=0))?100:0)},function(A){var e,r,i;return r=ur=(e=ur)+31&-32,ur=ur+16|0,A=0|(i=0|ar[(A|=0)+60>>2],0|(i|=0)),ar[r>>2]=A,A=0|Ic(0|J(6,0|r)),ur=e,0|A},function(A){return-1},function(A){return 0},function(A){return 0},function(A){return-1},function(A){var e=0;return 0|(A=-1==(0|(e=0|jb[127&ar[36+(0|ar[(A|=0)>>2])>>2]](A)))?-1:(A=0|ar[(e=A+12|0)>>2],ar[e>>2]=A+4,0|gf(0|ar[A>>2])))},function(A){var e,r,i,f,n,t,o,a,c=0,l=0;i=ur=(a=ur)+31&-32,ur=ur+16|0,f=(A|=0)+36|0,n=A+40|0,t=8+(r=8+i|0)|0,o=r,e=A+32|0;A:for(;;){if(A=0|ar[f>>2],A=0|Kb[31&ar[20+(0|ar[A>>2])>>2]](A,0|ar[n>>2],r,t,i),(0|Ui(r,1,l=(0|ar[i>>2])-o|0,0|ar[e>>2]))!=(0|l)){A=-1;break}switch(0|A){case 1:break;case 2:A=-1;break A;default:c=4;break A}}return 4==(0|c)&&(A=(0!=(0|Oi(0|ar[e>>2])))<<31>>31),ur=a,0|A},function(A){var e,r,i,f,n,t,o,a,c=0,l=0;i=ur=(a=ur)+31&-32,ur=ur+16|0,f=(A|=0)+36|0,n=A+40|0,t=8+(r=8+i|0)|0,o=r,e=A+32|0;A:for(;;){if(A=0|ar[f>>2],A=0|Kb[31&ar[20+(0|ar[A>>2])>>2]](A,0|ar[n>>2],r,t,i),(0|Ui(r,1,l=(0|ar[i>>2])-o|0,0|ar[e>>2]))!=(0|l)){A=-1;break}switch(0|A){case 1:break;case 2:A=-1;break A;default:c=4;break A}}return 4==(0|c)&&(A=(0!=(0|Oi(0|ar[e>>2])))<<31>>31),ur=a,0|A},function(A){return 0|fn(A|=0,0)},function(A){return 0|fn(A|=0,1)},function(A){return 0|tn(A|=0,0)},function(A){return 0|tn(A|=0,1)},function(A){return 2},function(A){return 0==(0|tr[56696])&&0|ib(56696)&&(function(){var A=0,e=0;if(0==(0|tr[56704])&&0|ib(56704)){e=59936;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(60104!=(0|e))}Gu(59936,54302),Gu(59948,54309),Gu(59960,54316),Gu(59972,54324),Gu(59984,54334),Gu(59996,54343),Gu(60008,54350),Gu(60020,54359),Gu(60032,54363),Gu(60044,54367),Gu(60056,54371),Gu(60068,54375),Gu(60080,54379),Gu(60092,54383)}(),ar[15026]=59936),0|ar[15026]},function(A){return 0==(0|tr[56680])&&0|ib(56680)&&(function(){var A=0,e=0;if(0==(0|tr[56688])&&0|ib(56688)){e=59644;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(59932!=(0|e))}Gu(59644,54172),Gu(59656,54180),Gu(59668,54189),Gu(59680,54195),Gu(59692,54201),Gu(59704,54205),Gu(59716,54210),Gu(59728,54215),Gu(59740,54222),Gu(59752,54232),Gu(59764,54240),Gu(59776,54249),Gu(59788,54258),Gu(59800,54262),Gu(59812,54266),Gu(59824,54270),Gu(59836,54201),Gu(59848,54274),Gu(59860,54278),Gu(59872,54282),Gu(59884,54286),Gu(59896,54290),Gu(59908,54294),Gu(59920,54298)}(),ar[14983]=59644),0|ar[14983]},function(A){return 0==(0|tr[56664])&&0|ib(56664)&&(function(){var A=0,e=0;if(0==(0|tr[56672])&&0|ib(56672)){e=59352;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(59640!=(0|e))}Gu(59352,54166),Gu(59364,54169)}(),ar[14910]=59352),0|ar[14910]},function(A){A|=0;var e,r,i=0,f=0;return e=ur=(r=ur)+31&-32,ur=ur+16|0,0==(0|tr[56656])&&0|ib(56656)&&(ar[14835]=0,ar[14836]=0,4294967279<(i=(ar[14837]=0)|Yf(54145))>>>0&&pu(),i>>>0<11?(tr[59351]=i,A=59340):(A=0|hu(f=i+16&-16),ar[14835]=A,ar[14837]=-2147483648|f,ar[14836]=i),wf(A,54145,i),Qf(A+i|(tr[e>>0]=0),e)),ur=r,59340},function(A){A|=0;var e,r,i=0,f=0;return e=ur=(r=ur)+31&-32,ur=ur+16|0,0==(0|tr[56648])&&0|ib(56648)&&(ar[14832]=0,ar[14833]=0,4294967279<(i=(ar[14834]=0)|Yf(54133))>>>0&&pu(),i>>>0<11?(tr[59339]=i,A=59328):(A=0|hu(f=i+16&-16),ar[14832]=A,ar[14834]=-2147483648|f,ar[14833]=i),wf(A,54133,i),Qf(A+i|(tr[e>>0]=0),e)),ur=r,59328},function(A){A|=0;var e,r,i=0,f=0;return e=ur=(r=ur)+31&-32,ur=ur+16|0,0==(0|tr[56640])&&0|ib(56640)&&(ar[14829]=0,ar[14830]=0,4294967279<(i=(ar[14831]=0)|Yf(54124))>>>0&&pu(),i>>>0<11?(tr[59327]=i,A=59316):(A=0|hu(f=i+16&-16),ar[14829]=A,ar[14831]=-2147483648|f,ar[14830]=i),wf(A,54124,i),Qf(A+i|(tr[e>>0]=0),e)),ur=r,59316},function(A){A|=0;var e,r,i=0,f=0;return e=ur=(r=ur)+31&-32,ur=ur+16|0,0==(0|tr[56632])&&0|ib(56632)&&(ar[14826]=0,ar[14827]=0,4294967279<(i=(ar[14828]=0)|Yf(54115))>>>0&&pu(),i>>>0<11?(tr[59315]=i,A=59304):(A=0|hu(f=i+16&-16),ar[14826]=A,ar[14828]=-2147483648|f,ar[14827]=i),wf(A,54115,i),Qf(A+i|(tr[e>>0]=0),e)),ur=r,59304},function(A){return 2},function(A){return 0==(0|tr[56776])&&0|ib(56776)&&(function(){var A=0,e=0;if(0==(0|tr[56784])&&0|ib(56784)){e=60748;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(60916!=(0|e))}Tu(60748,15904),Tu(60760,15932),Tu(60772,15960),Tu(60784,15992),Tu(60796,16032),Tu(60808,16068),Tu(60820,16096),Tu(60832,16132),Tu(60844,16148),Tu(60856,16164),Tu(60868,16180),Tu(60880,16196),Tu(60892,16212),Tu(60904,16228)}(),ar[15229]=60748),0|ar[15229]},function(A){return 0==(0|tr[56760])&&0|ib(56760)&&(function(){var A=0,e=0;if(0==(0|tr[56768])&&0|ib(56768)){e=60456;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(60744!=(0|e))}Tu(60456,15384),Tu(60468,15416),Tu(60480,15452),Tu(60492,15476),Tu(60504,15500),Tu(60516,15516),Tu(60528,15536),Tu(60540,15556),Tu(60552,15584),Tu(60564,15624),Tu(60576,15656),Tu(60588,15692),Tu(60600,15728),Tu(60612,15744),Tu(60624,15760),Tu(60636,15776),Tu(60648,15500),Tu(60660,15792),Tu(60672,15808),Tu(60684,15824),Tu(60696,15840),Tu(60708,15856),Tu(60720,15872),Tu(60732,15888)}(),ar[15186]=60456),0|ar[15186]},function(A){return 0==(0|tr[56744])&&0|ib(56744)&&(function(){var A=0,e=0;if(0==(0|tr[56752])&&0|ib(56752)){e=60164;do{for(ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,A=0;3!=(0|A);)ar[e+(A<<2)>>2]=0,A=A+1|0;e=e+12|0}while(60452!=(0|e))}Tu(60164,15360),Tu(60176,15372)}(),ar[15113]=60164),0|ar[15113]},function(A){A|=0;var e,r=0,i=0,f=0;if(A=ur=(e=ur)+31&-32,ur=ur+16|0,0==(0|tr[56736])&&0|ib(56736)){ar[15038]=0,ar[15039]=0,1073741807<(i=(ar[15040]=0)|Mr(15276))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(r=i+4&-4)>>>0)){f=0|hu(r<<2),ar[15038]=f,ar[15040]=-2147483648|r,ar[15039]=i;break}lA()}else tr[60163]=i,f=60152}while(0);Zf(f,15276,i),ln(f+(i<<2)|(ar[A>>2]=0),A)}return ur=e,60152},function(A){A|=0;var e,r=0,i=0,f=0;if(A=ur=(e=ur)+31&-32,ur=ur+16|0,0==(0|tr[56728])&&0|ib(56728)){ar[15035]=0,ar[15036]=0,1073741807<(i=(ar[15037]=0)|Mr(15228))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(r=i+4&-4)>>>0)){f=0|hu(r<<2),ar[15035]=f,ar[15037]=-2147483648|r,ar[15036]=i;break}lA()}else tr[60151]=i,f=60140}while(0);Zf(f,15228,i),ln(f+(i<<2)|(ar[A>>2]=0),A)}return ur=e,60140},function(A){A|=0;var e,r=0,i=0,f=0;if(A=ur=(e=ur)+31&-32,ur=ur+16|0,0==(0|tr[56720])&&0|ib(56720)){ar[15032]=0,ar[15033]=0,1073741807<(i=(ar[15034]=0)|Mr(15192))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(r=i+4&-4)>>>0)){f=0|hu(r<<2),ar[15032]=f,ar[15034]=-2147483648|r,ar[15033]=i;break}lA()}else tr[60139]=i,f=60128}while(0);Zf(f,15192,i),ln(f+(i<<2)|(ar[A>>2]=0),A)}return ur=e,60128},function(A){A|=0;var e,r=0,i=0,f=0;if(A=ur=(e=ur)+31&-32,ur=ur+16|0,0==(0|tr[56712])&&0|ib(56712)){ar[15029]=0,ar[15030]=0,1073741807<(i=(ar[15031]=0)|Mr(15156))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(r=i+4&-4)>>>0)){f=0|hu(r<<2),ar[15029]=f,ar[15031]=-2147483648|r,ar[15030]=i;break}lA()}else tr[60127]=i,f=60116}while(0);Zf(f,15156,i),ln(f+(i<<2)|(ar[A>>2]=0),A)}return ur=e,60116},function(A){return 127},function(A){return 127},function(A){return 0},function(A){return 127},function(A){return 127},function(A){return 0},function(A){return 2147483647},function(A){return 2147483647},function(A){return 0},function(A){return 2147483647},function(A){return 2147483647},function(A){return 0},function(A){return 0},function(A){return 0},function(A){return 4},function(A){var e,r=0;if(r=0|rf(0|ar[(A=(A|=0)+8|0)>>2]),e=0|function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,n=0,t=0;f=ur=(i=ur)+31&-32,ur=ur+16|0;A:do{if(e){do{if(0|r){if(t=0==(0|A)?f:A,-1<(A=0|tr[e>>0])<<24>>24){ar[t>>2]=255&A,A=A<<24>>24!=0&1;break A}if(n=10488,A=0|tr[e>>0],!(0|ar[ar[n>>2]>>2])){ar[t>>2]=A<<24>>24&57343,A=1;break A}if((A=(255&A)-194|0)>>>0<=50){if(f=e+1|0,n=0|ar[9896+(A<<2)>>2],r>>>0<4&&n&-2147483648>>>((6*r|0)-6|0)|0)break;if(((r=(A=0|cr[f>>0])>>>3)+-16|r+(n>>26))>>>0<=7){if(0<=(0|(A=A+-128|n<<6))){ar[t>>2]=A,A=2;break A}if((f=(0|cr[e+2>>0])-128|0)>>>0<=63){if(0<=(0|(f|=A<<6))){ar[t>>2]=f,A=3;break A}if((A=(0|cr[e+3>>0])-128|0)>>>0<=63){ar[t>>2]=A|f<<6,A=4;break A}}}}}}while(0);ar[(A=10364)>>2]=84,A=-1}else A=0}while(0);return ur=i,0|A}(0,0,4),0|r&&rf(r),e)A=-1;else{if(A=0|ar[A>>2])return r=0|rf(A),A=0|yi(),0|r&&rf(r),1==(0|A)|0;A=1}return 0|A},function(A){return 0},function(A){var e=0;return(A=0|ar[(A|=0)+8>>2])?(e=0|rf(A),A=0|yi(),e&&rf(e)):A=1,0|A},function(A){return 0|tr[(A|=0)+8>>0]},function(A){return 0|tr[(A|=0)+9>>0]},function(A){return 0|ar[(A|=0)+8>>2]},function(A){return 0|ar[(A|=0)+12>>2]},function(A){return 1},function(A){return 1},function(A){return 1},function(A){return 0},function(A){return 0},function(A){return 4},function(A){return 55847},function(A){return 0|(e=(A|=0)+4|0,0|ar[(e|=0)>>2]);var e},function(A){var e,r,i,f,n=0;return ur=(r=ur)+16|0,f=r,is[511&(A|=0)](f),A=0|yc((n=(i=(n=0|tr[f+11>>0])<<24>>24<0)?0|ar[f+4>>2]:255&n)+4|0),ar[A>>2]=n,e=0|ar[f>>2],hb(A+4|0,0|(i?e:f),0|n),ur=(i&&vu(e),r),0|A},function(A){return 0|zb[7&(A|=0)]()},function(A){return 0|zb[7&(A|=0)]()},function(A){var e,r,i,f,n,t=0;if(ur=(n=ur)+16|0,sl(i=n,40+(0|ar[(A|=0)>>2])|0),f=(t=0|ar[(r=i+4|0)>>2])-(A=0|ar[i>>2])>>3,!(e=A))return ur=n,0|f;if((0|t)!=(0|e)){for(;A=t+-8|0,ar[r>>2]=A,(t=0|ar[t+-4>>2])&&(du(t),A=0|ar[r>>2]),(0|A)!=(0|e);)t=A;A=0|ar[i>>2]}return vu(A),ur=n,0|f},function(A){return 1272},function(A){return 1312},function(A){return 1352},Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb,Eb],Hb=[Xb,function(A,e){e|=0;var r,i=0,f=0,n=0;if((i=0|ar[(f=(A|=0)+44|0)>>2])>>>0<(n=0|ar[A+24>>2])>>>0&&(i=ar[f>>2]=n),f=0|ar[(r=A+12|0)>>2],(0|ar[A+8>>2])>>>0>=f>>>0)return 0|(e=-1);if(-1==(0|e))return ar[r>>2]=f+-1,ar[A+16>>2]=i,(e=0)|e;if(16&ar[A+48>>2])n=255&e,f=f+-1|0;else if((n=255&e)<<24>>24!=(0|tr[(f=f+-1|0)>>0]))return 0|(e=-1);return ar[r>>2]=f,ar[A+16>>2]=i,tr[f>>0]=n,0|e},function(A,e){var r,i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;if(ur=(o=ur)+16|0,i=o,-1==(0|(e|=0)))return ur=o,(w=0)|w;if(n=(A|=0)+8|0,t=(0|ar[(f=A+12|0)>>2])-(0|ar[n>>2])|0,(0|(d=0|ar[(w=A+24|0)>>2]))==(0|(a=0|ar[(r=A+28|0)>>2]))){if(!(16&ar[(s=A+48|0)>>2]))return ur=o,0|(w=-1);b=0|ar[(u=A+20|0)>>2],k=(0|ar[(h=A+44|0)>>2])-b|0,_u(l=A+32|0,0),Vu(l,c=(0|tr[(a=l+11|0)>>0])<0?(2147483647&ar[A+40>>2])-1|0:10,0),(a=0|tr[a>>0])<<24>>24<0?(c=0|ar[l>>2],a=0|ar[A+36>>2]):(c=l,a&=255),a=c+a|0,ar[u>>2]=c,ar[r>>2]=a,d=c+(d-b)|0,ar[w>>2]=d,c=c+k|0,ar[h>>2]=c,l=k=h,b=a}else s=A+48|0,c=0|ar[(l=k=c=A+44|0)>>2],b=a;return u=d+1|0,ar[i>>2]=u,c=0|ar[(u>>>0>>0?l:i)>>2],ar[k>>2]=c,8&ar[s>>2]|0&&((0|tr[(a=A+32|0)+11>>0])<0&&(a=0|ar[a>>2]),ar[n>>2]=a,ar[f>>2]=a+t,ar[A+16>>2]=c),(0|d)==(0|b)?(w=0|Hb[31&ar[52+(0|ar[A>>2])>>2]](A,255&e),ur=o,0|w):(ar[w>>2]=u,tr[d>>0]=e,ur=o,0|(w=255&e))},function(A,e){return 0},function(A,e){e|=0;var r=0;return r=0|ar[(A|=0)+376156>>2],(0|ar[A+376160>>2])-r>>2>>>0<=e>>>0?(r=0)|r:0|(r=0|ar[r+(e<<2)>>2])},function(A,e){return(0|(e|=0))<=-1?(e=0)|e:0|(e=((0|ar[(A|=0)+376160>>2])-(0|ar[A+376156>>2])>>2|0)>(0|e))},function(A,e){return-1},function(A,e){return-1},function(A,e){return-1},function(A,e){return-1},function(A,e){A|=0,e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;f=ur=(n=ur)+31&-32,ur=ur+32|0,r=16+f|0,o=8+f|0,i=4+f|0;do{if(0|Uf(e,-1))t=15;else{if(s=0|pf(e),ar[o>>2]=s,s=A+32|0,0|tr[A+44>>0]){if(1==(0|Ui(o,4,1,0|ar[s>>2]))){t=15;break}A=-1;break}for(u=o+4|0,b=A+36|0,a=A+40|0,c=8+(ar[i>>2]=r)|0,l=r,A=o;;){if(t=0|ar[b>>2],o=1==(0|(t=0|es[15&ar[12+(0|ar[t>>2])>>2]](t,0|ar[a>>2],A,u,f,r,c,i))),(0|ar[f>>2])==(0|A)){t=14;break}if(3==(0|t)){if(1!=(0|Ui(A,1,1,0|ar[s>>2]))){t=14;break}}else{if(1!=(1|t)){t=14;break}if((0|Ui(r,1,t=(0|ar[i>>2])-l|0,0|ar[s>>2]))!=(0|t)){t=14;break}A=o?0|ar[f>>2]:A}if(!o){t=13;break}}if(13==(0|t)){t=15;break}if(14==(0|t)){A=-1;break}}}while(0);return 15==(0|t)&&(A=0|function(A){0|Uf(A|=0,-1)&&(A=0);return 0|A}(e)),ur=n,0|A},function(A,e){A|=0,e|=0;var r,i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;f=ur=(n=ur)+31&-32,ur=ur+32|0,r=16+f|0,o=8+f|0,i=4+f|0;do{if(0|Mf(e,-1))t=15;else{if(s=0|vf(e),tr[o>>0]=s,s=A+32|0,0|tr[A+44>>0]){if(1==(0|Ui(o,1,1,0|ar[s>>2]))){t=15;break}A=-1;break}for(u=o+1|0,b=A+36|0,a=A+40|0,c=8+(ar[i>>2]=r)|0,l=r,A=o;;){if(t=0|ar[b>>2],o=1==(0|(t=0|es[15&ar[12+(0|ar[t>>2])>>2]](t,0|ar[a>>2],A,u,f,r,c,i))),(0|ar[f>>2])==(0|A)){t=14;break}if(3==(0|t)){if(1!=(0|Ui(A,1,1,0|ar[s>>2]))){t=14;break}}else{if(1!=(1|t)){t=14;break}if((0|Ui(r,1,t=(0|ar[i>>2])-l|0,0|ar[s>>2]))!=(0|t)){t=14;break}A=o?0|ar[f>>2]:A}if(!o){t=13;break}}if(13==(0|t)){t=15;break}if(14==(0|t)){A=-1;break}}}while(0);return 15==(0|t)&&(A=0|function(A){0|Mf(A|=0,-1)&&(A=0);return 0|A}(e)),ur=n,0|A},function(A,e){var r,i,f,n,t,o=0,a=0,c=0,l=0;c=ur=(t=ur)+31&-32,ur=ur+32|0,r=c+16|0,i=c+8|0,a=c+4|0,l=0|Uf(e|=0,-1),o=0!=(0|tr[(n=(A|=0)+52|0)>>0]),f=A+48|0;do{if(l)o?o=e:(l=1&(1^(0|Uf(o=0|ar[f>>2],-1))),tr[n>>0]=l);else{if(o){switch(l=0|pf(0|ar[f>>2]),ar[a>>2]=l,l=0|ar[A+36>>2],0|es[15&ar[12+(0|ar[l>>2])>>2]](l,0|ar[A+40>>2],a,a+4|0,c,r,8+r|0,i)){case 1:case 2:c=10;break;case 3:tr[r>>0]=ar[f>>2],ar[i>>2]=1+r,c=7;break;default:c=7}A:do{if(7==(0|c))for(o=A+32|0;;){if((a=0|ar[i>>2])>>>0<=r>>>0){a=1,o=0;break A}if(l=a+-1|0,ar[i>>2]=l,-1==(0|uf(0|tr[l>>0],0|ar[o>>2]))){c=10;break}}}while(0);if(10==(0|c)&&(a=0,o=-1),!a)break}ar[f>>2]=e,tr[n>>0]=1,o=e}}while(0);return ur=t,0|o},function(A,e){var r,i,f,n,t,o=0,a=0,c=0,l=0;c=ur=(t=ur)+31&-32,ur=ur+32|0,r=c+16|0,i=c+4|0,a=c+8|0,l=0|Mf(e|=0,-1),o=0!=(0|tr[(n=(A|=0)+52|0)>>0]),f=A+48|0;do{if(l)o?o=e:(l=1&(1^(0|Mf(o=0|ar[f>>2],-1))),tr[n>>0]=l);else{if(o){switch(l=0|vf(0|ar[f>>2]),tr[a>>0]=l,l=0|ar[A+36>>2],0|es[15&ar[12+(0|ar[l>>2])>>2]](l,0|ar[A+40>>2],a,a+1|0,c,r,8+r|0,i)){case 1:case 2:c=10;break;case 3:tr[r>>0]=ar[f>>2],ar[i>>2]=1+r,c=7;break;default:c=7}A:do{if(7==(0|c))for(o=A+32|0;;){if((a=0|ar[i>>2])>>>0<=r>>>0){a=1,o=0;break A}if(l=a+-1|0,ar[i>>2]=l,-1==(0|uf(0|tr[l>>0],0|ar[o>>2]))){c=10;break}}}while(0);if(10==(0|c)&&(a=0,o=-1),!a)break}ar[f>>2]=e,tr[n>>0]=1,o=e}}while(0);return ur=t,0|o},function(A,e){return-1<(e|=0)<<24>>24&&(e=(0|Tl())+((255&e)<<2)|0,e=255&ar[e>>2]),0|e},function(A,e){return-1<(e|=0)<<24>>24&&(e=(0|Ml())+(e<<24>>24<<2)|0,e=255&ar[e>>2]),0|e},function(A,e){return 0|(e|=0)},function(A,e){return(e|=0)>>>0<128&&(e=(0|Tl())+(e<<2)|0,e=0|ar[e>>2]),0|e},function(A,e){return(e|=0)>>>0<128&&(e=(0|Ml())+(e<<2)|0,e=0|ar[e>>2]),0|e},function(A,e){return(e|=0)<<24>>24|0},function(A,e){return e|=0,0|jb[127&(A|=0)](e)},function(A,e){var r,i;return e|=0,ur=(r=ur)+16|0,i=r,fs[63&(A|=0)](i,e),fA(0|ar[i>>2]),e=0|ar[i>>2],iA(0|e),ur=r,0|e},function(A,e){return 0|ar[(e|=0)+(0|ar[(A|=0)>>2])>>2]},function(A,e){return 0|ar[(e|=0)+(0|ar[(A|=0)>>2])>>2]},Xb,Xb,Xb,Xb,Xb,Xb,Xb,Xb],xb=[Wb,function(A,e,r){var i;return e|=0,r|=0,0|((0|(i=0|ar[(A=(A|=0)+8|0)+4>>2]))<(0|r)|((0|i)==(0|r)?(0|ar[A>>2])>>>0>>0:0)?2:0)},function(A,e,r){e|=0,r|=0;var i,f,n,t=0,o=0,a=0;return t=0|tb(0|(f=0|ar[(t=i=(A|=0)+16|0)>>2]),0|ar[t+4>>2],0|r,0),a=D,(0|(o=0|ar[4+(n=A+8|0)>>2]))<(0|a)|((0|a)==(0|o)?t>>>0>(0|ar[n>>2])>>>0:0)?(a=0)|a:(hb(0|e,(0|ar[A+4>>2])+f|0,0|r),o=0|tb(0|ar[(o=i)>>2],0|ar[o+4>>2],0|r,0),ar[(a=i)>>2]=o,ar[a+4>>2]=D,0|(a=1))},function(A,e,r){e|=0;var i,f=0;return(0|(r|=0))<0|((0|(f=0|ar[4+(i=(A|=0)+8|0)>>2]))<(0|r)|((0|f)==(0|r)?(0|ar[i>>2])>>>0>>0:0))?(f=0)|f:(ar[(f=A+16|0)>>2]=e,ar[f+4>>2]=r,0|(f=1))},function(A,e,r){return 0|(A|=0)},function(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;for(i=(A|=0)+12|0,f=A+16|0,o=0;!((0|r)<=(0|o));)if((n=0|ar[i>>2])>>>0<(t=0|ar[f>>2])>>>0)wf(e,n,t=(0|(a=r-o|0))<(0|(t=t-n|0))?a:t),ar[i>>2]=(0|ar[i>>2])+t,e=e+t|0,o=t+o|0;else{if(-1==(0|(n=0|jb[127&ar[40+(0|ar[A>>2])>>2]](A))))break;a=0|vf(n),tr[e>>0]=a,e=e+1|0,o=o+1|0}return 0|o},function(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;for(i=(A|=0)+24|0,f=A+28|0,n=0;!((0|r)<=(0|n));)if((t=0|ar[i>>2])>>>0<(o=0|ar[f>>2])>>>0)wf(t,e,o=(0|(a=r-n|0))<(0|(o=o-t|0))?a:o),ar[i>>2]=(0|ar[i>>2])+o,e=e+o|0,n=o+n|0;else{if(o=0|ar[52+(0|ar[A>>2])>>2],a=0|hf(0|tr[e>>0]),-1==(0|Hb[31&o](A,a)))break;e=e+1|0,n=n+1|0}return 0|n},function(A,e,r){e|=0,r|=0;var i,f,n=0;return n=ur=(f=ur)+31&-32,ur=ur+32|0,i=n,ar[(A|=0)+36>>2]=10,0==(64&ar[A>>2]|0)&&(ar[i>>2]=ar[A+60>>2],ar[i+4>>2]=21523,ar[i+8>>2]=n+16,0|Y(54,0|i))&&(tr[A+75>>0]=-1),n=0|Gc(A,e,r),ur=f,0|n},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0;return n=ur=(i=ur)+31&-32,ur=ur+32|0,n=(f=n)+20|0,ar[f>>2]=ar[A+60>>2],ar[f+4>>2]=0,ar[f+8>>2]=e,ar[f+12>>2]=n,ar[f+16>>2]=r,A=(0|Ic(0|R(140,0|f)))<0?ar[n>>2]=-1:0|ar[n>>2],ur=i,0|A},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t=0,o=0,a=0,c=0;return c=ur=(f=ur)+31&-32,ur=ur+32|0,ar[(c=(t=c)+16|0)>>2]=e,o=c+4|0,n=0|ar[(i=A+48|0)>>2],ar[o>>2]=r-(0!=(0|n)&1),a=A+44|0,ar[c+8>>2]=ar[a>>2],ar[c+12>>2]=n,ar[t>>2]=ar[A+60>>2],ar[t+4>>2]=c,ar[t+8>>2]=2,1<=(0|(t=0|Ic(0|N(145,0|t))))?(c=0|ar[o>>2])>>>0>>0&&(o=0|ar[a>>2],ar[(a=A+4|0)>>2]=o,ar[A+8>>2]=o+(t-c),t=(0|ar[i>>2]&&(ar[a>>2]=o+1,tr[e+(r+-1)>>0]=0|tr[o>>0]),r)):ar[A>>2]=ar[A>>2]|48&t^16,ur=f,0|t},Gc,function(A,e,r){var i,f;return e|=0,r|=0,hb(0|(f=0|ar[(i=(A|=0)+20|0)>>2]),0|e,0|(A=r>>>0<(A=(0|ar[A+16>>2])-f|0)>>>0?r:A)),ar[i>>2]=(0|ar[i>>2])+A,0|r},function(A,e,r){return 0|(A|=0)},function(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;for(i=(A|=0)+12|0,f=A+16|0,o=0;!((0|r)<=(0|o));)if((n=0|ar[i>>2])>>>0<(t=0|ar[f>>2])>>>0)Zf(e,n,t=(0|(a=r-o|0))<(0|(t=t-n>>2))?a:t),ar[i>>2]=(0|ar[i>>2])+(t<<2),e=e+(t<<2)|0,o=t+o|0;else{if(-1==(0|(n=0|jb[127&ar[40+(0|ar[A>>2])>>2]](A))))break;a=0|pf(n),ar[e>>2]=a,e=e+4|0,o=o+1|0}return 0|o},function(A,e,r){e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0;for(i=(A|=0)+24|0,f=A+28|0,n=0;!((0|r)<=(0|n));)if((t=0|ar[i>>2])>>>0<(o=0|ar[f>>2])>>>0)Zf(t,e,o=(0|(a=r-n|0))<(0|(o=o-t>>2))?a:o),ar[i>>2]=(0|ar[i>>2])+(o<<2),e=e+(o<<2)|0,n=o+n|0;else{if(o=0|ar[52+(0|ar[A>>2])>>2],a=0|gf(0|ar[e>>2]),-1==(0|Hb[31&o](A,a)))break;e=e+4|0,n=n+1|0}return 0|n},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,n=0;A:do{if(0|tr[A+44>>0])i=0|Ui(e,4,r,0|ar[A+32>>2]);else for(i=0;;){if((0|r)<=(0|i))break A;if(n=0|ar[52+(0|ar[A>>2])>>2],f=0|gf(0|ar[e>>2]),-1==(0|(f=0|Hb[31&n](A,f))))break A;i=i+1|0,e=e+4|0}}while(0);return 0|i},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,n=0;A:do{if(0|tr[A+44>>0])i=0|Ui(e,1,r,0|ar[A+32>>2]);else for(i=0;;){if((0|r)<=(0|i))break A;if(n=0|ar[52+(0|ar[A>>2])>>2],f=0|hf(0|tr[e>>0]),-1==(0|(f=0|Hb[31&n](A,f))))break A;i=i+1|0,e=e+1|0}}while(0);return 0|i},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;for(A=0;(0|e)!=(0|r);)A=((f=-268435456&(i=(0|tr[e>>0])+(A<<4)|0))>>>24|f)^i,e=e+1|0;return 0|A},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;for(A=0;(0|e)!=(0|r);)A=((f=-268435456&(i=(0|ar[e>>2])+(A<<4)|0))>>>24|f)^i,e=e+4|0;return 0|A},function(A,e,r){return r|=0,(r=0|cf((0|tr[(e|=0)+11>>0])<0&&ar[e>>2]))>>>(-1!=(0|r)&1)|0},function(A,e,r){return r|=0,(r=0|cf((0|tr[(e|=0)+11>>0])<0&&ar[e>>2]))>>>(-1!=(0|r)&1)|0},function(A,e,r){for(A|=0,e|=0,r|=0;(0|e)!=(0|r);)-1<(A=0|tr[e>>0])<<24>>24&&(A=0|Tl(),A=255&ar[A+(tr[e>>0]<<2)>>2]),tr[e>>0]=A,e=e+1|0;return 0|r},function(A,e,r){for(A|=0,e|=0,r|=0;(0|e)!=(0|r);)-1<(A=0|tr[e>>0])<<24>>24&&(A=0|Ml(),A=255&ar[A+(tr[e>>0]<<2)>>2]),tr[e>>0]=A,e=e+1|0;return 0|r},function(A,e,r){return r|=0,0|(-1<(e|=0)<<24>>24?e:r)},function(A,e,r){return A|=0,e|=0,0|(A=(r|=0)>>>0<128?(A=(0|Ul())+(r<<1)|0,(or[A>>1]&e)<<16>>16!=0):0)},function(A,e,r){for(A|=0,e|=0,r|=0;(0|e)!=(0|r);)(A=0|ar[e>>2])>>>0<128&&(A=0|Tl(),A=0|ar[A+(ar[e>>2]<<2)>>2]),ar[e>>2]=A,e=e+4|0;return 0|r},function(A,e,r){for(A|=0,e|=0,r|=0;(0|e)!=(0|r);)(A=0|ar[e>>2])>>>0<128&&(A=0|Ml(),A=0|ar[A+(ar[e>>2]<<2)>>2]),ar[e>>2]=A,e=e+4|0;return 0|r},function(A,e,r){return r|=0,0|((e|=0)>>>0<128?255&e:r)},function(A,e,r){r|=0;var i,f,n=0,t=0;if(i=ur=(f=ur)+31&-32,ur=ur+64|0,0|xu(A|=0,e|=0))e=1;else if(0!=(0|e)&&0!=(0|(t=0|qu(e,3960,3944,0)))){for(n=(e=4+i|0)+52|0;(0|(e=e+4|(ar[e>>2]=0)))<(0|n););ar[i>>2]=t,ar[8+i>>2]=A,ar[12+i>>2]=-1,ar[48+i>>2]=1,ts[31&ar[28+(0|ar[t>>2])>>2]](t,i,0|ar[r>>2],1),e=1==(0|ar[24+i>>2])?(ar[r>>2]=ar[16+i>>2],1):0}else e=0;return ur=f,0|e},function(A,e,r){return 0|xu(A|=0,e|=0)},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0;if(i=ur=(f=ur)+31&-32,ur=ur+64|0,ar[(r|=0)>>2]=ar[ar[r>>2]>>2],0|function(A,e){A=0|xu(A|=0,e|=0)?1:0|xu(e,4088);return 0|A}(A,e))A=1;else if(0!=(0|e)&&0!=(0|(n=0|qu(e,3960,4048,0)))&&0==(ar[n+8>>2]&~ar[A+8>>2]|0))if(e=n+12|0,0|xu(0|ar[(A=A+12|0)>>2],0|ar[e>>2])||0|xu(0|ar[A>>2],4080))A=1;else if(0!=(0|(A=0|ar[A>>2]))&&0!=(0|(o=0|qu(A,3960,3944,0)))&&0!=(0|(t=0|ar[e>>2]))&&0!=(0|(a=0|qu(t,3960,3944,0)))){for(e=(A=4+i|0)+52|0;(0|(A=A+4|(ar[A>>2]=0)))<(0|e););ar[i>>2]=a,ar[8+i>>2]=o,ar[12+i>>2]=-1,ar[48+i>>2]=1,ts[31&ar[28+(0|ar[a>>2])>>2]](a,i,0|ar[r>>2],1),A=1==(0|ar[24+i>>2])?(ar[r>>2]=ar[16+i>>2],1):0}else A=0;else A=0;return ur=f,0|A},function(A,e,r){return 0|xu(A|=0,e|=0)},function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a=0;return ur=(o=ur)+32|0,n=o+12|0,t=o,i=(r|=0)+4|0,f=0|ar[r>>2],ar[t>>2]=0,ar[t+4>>2]=0,4294967279>>(ar[t+8>>2]=0)&&pu(),f>>>0<11?(tr[t+11>>0]=f)?(r=t,a=6):r=t:(r=0|hu(a=16+f&-16),ar[t>>2]=r,ar[t+8>>2]=-2147483648|a,ar[t+4>>2]=f,a=6),6==(0|a)&&hb(0|r,0|i,0|f),tr[r+f>>0]=0,ns[127&A](n,e,t),r=0|hu(12),ar[r>>2]=ar[n>>2],ar[r+4>>2]=ar[4+n>>2],ar[r+8>>2]=ar[8+n>>2],ur=(0<=(0|tr[t+11>>0])||vu(0|ar[t>>2]),o),0|r},function(A,e,r){var i,f;return e|=0,r|=0,ur=(i=ur)+16|0,f=i,ns[127&(A|=0)](f,e,r),fA(0|ar[f>>2]),r=0|ar[f>>2],iA(0|r),ur=i,0|r},function(A,e,r){return 0|function(A,e,r){e|=0,r|=0;var i,f,n,t=0;return f=0|ar[(i=(A=A|0)+84|0)>>2],t=0|Rc(f,0,n=r+256|0),hb(0|e,0|f,0|(r=(t=0==(0|t)?n:t-f|0)>>>0>>0?t:r)),ar[A+4>>2]=f+r,e=f+t|0,ar[A+8>>2]=e,ar[i>>2]=e,0|r}(A|=0,e|=0,r|=0)},Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb,Wb],Pb=[function(A,e,r,i){return Z(4),0},function(A,e,r,i){A|=0,r|=0,i|=0;var f,n,t,o=0,a=0,c=0;if(A=0|ar[(e|=0)+4>>2],a=(0|(i=0|ar[e+8>>2]))/(0|ar[r+5784>>2])|0,c=(c=A+-1+(e=0|ar[e+12>>2])|0)-((0|c)%(0|e)|0)|0,e=(A=((0|A)/(0|ar[r+5780>>2])|0)-1+e|0)-((0|A)%(0|e)|0)|0,9<=((A=0|ar[r+5760>>2])+-8|0)>>>0&&sr(36609,36663,115,36672),9<=((o=0|ar[r+5768>>2])+-8|0)>>>0&&sr(36695,36663,116,36672),n=0==(0|(f=0|Wc(16,0|br(0|br(c,i),(A+7|0)/8|0)))),t=f,0|ar[r+20>>2]){if(0==(0|(i=o=0|Wc(16,a=0|br(0|br(e,a),(o+7|0)/8|0))))|0==(0|(A=a=0|Wc(16,a)))|n)return n||Bc(f),0|o&&Bc(o),a&&Bc(a),(r=0)|r}else{if(n)return(r=0)|r;A=i=e=0}return ar[r+4>>2]=t,ar[r+10492>>2]=0,ar[r+40>>2]=c,ar[r+8>>2]=i,ar[r+10496>>2]=0,ar[r+12>>2]=A,ar[r+10500>>2]=0,ar[r+44>>2]=e,0|(r=1)},function(A,e,r,i){for(e|=0,r|=0,i|=0;(0|e)!=(0|r);)tr[i>>0]=0|tr[e>>0],i=i+1|0,e=e+1|0;return 0|r},function(A,e,r,i){for(A|=0,e|=0,r|=0,i|=0;(0|e)!=(0|r);)A=(0|ar[e>>2])>>>0<128?(A=0|Ul(),0|lr[A+(ar[e>>2]<<1)>>1]):0,or[i>>1]=A,i=i+2|0,e=e+4|0;return 0|r},function(A,e,r,i){for(A|=0,e|=0,r|=0,i|=0;;){if((0|r)==(0|i)){r=i;break}if((0|ar[r>>2])>>>0<128&&(A=0|Ul(),(or[A+(ar[r>>2]<<1)>>1]&e)<<16>>16))break;r=r+4|0}return 0|r},function(A,e,r,i){for(A|=0,e|=0,r|=0,i|=0;;){if((0|r)==(0|i)){r=i;break}if(128<=(0|ar[r>>2])>>>0)break;if(A=0|Ul(),!((or[A+(ar[r>>2]<<1)>>1]&e)<<16>>16))break;r=r+4|0}return 0|r},function(A,e,r,i){for(e|=0,r|=0,i|=0;(0|e)!=(0|r);)ar[i>>2]=tr[e>>0],i=i+4|0,e=e+1|0;return 0|r},function(A,e,r,i){var f,n;return e|=0,r|=0,i|=0,ur=(f=ur)+16|0,n=f,ts[31&(A|=0)](n,e,r,i),fA(0|ar[n>>2]),i=0|ar[n>>2],iA(0|i),ur=f,0|i}],Lb=[Ib,function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f=+f;var n,t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;return m=ur=(d=ur)+31&-32,ur=ur+176|0,u=m+72|0,o=m+48|0,t=m+32|0,h=m+24|0,k=m+8|0,c=(n=m)+134|0,a=m+68|0,l=m+76|0,s=m+64|0,b=m+60|0,m=m+56|0,ar[(w=n)>>2]=37,w=(ar[w+4>>2]=0)|dr(n+1|0,79659,0|ar[r+4>>2]),ar[a>>2]=c,A=0|dn(),29<(0|(A=w?(ar[k>>2]=ar[r+8>>2],Q[k+8>>3]=f,0|fr(c,30,A,n,k)):(Q[h>>3]=f,0|fr(c,30,A,n,h))))?(A=0|dn(),k=w?(ar[t>>2]=ar[r+8>>2],Q[8+t>>3]=f,0|kr(a,A,n,t)):(Q[o>>3]=f,0|kr(a,A,n,o)),(A=0|ar[a>>2])?(v=k,y=p=A):gu()):(v=A,y=(p=0)|ar[a>>2]),h=0|nr(y,k=y+v|0,r),(0|y)!=(0|c)?(A=0|yc(v<<1))?Z=g=A:gu():(g=l,Z=0),Tf(u,r),hr(y,h,k,g,s,b,u),bn(u),ar[m>>2]=ar[e>>2],e=0|ar[s>>2],y=0|ar[b>>2],ar[u>>2]=ar[m>>2],y=0|PA(u,g,e,y,r,i),Bc(Z),Bc(p),ur=d,0|y},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f=+f;var n,t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;return m=ur=(d=ur)+31&-32,ur=ur+176|0,u=m+72|0,o=m+48|0,t=m+32|0,h=m+24|0,k=m+8|0,c=(n=m)+134|0,a=m+68|0,l=m+76|0,s=m+64|0,b=m+60|0,m=m+56|0,ar[(w=n)>>2]=37,w=(ar[w+4>>2]=0)|dr(n+1|0,53897,0|ar[r+4>>2]),ar[a>>2]=c,A=0|dn(),29<(0|(A=w?(ar[k>>2]=ar[r+8>>2],Q[k+8>>3]=f,0|fr(c,30,A,n,k)):(Q[h>>3]=f,0|fr(c,30,A,n,h))))?(A=0|dn(),k=w?(ar[t>>2]=ar[r+8>>2],Q[8+t>>3]=f,0|kr(a,A,n,t)):(Q[o>>3]=f,0|kr(a,A,n,o)),(A=0|ar[a>>2])?(v=k,y=p=A):gu()):(v=A,y=(p=0)|ar[a>>2]),h=0|nr(y,k=y+v|0,r),(0|y)!=(0|c)?(A=0|yc(v<<1))?Z=g=A:gu():(g=l,Z=0),Tf(u,r),hr(y,h,k,g,s,b,u),bn(u),ar[m>>2]=ar[e>>2],e=0|ar[s>>2],y=0|ar[b>>2],ar[u>>2]=ar[m>>2],y=0|PA(u,g,e,y,r,i),Bc(Z),Bc(p),ur=d,0|y},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f=+f;var n,t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;m=ur=(d=ur)+31&-32,ur=ur+336|0,u=m+300|0,o=m+48|0,t=m+32|0,h=m+24|0,k=m+8|0,c=(n=m)+304|0,a=m+296|0,l=m+68|0,s=m+64|0,b=m+60|0,m=m+56|0,ar[(w=n)>>2]=37,w=(ar[w+4>>2]=0)|dr(n+1|0,79659,0|ar[r+4>>2]),ar[a>>2]=c,A=0|dn(),29<(0|(A=w?(ar[k>>2]=ar[r+8>>2],Q[k+8>>3]=f,0|fr(c,30,A,n,k)):(Q[h>>3]=f,0|fr(c,30,A,n,h))))?(A=0|dn(),k=w?(ar[t>>2]=ar[r+8>>2],Q[8+t>>3]=f,0|kr(a,A,n,t)):(Q[o>>3]=f,0|kr(a,A,n,o)),(A=0|ar[a>>2])?(v=k,Z=y=A):gu()):(v=A,Z=(y=0)|ar[a>>2]),h=0|nr(Z,k=Z+v|0,r);do{if((0|Z)!=(0|c)){if(A=0|yc(v<<3)){p=0,B=g=A;break}gu()}else g=l,p=1,B=0}while(0);return Tf(u,r),Zr(Z,h,k,g,s,b,u),bn(u),ar[m>>2]=ar[e>>2],Z=0|ar[s>>2],A=0|ar[b>>2],ar[u>>2]=ar[m>>2],A=0|mr(u,g,Z,A,r,i),ar[e>>2]=A,p||Bc(B),Bc(y),ur=d,0|A},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f=+f;var n,t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;m=ur=(d=ur)+31&-32,ur=ur+336|0,u=m+300|0,o=m+48|0,t=m+32|0,h=m+24|0,k=m+8|0,c=(n=m)+304|0,a=m+296|0,l=m+68|0,s=m+64|0,b=m+60|0,m=m+56|0,ar[(w=n)>>2]=37,w=(ar[w+4>>2]=0)|dr(n+1|0,53897,0|ar[r+4>>2]),ar[a>>2]=c,A=0|dn(),29<(0|(A=w?(ar[k>>2]=ar[r+8>>2],Q[k+8>>3]=f,0|fr(c,30,A,n,k)):(Q[h>>3]=f,0|fr(c,30,A,n,h))))?(A=0|dn(),k=w?(ar[t>>2]=ar[r+8>>2],Q[8+t>>3]=f,0|kr(a,A,n,t)):(Q[o>>3]=f,0|kr(a,A,n,o)),(A=0|ar[a>>2])?(v=k,Z=y=A):gu()):(v=A,Z=(y=0)|ar[a>>2]),h=0|nr(Z,k=Z+v|0,r);do{if((0|Z)!=(0|c)){if(A=0|yc(v<<3)){p=0,B=g=A;break}gu()}else g=l,p=1,B=0}while(0);return Tf(u,r),Zr(Z,h,k,g,s,b,u),bn(u),ar[m>>2]=ar[e>>2],Z=0|ar[s>>2],A=0|ar[b>>2],ar[u>>2]=ar[m>>2],A=0|mr(u,g,Z,A,r,i),ar[e>>2]=A,p||Bc(B),Bc(y),ur=d,0|A},Ib,Ib,Ib],Kb=[Cb,function(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0;for(A=e|=0;;){if((0|i)==(0|f)){t=7;break}if((0|A)==(0|r)){A=-1;break}if((e=0|tr[A>>0])<<24>>24<(n=0|tr[i>>0])<<24>>24){A=-1;break}if(n<<24>>24>24){A=1;break}i=i+1|0,A=A+1|0}return 7==(0|t)&&(A=(0|A)!=(0|r)&1),0|A},function(A,e,r,i,f){A|=0,r|=0,i|=0,f|=0;var n=0,t=0;for(A=e|=0;;){if((0|i)==(0|f)){t=7;break}if((0|A)==(0|r)){A=-1;break}if((0|(e=0|ar[A>>2]))<(0|(n=0|ar[i>>2]))){A=-1;break}if((0|n)<(0|e)){A=1;break}i=i+4|0,A=A+4|0}return 7==(0|t)&&(A=(0|A)!=(0|r)&1),0|A},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0;if(o=ur=(t=ur)+31&-32,ur=ur+16|0,n=o+4|0,1&ar[(r|=0)+4>>2]){for(Tf(n,r),A=0|un(n,59248),bn(n),r=0|ar[A>>2],f?fs[63&ar[r+24>>2]](n,A):fs[63&ar[r+28>>2]](n,A),(A=0|tr[(a=11+n|0)>>0])<<24>>24<0?(r=A,A=0|ar[n>>2],c=8):f=n;8==(0|c)&&(f=A,A=r),(0|f)!=(((c=A<<24>>24<0)?0|ar[n>>2]:n)+(c?0|ar[4+n>>2]:255&A)|0);)A=0|tr[f>>0],0|(r=0|ar[e>>2])&&0|Mf(A=(0|(o=0|ar[(i=r+24|0)>>2]))==(0|ar[r+28>>2])?(c=0|ar[52+(0|ar[r>>2])>>2],A=0|hf(A),0|Hb[31&c](r,A)):(ar[i>>2]=o+1,0|hf(tr[o>>0]=A)),-1)&&(ar[e>>2]=0),r=0|tr[a>>0],A=f+1|0,c=8;A=0|ar[e>>2],Bu(n)}else c=0|ar[24+(0|ar[A>>2])>>2],ar[o>>2]=ar[e>>2],ar[n>>2]=ar[o>>2],A=0|Kb[31&c](A,n,r,i,1&f);return ur=t,0|A},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0;return u=ur=(A=ur)+31&-32,ur=ur+64|0,b=(t=u)+52|0,c=u+39|0,n=u+16|0,a=u+12|0,o=u+4|0,u=u+8|0,tr[b>>0]=0|tr[53902],tr[b+1>>0]=0|tr[53903],tr[b+2>>0]=0|tr[53904],tr[b+3>>0]=0|tr[53905],tr[b+4>>0]=0|tr[53906],tr[b+5>>0]=0|tr[53907],wr(b+1|0,53908,1,0|ar[r+4>>2]),l=0|dn(),ar[t>>2]=f,b=0|nr(c,f=c+(0|fr(c,13,l,b,t))|0,r),Tf(t,r),vr(c,b,f,n,a,o,t),bn(t),ar[u>>2]=ar[e>>2],e=0|ar[a>>2],f=0|ar[o>>2],ar[t>>2]=ar[u>>2],f=0|PA(t,n,e,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0;return u=ur=(A=ur)+31&-32,ur=ur+64|0,b=(t=u)+52|0,c=u+40|0,n=u+16|0,a=u+12|0,o=u+4|0,u=u+8|0,tr[b>>0]=0|tr[53902],tr[b+1>>0]=0|tr[53903],tr[b+2>>0]=0|tr[53904],tr[b+3>>0]=0|tr[53905],tr[b+4>>0]=0|tr[53906],tr[b+5>>0]=0|tr[53907],wr(b+1|0,53908,0,0|ar[r+4>>2]),l=0|dn(),ar[t>>2]=f,b=0|nr(c,f=c+(0|fr(c,12,l,b,t))|0,r),Tf(t,r),vr(c,b,f,n,a,o,t),bn(t),ar[u>>2]=ar[e>>2],e=0|ar[a>>2],f=0|ar[o>>2],ar[t>>2]=ar[u>>2],f=0|PA(t,n,e,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0;return u=ur=(A=ur)+31&-32,ur=ur+80|0,l=(o=u)+68|0,n=u+48|0,t=u+8|0,u=u+4|0,tr[l>>0]=0|tr[53891],tr[l+1>>0]=0|tr[53892],tr[l+2>>0]=0|tr[53893],tr[l+3>>0]=0|tr[53894],tr[l+4>>0]=0|tr[53895],tr[l+5>>0]=0|tr[53896],c=0|dn(),ar[o>>2]=f,c=0|nr(n,l=n+(f=0|fr(n,20,c,l,o))|0,r),Tf(o,r),a=0|un(o,59232),bn(o),Pb[7&ar[32+(0|ar[a>>2])>>2]](a,n,l,t),f=t+f|0,ar[u>>2]=ar[e>>2],ar[o>>2]=ar[u>>2],f=0|PA(o,t,(0|c)==(0|l)?f:c-n+t|0,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0;if(o=ur=(t=ur)+31&-32,ur=ur+16|0,n=o+4|0,1&ar[(r|=0)+4>>2]){for(Tf(n,r),A=0|un(n,59272),bn(n),r=0|ar[A>>2],f?fs[63&ar[r+24>>2]](n,A):fs[63&ar[r+28>>2]](n,A),A=0|tr[(a=8+n+3|0)>>0],r=0|ar[n>>2],c=4+n|0,f=A<<24>>24<0?r:n;(0|f)!=(((o=A<<24>>24<0)?r:n)+((o?0|ar[c>>2]:255&A)<<2)|0);)A=0|ar[f>>2],0|(r=0|ar[e>>2])&&0|Uf(A=(0|(o=0|ar[(i=r+24|0)>>2]))==(0|ar[r+28>>2])?(o=0|ar[52+(0|ar[r>>2])>>2],A=0|gf(A),0|Hb[31&o](r,A)):(ar[i>>2]=o+4,0|gf(ar[o>>2]=A)),-1)&&(ar[e>>2]=0),f=f+4|0,A=0|tr[a>>0],r=0|ar[n>>2];A=0|ar[e>>2],Qu(n)}else c=0|ar[24+(0|ar[A>>2])>>2],ar[o>>2]=ar[e>>2],ar[n>>2]=ar[o>>2],A=0|Kb[31&c](A,n,r,i,1&f);return ur=t,0|A},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0;return u=ur=(A=ur)+31&-32,ur=ur+128|0,b=(t=u)+122|0,c=u+108|0,n=u+16|0,a=u+12|0,o=u+4|0,u=u+8|0,tr[b>>0]=0|tr[53902],tr[b+1>>0]=0|tr[53903],tr[b+2>>0]=0|tr[53904],tr[b+3>>0]=0|tr[53905],tr[b+4>>0]=0|tr[53906],tr[b+5>>0]=0|tr[53907],wr(b+1|0,53908,1,0|ar[r+4>>2]),l=0|dn(),ar[t>>2]=f,b=0|nr(c,f=c+(0|fr(c,13,l,b,t))|0,r),Tf(t,r),pr(c,b,f,n,a,o,t),bn(t),ar[u>>2]=ar[e>>2],e=0|ar[a>>2],f=0|ar[o>>2],ar[t>>2]=ar[u>>2],f=0|mr(t,n,e,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0;return u=ur=(A=ur)+31&-32,ur=ur+128|0,b=(t=u)+112|0,c=u+100|0,n=u+16|0,a=u+12|0,o=u+4|0,u=u+8|0,tr[b>>0]=0|tr[53902],tr[b+1>>0]=0|tr[53903],tr[b+2>>0]=0|tr[53904],tr[b+3>>0]=0|tr[53905],tr[b+4>>0]=0|tr[53906],tr[b+5>>0]=0|tr[53907],wr(b+1|0,53908,0,0|ar[r+4>>2]),l=0|dn(),ar[t>>2]=f,b=0|nr(c,f=c+(0|fr(c,12,l,b,t))|0,r),Tf(t,r),pr(c,b,f,n,a,o,t),bn(t),ar[u>>2]=ar[e>>2],e=0|ar[a>>2],f=0|ar[o>>2],ar[t>>2]=ar[u>>2],f=0|mr(t,n,e,f,r,i),ur=A,0|f},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0;return u=ur=(A=ur)+31&-32,ur=ur+192|0,l=(o=u)+176|0,n=u+156|0,t=u+4|0,u=u+152|0,tr[l>>0]=0|tr[53891],tr[l+1>>0]=0|tr[53892],tr[l+2>>0]=0|tr[53893],tr[l+3>>0]=0|tr[53894],tr[l+4>>0]=0|tr[53895],tr[l+5>>0]=0|tr[53896],c=0|dn(),ar[o>>2]=f,c=0|nr(n,l=n+(f=0|fr(n,20,c,l,o))|0,r),Tf(o,r),a=0|un(o,59264),bn(o),Pb[7&ar[48+(0|ar[a>>2])>>2]](a,n,l,t),f=t+(f<<2)|0,ar[u>>2]=ar[e>>2],ar[o>>2]=ar[u>>2],f=0|mr(o,t,(0|c)==(0|l)?f:t+(c-n<<2)|0,f,r,i),ur=A,0|f},function(A,e,r,i,f){return r|=0,ar[(f|=0)>>2]=r,3},function(A,e,r,i,f){return 0|function(A,e,r,i,f){r|=0,i|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;2<((n=e|=0)-(t=A|=0)|0)&0!=(4&(f|=0)|0)&&-17==(0|tr[A>>0])&&-69==(0|tr[A+1>>0])?A=-65==((s=0)|tr[A+2>>0])?A+3|0:A:s=0;A:for(;;){if(!(s>>>0>>0&A>>>0>>0)){0;break}l=0|tr[A>>0],b=255&l,o=A+1|0;do{if(-1>24){if(i>>>0>>0){0;break A}A=o}else{if((255&l)<194){0;break A}if(a=A+2|0,f=n-(u=A)|0,(255&l)<224){if((0|f)<2){0;break A}if(128!=(192&(f=0|cr[o>>0])|0)){0;break A}if(i>>>0<(63&f|b<<6&1984)>>>0){0;break A}A=a;break}if(c=A+3|0,(255&l)<240){if((0|f)<3){0;break A}switch(a=0|tr[a>>0],o=0|cr[o>>0],f=224&o,l<<24>>24){case-32:if(160==(0|f))break;A=u;break A;case-19:if(128==(0|f))break;A=u;break A;default:if(128!=(192&o|0)){A=u;break A}}if(128!=(192&(f=255&a)|0)){0;break A}if(i>>>0<(o<<6&4032|b<<12&61440|63&f)>>>0){0;break A}A=c;break}if((0|f)<4|244<(255&l)){0;break A}switch(o=0|tr[o>>0],f=0|tr[a>>0],a=0|tr[c>>0],c=255&o,l<<24>>24){case-16:if(48<=(o+112&255)){A=u;break A}break;case-12:if(128==(240&c|0))break;A=u;break A;default:if(128!=(192&c|0)){A=u;break A}}if(128!=(192&(o=255&f)|0)){0;break A}if(128!=(192&(f=255&a)|0)){0;break A}if(i>>>0<(c<<12&258048|b<<18&1835008|o<<6&4032|63&f)>>>0){0;break A}A=A+4|0}}while(0);s=s+1|0}return A-t|0}(r|=0,i|=0,f|=0,1114111,0)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0;var n,t=0;t=ur=(n=ur)+31&-32,ur=ur+16|0,ar[(f|=0)>>2]=r,r=0|rf(0|ar[A+8>>2]),A=0|$c(t,0),0|r&&rf(r);A:do{switch(0|A){case 0:case-1:A=2;break;default:if((A=A+-1|0)>>>0>(i-(0|ar[f>>2])|0)>>>0)A=1;else for(;;){if(!A){A=0;break A}e=0|tr[t>>0],i=0|ar[f>>2],ar[f>>2]=i+1,tr[i>>0]=e,t=t+1|0,A=A+-1|0}}}while(0);return ur=n,0|A},function(A,e,r,i,f){e|=0,r|=0,f|=0;var n,t,o,a,c,l=0,u=0,b=0;t=i|=0,n=(A|=0)+8|0,b=u=0;A:for(;!((0|r)==(0|i)|f>>>0<=u>>>0);){switch(l=0|rf(0|ar[n>>2]),A=0|(a=t-(o=r)|0,c=e,0|Gi(0,o|=0,a|=0,0|(c|=0)?c:58156)),0|l&&rf(l),0|A){case-2:case-1:break A;case 0:A=1}u=u+1|0,b=A+b|0,r=r+A|0}return 0|b},function(A,e,r,i,f){for(A|=0,e|=0,r|=0,i|=0,f|=0;(0|e)!=(0|r);)A=0|tr[e>>0],tr[f>>0]=-1>24?A:i,f=f+1|0,e=e+1|0;return 0|r},function(A,e,r,i,f){A|=0,i|=0;var n,t=0;for(n=((r|=0)-(e|=0)|0)>>>2,A=f|=0,f=e;(0|f)!=(0|r);)t=0|ar[f>>2],tr[A>>0]=t>>>0<128?255&t:i,A=A+1|0,f=f+4|0;return e+(n<<2)|0},function(A,e,r,i,f){return r|=0,ar[(f|=0)>>2]=r,3},function(A,e,r,i,f){return 0|((i=(i|=0)-(r|=0)|0)>>>0<(f|=0)>>>0?i:f)},function(A,e,r,i,f){return r|=0,ar[(f|=0)>>2]=r,3},function(A,e,r,i,f){return 0|function(A,e,r,i,f){r|=0,i|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;2<((n=e|=0)-(t=A|=0)|0)&0!=(4&(f|=0)|0)&&-17==(0|tr[A>>0])&&-69==(0|tr[A+1>>0])?A=-65==((d=0)|tr[A+2>>0])?A+3|0:A:d=0;A:for(;;){if(!(d>>>0>>0&A>>>0>>0)){0;break}if(l=0|tr[A>>0],i>>>0<(s=255&l)>>>0){0;break}a=A+1|0;do{if(l<<24>>24<=-1){if((255&l)<194){0;break A}if(c=A+2|0,f=n-(u=A)|0,(255&l)<224){if((0|f)<2){0;break A}if(128!=(192&(f=0|cr[a>>0])|0)){0;break A}if(i>>>0<(63&f|s<<6&1984)>>>0){0;break A}f=d,A=c;break}if(b=A+3|0,(255&l)<240){if((0|f)<3){0;break A}switch(o=0|tr[c>>0],a=0|cr[a>>0],f=224&a,l<<24>>24){case-32:if(160==(0|f))break;A=u;break A;case-19:if(128==(0|f))break;A=u;break A;default:if(128!=(192&a|0)){A=u;break A}}if(128!=(192&(f=255&o)|0)){0;break A}if(i>>>0<(a<<6&4032|s<<12&61440|63&f)>>>0){0;break A}f=d,A=b;break}if(245<=(255&l)){0;break A}if((r-d|0)>>>0<2|(0|f)<4){0;break A}switch(o=0|tr[a>>0],f=0|tr[c>>0],a=0|tr[b>>0],c=255&o,l<<24>>24){case-16:if(48<=(o+112&255)){A=u;break A}break;case-12:if(128==(240&c|0))break;A=u;break A;default:if(128!=(192&c|0)){A=u;break A}}if(128!=(192&(o=255&f)|0)){0;break A}if(128!=(192&(f=255&a)|0)){0;break A}if(i>>>0<(c<<12&258048|s<<18&1835008|o<<6&4032|63&f)>>>0){0;break A}f=d+1|0,A=A+4|0}else f=d,A=a}while(0);d=f+1|0}return A-t|0}(r|=0,i|=0,f|=0,1114111,0)},Cb,Cb,Cb,Cb,Cb,Cb,Cb,Cb,Cb,Cb,Cb],qb=[Gb,function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n=+n;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0;for(B=ur=(m=ur)+31&-32,ur=ur+384|0,c=B+8|0,A=(Z=B)+284|0,p=B+72|0,g=B+184|0,v=B+68|0,l=B+180|0,u=B+177|0,b=B+176|0,k=B+56|0,h=B+44|0,w=B+32|0,o=B+28|0,a=B+76|0,s=B+24|0,d=B+16|0,B=B+20|0,ar[p>>2]=A,Q[c>>3]=n,99<(A=0|_c(A,100,55168,c))>>>0?(A=0|dn(),Q[Z>>3]=n,A=0|kr(p,A,55168,Z),(g=0|ar[p>>2])||gu(),(Z=0|yc(A))?(W=A,C=E=Z,G=g):gu()):(E=g,W=A,G=C=0),Tf(v,i),t=0|un(v,59232),y=0|ar[p>>2],Pb[7&ar[32+(0|ar[t>>2])>>2]](t,y,y+W|0,E),y=W?45==(0|tr[ar[p>>2]>>0]):0,ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);for(ar[h>>2]=0,ar[4+h>>2]=0,A=ar[8+h>>2]=0;3!=(0|A);)A=A+1|(ar[h+(A<<2)>>2]=0);for(ar[w>>2]=0,ar[4+w>>2]=0,A=ar[8+w>>2]=0;3!=(0|A);)A=A+1|(ar[w+(A<<2)>>2]=0);return ki(r,y,v,l,u,b,k,h,w,o),100<(A=(Z=(0|(p=0|ar[o>>2]))<(0|W)?(g=0|tr[11+w>>0],Z=0|tr[11+h>>0],A=1,g=(g<<24>>24<0?0|ar[4+w>>2]:255&g)+(W-p<<1)|0,Z<<24>>24<0?0|ar[4+h>>2]:255&Z):(Z=0|tr[11+w>>0],A=2,g=(g=0|tr[11+h>>0])<<24>>24<0?0|ar[4+h>>2]:255&g,Z<<24>>24<0?0|ar[4+w>>2]:255&Z))+p+g+A|0)>>>0?(A=0|yc(A))?I=X=A:gu():(X=a,I=0),hi(X,s,d,0|ar[i+4>>2],E,E+W|0,t,y,l,0|tr[u>>0],0|tr[b>>0],k,h,w,p),ar[B>>2]=ar[e>>2],e=0|ar[s>>2],A=0|ar[d>>2],ar[c>>2]=ar[B>>2],A=0|PA(c,X,e,A,i,f),0|I&&Bc(I),Bu(w),Bu(h),Bu(k),bn(v),0|C&&Bc(C),0|G&&Bc(G),ur=m,0|A},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n=+n;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0;for(B=ur=(m=ur)+31&-32,ur=ur+1008|0,c=B+8|0,A=(Z=B)+896|0,p=B+888|0,g=B+488|0,v=B+480|0,l=B+892|0,u=B+476|0,b=B+472|0,k=B+460|0,h=B+448|0,w=B+436|0,o=B+432|0,a=B+32|0,s=B+24|0,d=B+16|0,B=B+20|0,ar[p>>2]=A,Q[c>>3]=n,99<(A=0|_c(A,100,55168,c))>>>0?(A=0|dn(),Q[Z>>3]=n,A=0|kr(p,A,55168,Z),(g=0|ar[p>>2])||gu(),(Z=0|yc(A<<2))?(W=A,C=E=Z,G=g):gu()):(E=g,W=A,G=C=0),Tf(v,i),t=0|un(v,59264),y=0|ar[p>>2],Pb[7&ar[48+(0|ar[t>>2])>>2]](t,y,y+W|0,E),y=W?45==(0|tr[ar[p>>2]>>0]):0,ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);for(ar[h>>2]=0,ar[4+h>>2]=0,A=ar[8+h>>2]=0;3!=(0|A);)A=A+1|(ar[h+(A<<2)>>2]=0);for(ar[w>>2]=0,ar[4+w>>2]=0,A=ar[8+w>>2]=0;3!=(0|A);)A=A+1|(ar[w+(A<<2)>>2]=0);return _l(r,y,v,l,u,b,k,h,w,o),100<(A=(Z=(0|(p=0|ar[o>>2]))<(0|W)?(g=0|tr[8+w+3>>0],Z=0|tr[8+h+3>>0],A=1,g=(g<<24>>24<0?0|ar[4+w>>2]:255&g)+(W-p<<1)|0,Z<<24>>24<0?0|ar[4+h>>2]:255&Z):(Z=0|tr[8+w+3>>0],A=2,g=(g=0|tr[8+h+3>>0])<<24>>24<0?0|ar[4+h>>2]:255&g,Z<<24>>24<0?0|ar[4+w>>2]:255&Z))+p+g+A|0)>>>0?(A=0|yc(A<<2))?I=X=A:gu():(X=a,I=0),Yl(X,s,d,0|ar[i+4>>2],E,E+(W<<2)|0,t,y,l,0|ar[u>>2],0|ar[b>>2],k,h,w,p),ar[B>>2]=ar[e>>2],e=0|ar[s>>2],A=0|ar[d>>2],ar[c>>2]=ar[B>>2],A=0|mr(c,X,e,A,i,f),0|I&&Bc(I),Qu(w),Qu(h),Bu(k),bn(v),0|C&&Bc(C),0|G&&Bc(G),ur=m,0|A},Gb],$b=[Vb,function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c=0,l=0,u=0,b=0;if(u=ur=(a=ur)+31&-32,ur=ur+48|0,c=u+40|0,b=u+16|0,t=u+8|0,o=u+12|0,l=u+4|0,1&ar[(i|=0)+4>>2])for(Tf(c,i),l=0|un(c,59232),bn(c),Tf(c,i),A=0|un(c,59248),bn(c),fs[63&ar[24+(0|ar[A>>2])>>2]](b,A),fs[63&ar[28+(0|ar[A>>2])>>2]](b+12|0,A),ar[u>>2]=ar[r>>2],A=b+24|0,ar[c>>2]=ar[u>>2],c=(0|Vn(e,c,b,A,l,f,1))==(0|b)&1,tr[n>>0]=c,c=0|ar[e>>2];Bu(A=A+-12|0),(0|A)!=(0|b););else{switch(ar[t>>2]=-1,u=0|ar[16+(0|ar[A>>2])>>2],ar[o>>2]=ar[e>>2],ar[l>>2]=ar[r>>2],ar[b>>2]=ar[o>>2],ar[c>>2]=ar[l>>2],b=0|$b[63&u](A,b,c,i,f,t),ar[e>>2]=b,0|ar[t>>2]){case 0:tr[n>>0]=0;break;case 1:tr[n>>0]=1;break;default:tr[n>>0]=1,ar[f>>2]=4}c=0|ar[e>>2]}return ur=a,0|c},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Gn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Cn(A,0|ar[l>>2],f,s),ar[n>>2]=B,ar[n+4>>2]=D,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|In(A,0|ar[l>>2],f,s),or[n>>1]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Wn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Xn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+224|0,c=y+198|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),Bn(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Mf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|hf(0|tr[i>>0])),s,A,l,y,0|tr[p>>0],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+1,hf(0|tr[i>>0]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|En(A,0|ar[l>>2],f,s),ar[n>>2]=B,ar[n+4>>2]=D,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Mf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+240|0,c=B+200|0,l=B+199|0,E=B+198|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+197|0,B=B+196|0,wn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|vn(255&(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|hf(0|tr[i>>0])),X,B,A,u,0|tr[l>>0],0|tr[E>>0],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+1,hf(0|tr[i>>0]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+pn(A,0|ar[u>>2],f),gA[n>>2]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Mf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+240|0,c=B+200|0,l=B+199|0,E=B+198|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+197|0,B=B+196|0,wn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|vn(255&(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|hf(0|tr[i>>0])),X,B,A,u,0|tr[l>>0],0|tr[E>>0],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+1,hf(0|tr[i>>0]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+Zn(A,0|ar[u>>2],f),Q[n>>3]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Mf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+240|0,c=B+200|0,l=B+199|0,E=B+198|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+197|0,B=B+196|0,wn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Mf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|vn(255&(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|hf(0|tr[i>>0])),X,B,A,u,0|tr[l>>0],0|tr[E>>0],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+1,hf(0|tr[i>>0]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+mn(A,0|ar[u>>2],f),Q[n>>3]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|hf(0|tr[A>>0]),0|Mf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Mf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;for(g=ur=(d=ur)+31&-32,ur=ur+240|0,Z=(u=g)+204|0,b=g+192|0,s=g+180|0,p=g+176|0,c=g+16|0,l=g+8|0,g=g+4|0,ar[b>>2]=0,ar[4+b>>2]=0,A=ar[8+b>>2]=0;3!=(0|A);)A=A+1|(ar[b+(A<<2)>>2]=0);for(Tf(s,i),A=0|un(s,59232),Pb[7&ar[32+(0|ar[A>>2])>>2]](A,53648,53674,Z),bn(s),ar[s>>2]=0,ar[4+s>>2]=0,A=ar[8+s>>2]=0;3!=(0|A);)A=A+1|(ar[s+(A<<2)>>2]=0);o=8+s|0,Vu(s,A=(0|tr[(a=11+s|0)>>0])<0?(2147483647&ar[o>>2])-1|0:10,0),A=(0|tr[a>>0])<0?0|ar[s>>2]:s,ar[p>>2]=A,ar[l>>2]=c,t=4+s|(ar[g>>2]=0),k=h=0|ar[e>>2];A:for(;;){w=k?0|Mf(i=(0|(i=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[i>>0]),-1)?(h=m=ar[e>>2]=0,1):(m=k,0):(h=m=0,1),k=0|ar[r>>2];do{if(k){if(0|Mf(i=(0|(i=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,y=22;break}if(w)break;break A}y=22}while(0);if(22==(0|y)){if(y=0,w){k=0;break}k=0}if(i=(i=0|tr[a>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[p>>2])==(A+i|0)&&(Vu(s,i<<1,0),Vu(s,A=(0|tr[a>>0])<0?(2147483647&ar[o>>2])-1|0:10,0),A=(0|tr[a>>0])<0?0|ar[s>>2]:s,ar[p>>2]=A+i),0|sn(255&(i=(0|(i=0|ar[(w=m+12|0)>>2]))==(0|ar[(v=m+16|0)>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|hf(0|tr[i>>0])),16,A,p,g,0,b,c,l,Z))break;(0|(i=0|ar[w>>2]))!=(0|ar[v>>2])?(ar[w>>2]=i+1,hf(0|tr[i>>0]),k=m):(jb[127&ar[40+(0|ar[m>>2])>>2]](m),k=m)}Vu(s,(0|ar[p>>2])-A|0,0),Z=(0|tr[a>>0])<0?0|ar[s>>2]:s,p=0|dn(),ar[u>>2]=n,1!=(0|kn(Z,p,53681,u))&&(ar[f>>2]=4),i=m?0|Mf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[h>>2])>>2]](m):0|hf(0|tr[A>>0]),-1)?(ar[e>>2]=0,1):0:1;do{if(k){if(0|Mf(A=(0|(A=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,y=49;break}if(i)break;y=51;break}y=49}while(0);return 49==(0|y)&&i&&(y=51),51==(0|y)&&(ar[f>>2]=2|ar[f>>2]),y=0|ar[e>>2],Bu(s),Bu(b),ur=d,0|y},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c=0,l=0,u=0,b=0;if(u=ur=(a=ur)+31&-32,ur=ur+48|0,c=u+40|0,b=u+16|0,t=u+8|0,o=u+12|0,l=u+4|0,1&ar[(i|=0)+4>>2])for(Tf(c,i),l=0|un(c,59264),bn(c),Tf(c,i),A=0|un(c,59272),bn(c),fs[63&ar[24+(0|ar[A>>2])>>2]](b,A),fs[63&ar[28+(0|ar[A>>2])>>2]](b+12|0,A),ar[u>>2]=ar[r>>2],A=b+24|0,ar[c>>2]=ar[u>>2],c=(0|ir(e,c,b,A,l,f,1))==(0|b)&1,tr[n>>0]=c,c=0|ar[e>>2];Qu(A=A+-12|0),(0|A)!=(0|b););else{switch(ar[t>>2]=-1,u=0|ar[16+(0|ar[A>>2])>>2],ar[o>>2]=ar[e>>2],ar[l>>2]=ar[r>>2],ar[b>>2]=ar[o>>2],ar[c>>2]=ar[l>>2],b=0|$b[63&u](A,b,c,i,f,t),ar[e>>2]=b,0|ar[t>>2]){case 0:tr[n>>0]=0;break;case 1:tr[n>>0]=1;break;default:tr[n>>0]=1,ar[f>>2]=4}c=0|ar[e>>2]}return ur=a,0|c},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;for(y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);a=8+k|0,Vu(k,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,t=4+k|(ar[y>>2]=0),w=v=0|ar[e>>2];A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(v=Z=ar[e>>2]=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),Vu(k,A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y),B=0|Gn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?0|Uf(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),-1)?(ar[e>>2]=0,1):0:1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);return 47==(0|E)&&i&&(E=49),49==(0|E)&&(ar[f>>2]=2|ar[f>>2]),E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;for(y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);a=8+k|0,Vu(k,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,t=4+k|(ar[y>>2]=0),w=v=0|ar[e>>2];A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(v=Z=ar[e>>2]=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),Vu(k,A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y),B=0|Cn(A,0|ar[l>>2],f,s),ar[n>>2]=B,ar[n+4>>2]=D,gn(d,u,0|ar[b>>2],f),i=Z?0|Uf(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),-1)?(ar[e>>2]=0,1):0:1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);return 47==(0|E)&&i&&(E=49),49==(0|E)&&(ar[f>>2]=2|ar[f>>2]),E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;for(y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,A=ar[8+k>>2]=0;3!=(0|A);)A=A+1|(ar[k+(A<<2)>>2]=0);a=8+k|0,Vu(k,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,t=4+k|(ar[y>>2]=0),w=v=0|ar[e>>2];A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(v=Z=ar[e>>2]=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),Vu(k,A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y),B=0|In(A,0|ar[l>>2],f,s),or[n>>1]=B,gn(d,u,0|ar[b>>2],f),i=Z?0|Uf(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),-1)?(ar[e>>2]=0,1):0:1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);return 47==(0|E)&&i&&(E=49),49==(0|E)&&(ar[f>>2]=2|ar[f>>2]),E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Wn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|Xn(A,0|ar[l>>2],f,s),ar[n>>2]=B,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;y=ur=(h=ur)+31&-32,ur=ur+304|0,c=y+200|0,p=y+196|0,d=y+184|0,k=y+172|0,l=y+168|0,u=y+8|0,b=y+4|0,s=0|yn(i|=0),_n(d,i,c,p),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A,ar[b>>2]=u,ar[y>>2]=0,t=4+k|0,v=0|ar[e>>2],w=v;A:for(;;){m=w?0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,v=Z=0,1):(Z=w,0):(v=Z=0,1),w=0|ar[r>>2];do{if(w){if(0|Uf(i=(0|(i=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,E=19;break}if(m)break;break A}E=19}while(0);if(19==(0|E)){if(E=0,m){w=0;break}w=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[l>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[l>>2]=A+i),0|Fn(i=(0|(i=0|ar[(m=Z+12|0)>>2]))==(0|ar[(g=Z+16|0)>>2])?0|jb[127&ar[36+(0|ar[Z>>2])>>2]](Z):0|gf(0|ar[i>>2]),s,A,l,y,0|ar[p>>2],d,u,b,c))break;(0|(i=0|ar[m>>2]))!=(0|ar[g>>2])?(ar[m>>2]=i+4,gf(0|ar[i>>2]),w=Z):(jb[127&ar[40+(0|ar[Z>>2])>>2]](Z),w=Z)}0|((p=0|tr[11+d>>0])<<24>>24<0?0|ar[4+d>>2]:255&p)&&((B=0|ar[b>>2])-u|0)<160&&(y=0|ar[y>>2],ar[b>>2]=B+4,ar[B>>2]=y);B=0|En(A,0|ar[l>>2],f,s),ar[n>>2]=B,ar[n+4>>2]=D,gn(d,u,0|ar[b>>2],f),i=Z?(A=(0|(A=0|ar[Z+12>>2]))==(0|ar[Z+16>>2])?0|jb[127&ar[36+(0|ar[v>>2])>>2]](Z):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(w){if(0|Uf(A=(0|(A=0|ar[w+12>>2]))==(0|ar[w+16>>2])?0|jb[127&ar[36+(0|ar[w>>2])>>2]](w):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,E=47;break}if(i)break;E=49;break}E=47}while(0);47==(0|E)&&i&&(E=49);49==(0|E)&&(ar[f>>2]=2|ar[f>>2]);return E=0|ar[e>>2],Bu(k),Bu(d),ur=h,0|E}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+352|0,c=B+208|0,l=B+200|0,E=B+196|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+337|0,B=B+336|0,Rn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|Nn(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|gf(0|ar[i>>2]),X,B,A,u,0|ar[l>>2],0|ar[E>>2],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+4,gf(0|ar[i>>2]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+pn(A,0|ar[u>>2],f),gA[n>>2]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Uf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+352|0,c=B+208|0,l=B+200|0,E=B+196|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+337|0,B=B+336|0,Rn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|Nn(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|gf(0|ar[i>>2]),X,B,A,u,0|ar[l>>2],0|ar[E>>2],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+4,gf(0|ar[i>>2]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+Zn(A,0|ar[u>>2],f),Q[n>>3]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Uf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;B=ur=(w=ur)+31&-32,ur=ur+352|0,c=B+208|0,l=B+200|0,E=B+196|0,h=B+184|0,k=B+172|0,u=B+168|0,b=B+8|0,s=B+4|0,X=(d=B)+337|0,B=B+336|0,Rn(h,i|=0,c,l,E),ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,A=0;for(;3!=(0|A);)ar[k+(A<<2)>>2]=0,A=A+1|0;a=8+k|0,A=(0|tr[(o=11+k|0)>>0])<0?(2147483647&ar[a>>2])-1|0:10;Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A,ar[s>>2]=b,ar[d>>2]=0,tr[X>>0]=1,tr[B>>0]=69,t=4+k|0,g=0|ar[e>>2],m=g;A:for(;;){Z=m?0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)?(ar[e>>2]=0,g=y=0,1):(y=m,0):(g=y=0,1),m=0|ar[r>>2];do{if(m){if(0|Uf(i=(0|(i=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,I=19;break}if(Z)break;break A}I=19}while(0);if(19==(0|I)){if(I=0,Z){m=0;break}m=0}if(i=(i=0|tr[o>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[u>>2])==(A+i|0)&&(Vu(k,i<<1,0),A=(0|tr[o>>0])<0?(2147483647&ar[a>>2])-1|0:10,Vu(k,A,0),A=(0|tr[o>>0])<0?0|ar[k>>2]:k,ar[u>>2]=A+i),0|Nn(i=(0|(i=0|ar[(Z=y+12|0)>>2]))==(0|ar[(p=y+16|0)>>2])?0|jb[127&ar[36+(0|ar[y>>2])>>2]](y):0|gf(0|ar[i>>2]),X,B,A,u,0|ar[l>>2],0|ar[E>>2],h,b,s,d,c))break;(0|(i=0|ar[Z>>2]))!=(0|ar[p>>2])?(ar[Z>>2]=i+4,gf(0|ar[i>>2]),m=y):(jb[127&ar[40+(0|ar[y>>2])>>2]](y),m=y)}E=0|tr[11+h>>0],0!=(0|tr[X>>0])&&0!=(0|(E<<24>>24<0?0|ar[4+h>>2]:255&E))&&((W=0|ar[s>>2])-b|0)<160&&(X=0|ar[d>>2],ar[s>>2]=W+4,ar[W>>2]=X);v=+mn(A,0|ar[u>>2],f),Q[n>>3]=v,gn(h,b,0|ar[s>>2],f),i=y?(A=(0|(A=0|ar[y+12>>2]))==(0|ar[y+16>>2])?0|jb[127&ar[36+(0|ar[g>>2])>>2]](y):0|gf(0|ar[A>>2]),0|Uf(A,-1)?(ar[e>>2]=0,1):0):1;do{if(m){if(0|Uf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,I=47;break}if(i)break;I=49;break}I=47}while(0);47==(0|I)&&i&&(I=49);49==(0|I)&&(ar[f>>2]=2|ar[f>>2]);return I=0|ar[e>>2],Bu(k),Bu(h),ur=w,0|I}(A,a,o,i,f,n),ur=t,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;for(g=ur=(d=ur)+31&-32,ur=ur+320|0,Z=(u=g)+208|0,b=g+192|0,s=g+180|0,p=g+176|0,c=g+16|0,l=g+8|0,g=g+4|0,ar[b>>2]=0,ar[4+b>>2]=0,A=ar[8+b>>2]=0;3!=(0|A);)A=A+1|(ar[b+(A<<2)>>2]=0);for(Tf(s,i),A=0|un(s,59264),Pb[7&ar[48+(0|ar[A>>2])>>2]](A,53648,53674,Z),bn(s),ar[s>>2]=0,ar[4+s>>2]=0,A=ar[8+s>>2]=0;3!=(0|A);)A=A+1|(ar[s+(A<<2)>>2]=0);o=8+s|0,Vu(s,A=(0|tr[(a=11+s|0)>>0])<0?(2147483647&ar[o>>2])-1|0:10,0),A=(0|tr[a>>0])<0?0|ar[s>>2]:s,ar[p>>2]=A,ar[l>>2]=c,t=4+s|(ar[g>>2]=0),k=h=0|ar[e>>2];A:for(;;){w=k?0|Uf(i=(0|(i=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|gf(0|ar[i>>2]),-1)?(h=m=ar[e>>2]=0,1):(m=k,0):(h=m=0,1),k=0|ar[r>>2];do{if(k){if(0|Uf(i=(0|(i=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,y=22;break}if(w)break;break A}y=22}while(0);if(22==(0|y)){if(y=0,w){k=0;break}k=0}if(i=(i=0|tr[a>>0])<<24>>24<0?0|ar[t>>2]:255&i,(0|ar[p>>2])==(A+i|0)&&(Vu(s,i<<1,0),Vu(s,A=(0|tr[a>>0])<0?(2147483647&ar[o>>2])-1|0:10,0),A=(0|tr[a>>0])<0?0|ar[s>>2]:s,ar[p>>2]=A+i),0|Fn(i=(0|(i=0|ar[(w=m+12|0)>>2]))==(0|ar[(v=m+16|0)>>2])?0|jb[127&ar[36+(0|ar[m>>2])>>2]](m):0|gf(0|ar[i>>2]),16,A,p,g,0,b,c,l,Z))break;(0|(i=0|ar[w>>2]))!=(0|ar[v>>2])?(ar[w>>2]=i+4,gf(0|ar[i>>2]),k=m):(jb[127&ar[40+(0|ar[m>>2])>>2]](m),k=m)}Vu(s,(0|ar[p>>2])-A|0,0),Z=(0|tr[a>>0])<0?0|ar[s>>2]:s,p=0|dn(),ar[u>>2]=n,1!=(0|kn(Z,p,53681,u))&&(ar[f>>2]=4),i=m?0|Uf(A=(0|(A=0|ar[m+12>>2]))==(0|ar[m+16>>2])?0|jb[127&ar[36+(0|ar[h>>2])>>2]](m):0|gf(0|ar[A>>2]),-1)?(ar[e>>2]=0,1):0:1;do{if(k){if(0|Uf(A=(0|(A=0|ar[k+12>>2]))==(0|ar[k+16>>2])?0|jb[127&ar[36+(0|ar[k>>2])>>2]](k):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,y=49;break}if(i)break;y=51;break}y=49}while(0);return 49==(0|y)&&i&&(y=51),51==(0|y)&&(ar[f>>2]=2|ar[f>>2]),y=0|ar[e>>2],Bu(s),Bu(b),ur=d,0|y},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s=0,d=0;return s=ur=(A=ur)+31&-32,ur=ur+96|0,o=s+8|0,l=(u=s)+71|0,t=s+28|0,c=s+24|0,a=s+16|0,s=s+20|0,ar[(d=u)>>2]=37,wr(u+1|(ar[d+4>>2]=0),53899,1,0|ar[r+4>>2]),d=0|dn(),ar[(b=o)>>2]=f,ar[4+b>>2]=n,n=0|nr(l,f=l+(0|fr(l,23,d,u,o))|0,r),Tf(o,r),vr(l,n,f,t,c,a,o),bn(o),ar[s>>2]=ar[e>>2],f=0|ar[c>>2],n=0|ar[a>>2],ar[o>>2]=ar[s>>2],n=0|PA(o,t,f,n,r,i),ur=A,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s=0,d=0;return s=ur=(A=ur)+31&-32,ur=ur+96|0,o=s+8|0,l=(u=s)+71|0,t=s+28|0,c=s+24|0,a=s+16|0,s=s+20|0,ar[(d=u)>>2]=37,wr(u+1|(ar[d+4>>2]=0),53899,0,0|ar[r+4>>2]),d=0|dn(),ar[(b=o)>>2]=f,ar[4+b>>2]=n,n=0|nr(l,f=l+(0|fr(l,23,d,u,o))|0,r),Tf(o,r),vr(l,n,f,t,c,a,o),bn(o),ar[s>>2]=ar[e>>2],f=0|ar[c>>2],n=0|ar[a>>2],ar[o>>2]=ar[s>>2],n=0|PA(o,t,f,n,r,i),ur=A,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s=0,d=0;return s=ur=(A=ur)+31&-32,ur=ur+224|0,o=s+8|0,l=(u=s)+200|0,t=s+28|0,c=s+24|0,a=s+16|0,s=s+20|0,ar[(d=u)>>2]=37,wr(u+1|(ar[d+4>>2]=0),53899,1,0|ar[r+4>>2]),d=0|dn(),ar[(b=o)>>2]=f,ar[4+b>>2]=n,n=0|nr(l,f=l+(0|fr(l,23,d,u,o))|0,r),Tf(o,r),pr(l,n,f,t,c,a,o),bn(o),ar[s>>2]=ar[e>>2],f=0|ar[c>>2],n=0|ar[a>>2],ar[o>>2]=ar[s>>2],n=0|mr(o,t,f,n,r,i),ur=A,0|n},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s=0,d=0;return s=ur=(A=ur)+31&-32,ur=ur+224|0,o=s+8|0,l=(u=s)+200|0,t=s+28|0,c=s+24|0,a=s+16|0,s=s+20|0,ar[(d=u)>>2]=37,wr(u+1|(ar[d+4>>2]=0),53899,0,0|ar[r+4>>2]),d=0|dn(),ar[(b=o)>>2]=f,ar[4+b>>2]=n,n=0|nr(l,f=l+(0|fr(l,23,d,u,o))|0,r),Tf(o,r),pr(l,n,f,t,c,a,o),bn(o),ar[s>>2]=ar[e>>2],f=0|ar[c>>2],n=0|ar[a>>2],ar[o>>2]=ar[s>>2],n=0|mr(o,t,f,n,r,i),ur=A,0|n},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|Er(A,a,o,i,f,n,54427,54435),ur=t,0|n},function(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b=0;return c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,l=4+c|0,b=0|jb[127&ar[20+(0|ar[(b=(A|=0)+8|0)>>2])>>2]](b),ar[l>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],r=(e=(u=(r=0|tr[b+11>>0])<<24>>24<0)?0|ar[b>>2]:b)+(u?0|ar[b+4>>2]:255&r)|0,ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|Er(A,a,o,i,f,n,e,r),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59232),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],yr(A,n+24|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59232),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Br(A,n+16|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59232),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Yr(A,n+20|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a,c,l;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,ar[(l=4+c|0)>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|Sr(A,a,o,i,f,n,16404,16436),ur=t,0|n},function(A,e,r,i,f,n){e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l,u,b=0;return c=ur=(t=ur)+31&-32,ur=ur+16|0,o=12+c|0,a=8+c|0,l=4+c|0,b=0|jb[127&ar[20+(0|ar[(b=(A|=0)+8|0)>>2])>>2]](b),ar[l>>2]=ar[e>>2],ar[c>>2]=ar[r>>2],r=(e=(u=(r=0|tr[b+8+3>>0])<<24>>24<0)?0|ar[b>>2]:b)+((u?0|ar[b+4>>2]:255&r)<<2)|0,ar[a>>2]=ar[l>>2],ar[o>>2]=ar[c>>2],n=0|Sr(A,a,o,i,f,n,e,r),ur=t,0|n},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59264),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Tr(A,n+24|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59264),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Ur(A,n+16|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){var t,o,a;return A|=0,e|=0,r|=0,f|=0,n|=0,a=ur=(t=ur)+31&-32,ur=ur+16|0,Tf(o=4+a|0,i|=0),i=0|un(o,59264),bn(o),ar[a>>2]=ar[r>>2],ar[o>>2]=ar[a>>2],Ai(A,n+20|0,e,o,f,i),ur=t,0|ar[e>>2]},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p=0,y=0,B=0,E=0,X=0,W=0;for(b=ur=(Z=ur)+31&-32,ur=ur+176|0,c=56+b|0,d=164+b|0,k=161+b|0,h=160+b|0,w=40+b|0,v=28+b|0,m=16+b|0,t=12+b|0,a=60+b|0,l=8+b|0,u=4+b|0,Tf(g=52+b|0,i|=0),s=0|un(g,59232),y=n+4|0,E=0|((A=(E=0|tr[(p=n+11|0)>>0])<<24>>24<0)?0|ar[y>>2]:255&E)?(E=0|tr[(A?0|ar[n>>2]:n)>>0])<<24>>24==(0|Hb[31&ar[28+(0|ar[s>>2])>>2]](s,45))<<24>>24:0,ar[w>>2]=0,ar[4+w>>2]=0,A=ar[8+w>>2]=0;3!=(0|A);)A=A+1|(ar[w+(A<<2)>>2]=0);for(ar[v>>2]=0,ar[4+v>>2]=0,A=ar[8+v>>2]=0;3!=(0|A);)A=A+1|(ar[v+(A<<2)>>2]=0);for(ar[m>>2]=0,ar[4+m>>2]=0,A=ar[8+m>>2]=0;3!=(0|A);)A=A+1|(ar[m+(A<<2)>>2]=0);return ki(r,E,g,d,k,h,w,v,m,t),B=(o=(B=0|tr[p>>0])<<24>>24<0)?0|ar[y>>2]:255&B,100<(A=(r=(0|(y=0|ar[t>>2]))<(0|B)?(p=0|tr[11+m>>0],r=0|tr[11+v>>0],A=1,p=(p<<24>>24<0?0|ar[4+m>>2]:255&p)+(B-y<<1)|0,r<<24>>24<0?0|ar[4+v>>2]:255&r):(r=0|tr[11+m>>0],A=2,p=(p=0|tr[11+v>>0])<<24>>24<0?0|ar[4+v>>2]:255&p,r<<24>>24<0?0|ar[4+m>>2]:255&r))+y+p+A|0)>>>0?(A=0|yc(A))?W=X=A:gu():(X=a,W=0),n=o?0|ar[n>>2]:n,hi(X,l,u,0|ar[i+4>>2],n,n+B|0,s,E,d,0|tr[k>>0],0|tr[h>>0],w,v,m,y),ar[b>>2]=ar[e>>2],n=0|ar[l>>2],A=0|ar[u>>2],ar[c>>2]=ar[b>>2],A=0|PA(c,X,n,A,i,f),0|W&&Bc(W),Bu(m),Bu(v),Bu(w),bn(g),ur=Z,0|A},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,f|=0,n|=0;var t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p=0,y=0,B=0,E=0,X=0,W=0;for(b=ur=(Z=ur)+31&-32,ur=ur+480|0,c=468+b|0,d=472+b|0,k=460+b|0,h=456+b|0,w=444+b|0,v=432+b|0,m=420+b|0,t=416+b|0,a=16+b|0,l=8+b|0,u=4+b|0,Tf(g=464+b|0,i|=0),s=0|un(g,59264),y=n+4|0,E=0|((A=(E=0|tr[(p=n+8+3|0)>>0])<<24>>24<0)?0|ar[y>>2]:255&E)?(0|(E=0|ar[(A?0|ar[n>>2]:n)>>2]))==(0|Hb[31&ar[44+(0|ar[s>>2])>>2]](s,45)):0,ar[w>>2]=0,ar[4+w>>2]=0,A=ar[8+w>>2]=0;3!=(0|A);)A=A+1|(ar[w+(A<<2)>>2]=0);for(ar[v>>2]=0,ar[4+v>>2]=0,A=ar[8+v>>2]=0;3!=(0|A);)A=A+1|(ar[v+(A<<2)>>2]=0);for(ar[m>>2]=0,ar[4+m>>2]=0,A=ar[8+m>>2]=0;3!=(0|A);)A=A+1|(ar[m+(A<<2)>>2]=0);return _l(r,E,g,d,k,h,w,v,m,t),B=(o=(B=0|tr[p>>0])<<24>>24<0)?0|ar[y>>2]:255&B,100<(A=(r=(0|(y=0|ar[t>>2]))<(0|B)?(p=0|tr[8+m+3>>0],r=0|tr[8+v+3>>0],A=1,p=(p<<24>>24<0?0|ar[4+m>>2]:255&p)+(B-y<<1)|0,r<<24>>24<0?0|ar[4+v>>2]:255&r):(r=0|tr[8+m+3>>0],A=2,p=(p=0|tr[8+v+3>>0])<<24>>24<0?0|ar[4+v>>2]:255&p,r<<24>>24<0?0|ar[4+m>>2]:255&r))+y+p+A|0)>>>0?(A=0|yc(A<<2))?W=X=A:gu():(X=a,W=0),n=o?0|ar[n>>2]:n,Yl(X,l,u,0|ar[i+4>>2],n,n+(B<<2)|0,s,E,d,0|ar[k>>2],0|ar[h>>2],w,v,m,y),ar[b>>2]=ar[e>>2],n=0|ar[l>>2],A=0|ar[u>>2],ar[c>>2]=ar[b>>2],A=0|mr(c,X,n,A,i,f),0|W&&Bc(W),Qu(m),Qu(v),Bu(w),bn(g),ur=Z,0|A},Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb,Vb],As=[Fb,function(A,e,r,i,f,n,t){var o;for(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,i=ur=(o=ur)+31&-32,ur=ur+112|0,r=i+4|0,ar[i>>2]=r+100,fi(A+8|0,r,i,f,n,t),t=0|ar[i>>2],n=r,r=0|ar[e>>2];(0|n)!=(0|t);)i=0|tr[n>>0],r=!r||(e=0|Mf(i=(0|(f=0|ar[(A=r+24|0)>>2]))==(0|ar[r+28>>2])?(e=0|ar[52+(0|ar[r>>2])>>2],i=0|hf(i),0|Hb[31&e](r,i)):(ar[A>>2]=f+1,0|hf(tr[f>>0]=i)),-1))?0:r,n=n+1|0;return ur=o,0|r},function(A,e,r,i,f,n,t){var o;for(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,i=ur=(o=ur)+31&-32,ur=ur+416|0,r=i+8|0,ar[i>>2]=r+400,function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c,l=0;l=ur=(t=ur)+31&-32,ur=ur+128|0,a=l+16|0,c=l+12|0,l=(o=l)+8|0,ar[c>>2]=100+a,fi(A,a,c,i,f,n),ar[(i=o)>>2]=0,ar[i+4>>2]=0,ar[l>>2]=a,i=0|function(A,e){return(e|=0)-(A|=0)>>2|0}(e,0|ar[r>>2]),A=0|rf(0|ar[A>>2]),i=0|Xi(e,l,i,o),0|A&&rf(A);{if(-1!=(0|i))return ar[r>>2]=e+(i<<2),ur=t;ti()}}(A+8|0,r,i,f,n,t),t=0|ar[i>>2],n=r,r=0|ar[e>>2];(0|n)!=(0|t);)i=0|ar[n>>2],r=!r||(e=0|Uf(i=(0|(f=0|ar[(A=r+24|0)>>2]))==(0|ar[r+28>>2])?(e=0|ar[52+(0|ar[r>>2])>>2],i=0|gf(i),0|Hb[31&e](r,i)):(ar[A>>2]=f+4,0|gf(ar[f>>2]=i)),-1))?0:r,n=n+4|0;return ur=o,0|r},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;if(m=ur=(s=ur)+31&-32,ur=ur+240|0,o=m+24|0,v=(c=m)+140|0,b=m+16|0,a=m+12|0,l=m+8|0,k=m+136|0,d=m+4|0,m=m+36|0,ar[b>>2]=v,ar[(u=4+b|0)>>2]=444,Tf(l,f),A=0|un(l,59232),tr[k>>0]=0,ar[d>>2]=ar[r>>2],w=0|ar[f+4>>2],ar[o>>2]=ar[d>>2],0|ai(e,o,i,l,w,n,k,A,b,a,v+100|0)){for(Pb[7&ar[32+(0|ar[A>>2])>>2]](A,54952,54962,o),98<(0|(A=(w=0|ar[a>>2])-(i=0|ar[b>>2])|0))?(A=0|yc(A+2|0))?g=h=A:gu():(h=m,g=0),A=0|tr[k>>0]?(tr[h>>0]=45,h+1|0):h,h=10+o|0,v=o,k=i,f=A,A=w;!(A>>>0<=k>>>0);){for(i=0|tr[k>>0],A=o;;){if((0|A)==(0|h)){A=h;break}if((0|tr[A>>0])==i<<24>>24)break;A=A+1|0}tr[f>>0]=0|tr[A-v+54952>>0],k=k+1|0,f=f+1|0,A=0|ar[a>>2]}tr[f>>0]=0,ar[c>>2]=t,1!=(0|ji(m,54963,c))&&ti(),0|g&&Bc(g)}A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(i=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[i>>0]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);A=0|ar[r>>2];do{if(A){if(0|Mf(A=(0|(i=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[i>>0]),-1)){ar[r>>2]=0,Z=32;break}if(f)break;Z=34;break}Z=32}while(0);return 32==(0|Z)&&f&&(Z=34),34==(0|Z)&&(ar[n>>2]=2|ar[n>>2]),i=0|ar[e>>2],bn(l),A=0|ar[b>>2],(ar[b>>2]=0)|A&&is[511&ar[u>>2]](A),ur=s,0|i},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b,s,d=0,k=0,h=0,w=0;if(h=ur=(s=ur)+31&-32,ur=ur+144|0,d=h+24|0,A=h+32|0,b=h+16|0,a=h+8|0,k=(l=h)+28|0,h=h+4|0,ar[b>>2]=A,ar[(u=4+b|0)>>2]=444,Tf(l,f),o=0|un(l,59232),c=(tr[k>>0]=0)|ar[r>>2],ar[h>>2]=c,f=0|ar[f+4>>2],ar[d>>2]=ar[h>>2],h=c,0|ai(e,d,i,l,f,n,k,o,b,a,A+100|0)){for((0|tr[(A=t+11|0)>>0])<0?(i=0|ar[t>>2],tr[d>>0]=0,Qf(i,d),ar[t+4>>2]=0):(tr[d>>0]=0,Qf(t,d),tr[A>>0]=0),0|tr[k>>0]&&_u(t,0|Hb[31&ar[28+(0|ar[o>>2])>>2]](o,45)),k=0|Hb[31&ar[28+(0|ar[o>>2])>>2]](o,48),d=(f=0|ar[a>>2])+-1|0,A=0|ar[b>>2];!(d>>>0<=A>>>0)&&(0|tr[A>>0])==k<<24>>24;)A=A+1|0;!function(A,e,r){r|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;c=ur=(n=ur)+31&-32,ur=ur+16|0,i=e|=0,s=c+12|0,o=0|tr[(b=11+(A|=0)|0)>>0],l=(t=o<<24>>24<0)?(u=0|ar[A+4>>2],(2147483647&ar[A+8>>2])-1|0):(u=255&o,10);f=r-i|0;do{if(0|f){if(t?(o=0|ar[A>>2],a=o,t=0|ar[A+4>>2]):(t=255&o,o=a=A),0|ci(e,o,a+t|0)){for(ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,4294967279>>0&&pu(),f>>>0<11?(tr[c+11>>0]=f,o=c):(o=0|hu(b=16+f&-16),ar[c>>2]=o,ar[c+8>>2]=-2147483648|b,ar[c+4>>2]=f),t=o;(0|e)!=(0|r);)Qf(t,e),e=e+1|0,t=t+1|0;tr[s>>0]=0,Qf(o+f|0,s),s=0|tr[c+11>>0],Nu(A,(r=s<<24>>24<0)?0|ar[c>>2]:c,r?0|ar[c+4>>2]:255&s),Bu(c);break}for(c=u+f|0,(l-u|0)>>>0>>0&&Ru(A,l,c-l|0,u,u,0,0),a=(0|tr[b>>0])<0?0|ar[A>>2]:A,o=r+(u-i)|0,t=a+u|0;(0|e)!=(0|r);)Qf(t,e),t=t+1|0,e=e+1|0;if(tr[s>>0]=0,Qf(a+o|0,s),(0|tr[b>>0])<0){ar[A+4>>2]=c;break}tr[b>>0]=c;break}}while(0);ur=n}(t,A,f)}A=0|ar[e>>2];do{if(A){if(0|Mf(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|hf(0|tr[f>>0]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);do{if(c){if(0|Mf(A=(0|(A=0|ar[h+12>>2]))==(0|ar[h+16>>2])?0|jb[127&ar[36+(0|ar[c>>2])>>2]](h):0|hf(0|tr[A>>0]),-1)){ar[r>>2]=0,w=25;break}if(f)break;w=27;break}w=25}while(0);return 25==(0|w)&&f&&(w=27),27==(0|w)&&(ar[n>>2]=2|ar[n>>2]),f=0|ar[e>>2],bn(l),A=0|ar[b>>2],(ar[b>>2]=0)|A&&is[511&ar[u>>2]](A),ur=s,0|f},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b,s,d,k=0,h=0,w=0,v=0,m=0,g=0,Z=0;if(m=ur=(s=ur)+31&-32,ur=ur+576|0,o=m+424|0,v=(c=m)+24|0,b=m+16|0,a=m+12|0,l=m+8|0,k=m+564|0,d=m+4|0,m=m+464|0,ar[b>>2]=v,ar[(u=4+b|0)>>2]=444,Tf(l,f),A=0|un(l,59264),tr[k>>0]=0,ar[d>>2]=ar[r>>2],w=0|ar[f+4>>2],ar[o>>2]=ar[d>>2],0|bi(e,o,i,l,w,n,k,A,b,a,v+400|0)){for(Pb[7&ar[48+(0|ar[A>>2])>>2]](A,55062,55072,o),392<(0|(A=(w=0|ar[a>>2])-(i=0|ar[b>>2])|0))?(A=0|yc(2+(A>>>2)|0))?g=h=A:gu():(h=m,g=0),A=0|tr[k>>0]?(tr[h>>0]=45,h+1|0):h,h=40+o|0,v=o,k=i,f=A,A=w;!(A>>>0<=k>>>0);){for(i=0|ar[k>>2],A=o;;){if((0|A)==(0|h)){A=h;break}if((0|ar[A>>2])==(0|i))break;A=A+4|0}tr[f>>0]=0|tr[55062+(A-v>>2)>>0],k=k+4|0,f=f+1|0,A=0|ar[a>>2]}tr[f>>0]=0,ar[c>>2]=t,1!=(0|ji(m,54963,c))&&ti(),0|g&&Bc(g)}A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(i=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[i>>2]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);A=0|ar[r>>2];do{if(A){if(0|Uf(A=(0|(i=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[i>>2]),-1)){ar[r>>2]=0,Z=32;break}if(f)break;Z=34;break}Z=32}while(0);return 32==(0|Z)&&f&&(Z=34),34==(0|Z)&&(ar[n>>2]=2|ar[n>>2]),i=0|ar[e>>2],bn(l),A=0|ar[b>>2],(ar[b>>2]=0)|A&&is[511&ar[u>>2]](A),ur=s,0|i},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0;var o,a,c,l,u,b,s,d=0,k=0,h=0,w=0;if(h=ur=(s=ur)+31&-32,ur=ur+432|0,d=h+424|0,A=h+24|0,b=h+16|0,a=h+8|0,k=(l=h)+428|0,h=h+4|0,ar[b>>2]=A,ar[(u=4+b|0)>>2]=444,Tf(l,f),o=0|un(l,59264),c=(tr[k>>0]=0)|ar[r>>2],ar[h>>2]=c,f=0|ar[f+4>>2],ar[d>>2]=ar[h>>2],h=c,0|bi(e,d,i,l,f,n,k,o,b,a,A+400|0)){for((0|tr[(A=t+8+3|0)>>0])<0?(i=0|ar[t>>2],ar[d>>2]=0,ln(i,d),ar[t+4>>2]=0):(ar[d>>2]=0,ln(t,d),tr[A>>0]=0),0|tr[k>>0]&&Ou(t,0|Hb[31&ar[44+(0|ar[o>>2])>>2]](o,45)),k=0|Hb[31&ar[44+(0|ar[o>>2])>>2]](o,48),d=(f=0|ar[a>>2])+-4|0,A=0|ar[b>>2];!(d>>>0<=A>>>0)&&(0|ar[A>>2])==(0|k);)A=A+4|0;!function(A,e,r){e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;n=ur=(o=ur)+31&-32,ur=ur+16|0,k=12+n|0,i=0|tr[(t=3+(a=8+(A|=0)|0)|0)>>0],u=(c=i<<24>>24<0)?(d=0|ar[A+4>>2],(2147483647&ar[a>>2])-1|0):(d=255&i,1);f=r-e>>2;do{if(0|f){if(c?(c=0|ar[A>>2],l=c,a=0|ar[A+4>>2]):(a=255&i,c=l=A),0|si(e,c,l+(a<<2)|0)){ar[n>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,1073741807>>0&&pu();do{if(2<=f>>>0){if(!(1073741823<(a=4+f&-4)>>>0)){s=0|hu(a<<2),ar[n>>2]=s,ar[8+n>>2]=-2147483648|a,ar[4+n>>2]=f,b=e;break}lA()}else tr[8+n+3>>0]=f,b=e,s=n}while(0);for(;(0|b)!=(0|r);)ln(s,b),b=b+4|0,s=s+4|0;ar[k>>2]=0,ln(s,k),k=0|tr[8+n+3>>0],Su(A,(r=k<<24>>24<0)?0|ar[n>>2]:n,r?0|ar[4+n>>2]:255&k),Qu(n);break}for(c=d+f|0,(u-d|0)>>>0>>0&&Uu(A,u,c-u|0,d,d,0,0),a=(a=(0|tr[t>>0])<0?0|ar[A>>2]:A)+(d<<2)|0;(0|e)!=(0|r);)ln(a,e),a=a+4|0,e=e+4|0;if(ar[k>>2]=0,ln(a,k),(0|tr[t>>0])<0){ar[A+4>>2]=c;break}tr[t>>0]=c;break}}while(0);ur=o}(t,A,f)}A=0|ar[e>>2];do{if(A){if(0|Uf(A=(0|(f=0|ar[A+12>>2]))==(0|ar[A+16>>2])?0|jb[127&ar[36+(0|ar[A>>2])>>2]](A):0|gf(0|ar[f>>2]),-1)){ar[e>>2]=0,f=1;break}f=0==(0|ar[e>>2]);break}f=1}while(0);do{if(c){if(0|Uf(A=(0|(A=0|ar[h+12>>2]))==(0|ar[h+16>>2])?0|jb[127&ar[36+(0|ar[c>>2])>>2]](h):0|gf(0|ar[A>>2]),-1)){ar[r>>2]=0,w=25;break}if(f)break;w=27;break}w=25}while(0);return 25==(0|w)&&f&&(w=27),27==(0|w)&&(ar[n>>2]=2|ar[n>>2]),f=0|ar[e>>2],bn(l),A=0|ar[b>>2],(ar[b>>2]=0)|A&&is[511&ar[u>>2]](A),ur=s,0|f},Fb],es=[Rb,function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0,o|=0;var a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j=0,H=0;switch(Q=ur=(z=ur)+31&-32,ur=ur+144|0,a=128+Q|0,o=112+Q|0,O=124+Q|0,j=120+Q|0,c=116+Q|0,l=108+Q|0,u=104+Q|0,b=100+Q|0,s=96+Q|0,d=92+Q|0,k=88+Q|0,h=84+Q|0,w=80+Q|0,v=76+Q|0,m=72+Q|0,g=68+Q|0,Z=64+Q|0,p=60+Q|0,y=56+Q|0,B=52+Q|0,E=48+Q|0,X=44+Q|0,W=40+Q|0,I=36+Q|0,C=32+Q|0,G=28+Q|0,V=24+Q|0,F=20+Q|0,R=16+Q|0,N=12+Q|0,_=8+Q|0,Y=4+Q|0,ar[(f|=0)>>2]=0,Tf(a,i),D=0|un(a,59232),bn(a),J=n+8|0,M=n+20|0,T=n+16|0,U=n+24|0,S=A+8|0,t<<24>>24|0){case 65:case 97:ar[O>>2]=ar[r>>2],ar[a>>2]=ar[O>>2],yr(A,U,e,a,f,D),H=26;break;case 104:case 66:case 98:ar[j>>2]=ar[r>>2],ar[a>>2]=ar[j>>2],Br(A,T,e,a,f,D),H=26;break;case 99:j=0|jb[127&ar[12+(0|ar[S>>2])>>2]](S),ar[c>>2]=ar[e>>2],ar[l>>2]=ar[r>>2],H=(t=(r=(H=0|tr[j+11>>0])<<24>>24<0)?0|ar[j>>2]:j)+(r?0|ar[j+4>>2]:255&H)|0,ar[o>>2]=ar[c>>2],ar[a>>2]=ar[l>>2],H=0|Er(A,o,a,i,f,n,t,H),ar[e>>2]=H,H=26;break;case 101:case 100:ar[u>>2]=ar[r>>2],ar[a>>2]=ar[u>>2],Xr(A,n+12|0,e,a,f,D),H=26;break;case 68:ar[b>>2]=ar[e>>2],ar[s>>2]=ar[r>>2],ar[o>>2]=ar[b>>2],ar[a>>2]=ar[s>>2],H=0|Er(A,o,a,i,f,n,54387,54395),ar[e>>2]=H,H=26;break;case 70:ar[d>>2]=ar[e>>2],ar[k>>2]=ar[r>>2],ar[o>>2]=ar[d>>2],ar[a>>2]=ar[k>>2],H=0|Er(A,o,a,i,f,n,54395,54403),ar[e>>2]=H,H=26;break;case 72:ar[h>>2]=ar[r>>2],ar[a>>2]=ar[h>>2],Wr(A,J,e,a,f,D),H=26;break;case 73:ar[w>>2]=ar[r>>2],ar[a>>2]=ar[w>>2],Ir(A,J,e,a,f,D),H=26;break;case 106:ar[v>>2]=ar[r>>2],ar[a>>2]=ar[v>>2],Cr(A,n+28|0,e,a,f,D),H=26;break;case 109:ar[m>>2]=ar[r>>2],ar[a>>2]=ar[m>>2],Gr(A,T,e,a,f,D),H=26;break;case 77:ar[g>>2]=ar[r>>2],ar[a>>2]=ar[g>>2],Vr(A,n+4|0,e,a,f,D),H=26;break;case 116:case 110:ar[Z>>2]=ar[r>>2],ar[a>>2]=ar[Z>>2],Fr(A,e,a,f,D),H=26;break;case 112:ar[p>>2]=ar[r>>2],ar[a>>2]=ar[p>>2],Rr(A,J,e,a,f,D),H=26;break;case 114:ar[y>>2]=ar[e>>2],ar[B>>2]=ar[r>>2],ar[o>>2]=ar[y>>2],ar[a>>2]=ar[B>>2],H=0|Er(A,o,a,i,f,n,54403,54414),ar[e>>2]=H,H=26;break;case 82:ar[E>>2]=ar[e>>2],ar[X>>2]=ar[r>>2],ar[o>>2]=ar[E>>2],ar[a>>2]=ar[X>>2],H=0|Er(A,o,a,i,f,n,54414,54419),ar[e>>2]=H,H=26;break;case 83:ar[W>>2]=ar[r>>2],ar[a>>2]=ar[W>>2],Nr(A,n,e,a,f,D),H=26;break;case 84:ar[I>>2]=ar[e>>2],ar[C>>2]=ar[r>>2],ar[o>>2]=ar[I>>2],ar[a>>2]=ar[C>>2],H=0|Er(A,o,a,i,f,n,54419,54427),ar[e>>2]=H,H=26;break;case 119:ar[G>>2]=ar[r>>2],ar[a>>2]=ar[G>>2],_r(A,U,e,a,f,D),H=26;break;case 120:t=0|ar[20+(0|ar[A>>2])>>2],ar[V>>2]=ar[e>>2],ar[F>>2]=ar[r>>2],ar[o>>2]=ar[V>>2],ar[a>>2]=ar[F>>2],o=0|$b[63&t](A,o,a,i,f,n);break;case 88:j=0|jb[127&ar[24+(0|ar[S>>2])>>2]](S),ar[R>>2]=ar[e>>2],ar[N>>2]=ar[r>>2],H=(t=(r=(H=0|tr[j+11>>0])<<24>>24<0)?0|ar[j>>2]:j)+(r?0|ar[j+4>>2]:255&H)|0,ar[o>>2]=ar[R>>2],ar[a>>2]=ar[N>>2],H=0|Er(A,o,a,i,f,n,t,H),ar[e>>2]=H,H=26;break;case 121:ar[_>>2]=ar[r>>2],ar[a>>2]=ar[_>>2],Yr(A,M,e,a,f,D),H=26;break;case 89:ar[Y>>2]=ar[r>>2],ar[a>>2]=ar[Y>>2],Qr(A,M,e,a,f,D),H=26;break;case 37:ar[Q>>2]=ar[r>>2],ar[a>>2]=ar[Q>>2],Dr(A,e,a,f,D),H=26;break;default:ar[f>>2]=4|ar[f>>2],H=26}return 26==(0|H)&&(o=0|ar[e>>2]),ur=z,0|o},function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,n|=0,t|=0,o|=0;var a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G,V,F,R,N,_,Y,Q,D,J,M,T,U,S,O,z,j=0,H=0;switch(Q=ur=(z=ur)+31&-32,ur=ur+144|0,a=128+Q|0,o=112+Q|0,O=124+Q|0,j=120+Q|0,c=116+Q|0,l=108+Q|0,u=104+Q|0,b=100+Q|0,s=96+Q|0,d=92+Q|0,k=88+Q|0,h=84+Q|0,w=80+Q|0,v=76+Q|0,m=72+Q|0,g=68+Q|0,Z=64+Q|0,p=60+Q|0,y=56+Q|0,B=52+Q|0,E=48+Q|0,X=44+Q|0,W=40+Q|0,I=36+Q|0,C=32+Q|0,G=28+Q|0,V=24+Q|0,F=20+Q|0,R=16+Q|0,N=12+Q|0,_=8+Q|0,Y=4+Q|0,ar[(f|=0)>>2]=0,Tf(a,i),D=0|un(a,59264),bn(a),J=n+8|0,M=n+20|0,T=n+16|0,U=n+24|0,S=A+8|0,t<<24>>24|0){case 65:case 97:ar[O>>2]=ar[r>>2],ar[a>>2]=ar[O>>2],Tr(A,U,e,a,f,D),H=26;break;case 104:case 66:case 98:ar[j>>2]=ar[r>>2],ar[a>>2]=ar[j>>2],Ur(A,T,e,a,f,D),H=26;break;case 99:j=0|jb[127&ar[12+(0|ar[S>>2])>>2]](S),ar[c>>2]=ar[e>>2],ar[l>>2]=ar[r>>2],H=(t=(r=(H=0|tr[j+8+3>>0])<<24>>24<0)?0|ar[j>>2]:j)+((r?0|ar[j+4>>2]:255&H)<<2)|0,ar[o>>2]=ar[c>>2],ar[a>>2]=ar[l>>2],H=0|Sr(A,o,a,i,f,n,t,H),ar[e>>2]=H,H=26;break;case 101:case 100:ar[u>>2]=ar[r>>2],ar[a>>2]=ar[u>>2],Or(A,n+12|0,e,a,f,D),H=26;break;case 68:ar[b>>2]=ar[e>>2],ar[s>>2]=ar[r>>2],ar[o>>2]=ar[b>>2],ar[a>>2]=ar[s>>2],H=0|Sr(A,o,a,i,f,n,16244,16276),ar[e>>2]=H,H=26;break;case 70:ar[d>>2]=ar[e>>2],ar[k>>2]=ar[r>>2],ar[o>>2]=ar[d>>2],ar[a>>2]=ar[k>>2],H=0|Sr(A,o,a,i,f,n,16276,16308),ar[e>>2]=H,H=26;break;case 72:ar[h>>2]=ar[r>>2],ar[a>>2]=ar[h>>2],zr(A,J,e,a,f,D),H=26;break;case 73:ar[w>>2]=ar[r>>2],ar[a>>2]=ar[w>>2],jr(A,J,e,a,f,D),H=26;break;case 106:ar[v>>2]=ar[r>>2],ar[a>>2]=ar[v>>2],Hr(A,n+28|0,e,a,f,D),H=26;break;case 109:ar[m>>2]=ar[r>>2],ar[a>>2]=ar[m>>2],xr(A,T,e,a,f,D),H=26;break;case 77:ar[g>>2]=ar[r>>2],ar[a>>2]=ar[g>>2],Pr(A,n+4|0,e,a,f,D),H=26;break;case 116:case 110:ar[Z>>2]=ar[r>>2],ar[a>>2]=ar[Z>>2],Lr(A,e,a,f,D),H=26;break;case 112:ar[p>>2]=ar[r>>2],ar[a>>2]=ar[p>>2],Kr(A,J,e,a,f,D),H=26;break;case 114:ar[y>>2]=ar[e>>2],ar[B>>2]=ar[r>>2],ar[o>>2]=ar[y>>2],ar[a>>2]=ar[B>>2],H=0|Sr(A,o,a,i,f,n,16308,16352),ar[e>>2]=H,H=26;break;case 82:ar[E>>2]=ar[e>>2],ar[X>>2]=ar[r>>2],ar[o>>2]=ar[E>>2],ar[a>>2]=ar[X>>2],H=0|Sr(A,o,a,i,f,n,16352,16372),ar[e>>2]=H,H=26;break;case 83:ar[W>>2]=ar[r>>2],ar[a>>2]=ar[W>>2],qr(A,n,e,a,f,D),H=26;break;case 84:ar[I>>2]=ar[e>>2],ar[C>>2]=ar[r>>2],ar[o>>2]=ar[I>>2],ar[a>>2]=ar[C>>2],H=0|Sr(A,o,a,i,f,n,16372,16404),ar[e>>2]=H,H=26;break;case 119:ar[G>>2]=ar[r>>2],ar[a>>2]=ar[G>>2],$r(A,U,e,a,f,D),H=26;break;case 120:t=0|ar[20+(0|ar[A>>2])>>2],ar[V>>2]=ar[e>>2],ar[F>>2]=ar[r>>2],ar[o>>2]=ar[V>>2],ar[a>>2]=ar[F>>2],o=0|$b[63&t](A,o,a,i,f,n);break;case 88:j=0|jb[127&ar[24+(0|ar[S>>2])>>2]](S),ar[R>>2]=ar[e>>2],ar[N>>2]=ar[r>>2],H=(t=(r=(H=0|tr[j+8+3>>0])<<24>>24<0)?0|ar[j>>2]:j)+((r?0|ar[j+4>>2]:255&H)<<2)|0,ar[o>>2]=ar[R>>2],ar[a>>2]=ar[N>>2],H=0|Sr(A,o,a,i,f,n,t,H),ar[e>>2]=H,H=26;break;case 121:ar[_>>2]=ar[r>>2],ar[a>>2]=ar[_>>2],Ai(A,M,e,a,f,D),H=26;break;case 89:ar[Y>>2]=ar[r>>2],ar[a>>2]=ar[Y>>2],ei(A,M,e,a,f,D),H=26;break;case 37:ar[Q>>2]=ar[r>>2],ar[a>>2]=ar[Q>>2],ri(A,e,a,f,D),H=26;break;default:ar[f>>2]=4|ar[f>>2],H=26}return 26==(0|H)&&(o=0|ar[e>>2]),ur=z,0|o},function(A,e,r,i,f,n,t,o){var a;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,A=ur=(e=ur)+31&-32,ur=ur+16|0,t=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a=0,c=0,l=0;ar[(r|=0)>>2]=A,ar[n>>2]=i,2&o?(f-i|0)<3?A=1:(ar[n>>2]=i+1,tr[i>>0]=-17,a=0|ar[n>>2],ar[n>>2]=a+1,tr[a>>0]=-69,a=0|ar[n>>2],ar[n>>2]=a+1,tr[a>>0]=-65,a=4):a=4;A:do{if(4==(0|a))for(A=0|ar[r>>2];;){if(e>>>0<=A>>>0){A=0;break A}if(l=0|ar[A>>2],t>>>0>>0|55296==(-2048&l|0)){A=2;break A}do{if(128<=l>>>0){if(c=255&(63&l|128),l>>>0<2048){if(A=0|ar[n>>2],(f-A|0)<2){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=l>>>6|192,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=c;break}if(A=0|ar[n>>2],i=f-A|0,o=A+1|0,a=255&(l>>>6&63|128),l>>>0<65536){if((0|i)<3){A=1;break A}ar[n>>2]=o,tr[A>>0]=l>>>12|224,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=a,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=c;break}if((0|i)<4){A=1;break A}ar[n>>2]=o,tr[A>>0]=l>>>18|240,o=0|ar[n>>2],ar[n>>2]=o+1,tr[o>>0]=l>>>12&63|128,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=a,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=c;break}if(A=0|ar[n>>2],(f-A|0)<1){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=l}while(0);A=4+(0|ar[r>>2])|0,ar[r>>2]=A}}while(0);return 0|A}(ar[(a=A+4|0)>>2]=r,i,a,ar[A>>2]=n,t,A,1114111,0),ar[f>>2]=ar[a>>2],ar[o>>2]=ar[A>>2],ur=e,0|t},function(A,e,r,i,f,n,t,o){var a;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,A=ur=(e=ur)+31&-32,ur=ur+16|0,t=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c=0,l=0,u=0,b=0,s=0;ar[(r|=0)>>2]=A,ar[n>>2]=i,a=e,4&o|0&&(c=0|ar[r>>2],2<(a-c|0))&&-17==(0|tr[c>>0])&&-69==(0|tr[c+1>>0])&&-65==(0|tr[c+2>>0])&&(ar[r>>2]=c+3);A:for(;;){if(l=0|ar[r>>2],e>>>0<=l>>>0){A=0;break}if(s=0|ar[n>>2],f>>>0<=s>>>0){A=1;break}u=0|tr[l>>0],b=255&u,A=l+1|0;do{if(-1>24){if(t>>>0>>0){A=2;break A}ar[s>>2]=b}else{if((255&u)<194){A=2;break A}if(c=l+2|0,i=a-l|0,(255&u)<224){if((0|i)<2){A=1;break A}if(128!=(192&(A=0|cr[A>>0])|0)){A=2;break A}if(t>>>0<(A=63&A|b<<6&1984)>>>0){A=2;break A}ar[s>>2]=A,A=c;break}if(o=l+3|0,(255&u)<240){if((0|i)<3){A=1;break A}switch(i=0|tr[c>>0],c=0|cr[A>>0],A=224&c,u<<24>>24){case-32:if(160==(0|A))break;A=2;break A;case-19:if(128==(0|A))break;A=2;break A;default:if(128!=(192&c|0)){A=2;break A}}if(128!=(192&(A=255&i)|0)){A=2;break A}if(t>>>0<(A=c<<6&4032|b<<12&61440|63&A)>>>0){A=2;break A}ar[s>>2]=A,A=o;break}if(245<=(255&u)){A=2;break A}if((0|i)<4){A=1;break A}switch(i=0|tr[A>>0],A=0|tr[c>>0],c=0|tr[o>>0],o=255&i,u<<24>>24){case-16:if(48<=(i+112&255)){A=2;break A}break;case-12:if(128==(240&o|0))break;A=2;break A;default:if(128!=(192&o|0)){A=2;break A}}if(128!=(192&(i=255&A)|0)){A=2;break A}if(128!=(192&(A=255&c)|0)){A=2;break A}if(t>>>0<(A=o<<12&258048|b<<18&1835008|i<<6&4032|63&A)>>>0){A=2;break A}ar[s>>2]=A,A=l+4|0}}while(0);ar[r>>2]=A,ar[n>>2]=4+(0|ar[n>>2])}return 0|A}(ar[(a=A+4|0)>>2]=r,i,a,ar[A>>2]=n,t,A,1114111,0),ar[f>>2]=ar[a>>2],ar[o>>2]=ar[A>>2],ur=e,0|t},function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u,b=0,s=0,d=0,k=0;for(d=ur=(u=ur)+31&-32,ur=ur+16|0,d=(l=d)+8|0,b=r|=0;;){if((0|b)==(0|i)){b=i;break}if(!(0|ar[b>>2]))break;b=b+4|0}ar[o>>2]=n,ar[f>>2]=r,a=t,c=A+8|0;A:for(;;){if((0|n)==(0|t)|(0|r)==(0|i)){b=35;break}switch(s=0|ar[(k=e)+4>>2],ar[(A=l)>>2]=ar[k>>2],ar[A+4>>2]=s,A=0|rf(0|ar[c>>2]),s=0|Fi(n,f,b-r>>2,a-n|0,e),0|A&&rf(A),0|s){case-1:b=10;break A;case 0:r=1,b=32;break A}if(n=(0|ar[o>>2])+s|0,(0|(ar[o>>2]=n))==(0|t)){b=33;break}if((0|b)==(0|i))b=i,r=0|ar[f>>2];else{if(n=0|rf(0|ar[c>>2]),r=0|$c(d,0),0|n&&rf(n),-1==(0|r)){r=2,b=31;break}if(r>>>0>(a-(0|ar[o>>2])|0)>>>0){r=1,b=31;break}for(n=d;r;)s=0|tr[n>>0],k=0|ar[o>>2],ar[o>>2]=k+1,tr[k>>0]=s,n=n+1|0,r=r+-1|0;for(r=4+(0|ar[f>>2])|0,b=ar[f>>2]=r;;){if((0|b)==(0|i)){b=i;break}if(!(0|ar[b>>2]))break;b=b+4|0}n=0|ar[o>>2]}}if(10==(0|b)){for(ar[o>>2]=n;(0|r)!=(0|ar[f>>2])&&(k=0|ar[r>>2],b=0|rf(0|ar[c>>2]),n=0|$c(n,k),0|b&&rf(b),-1!=(0|n));)n=(0|ar[o>>2])+n|0,ar[o>>2]=n,r=r+4|0;ar[f>>2]=r,r=2,b=32}else 31==(0|b)?b=32:33==(0|b)&&(r=0|ar[f>>2],b=35);return 32!=(0|b)&&35==(0|b)&&(r=(0|r)!=(0|i)&1),ur=u,0|r},function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l,u,b=0,s=0,d=0;for(l=ur=(u=ur)+31&-32,ur=ur+16|0,b=r|=0;;){if((0|b)==(0|i)){b=i;break}if(!(0|tr[b>>0]))break;b=b+1|0}for(ar[o>>2]=n,ar[f>>2]=r,a=t,c=A+8|0,A=n;;){if((0|A)==(0|t)|(0|r)==(0|i)){A=32;break}if(n=0|ar[(s=e)+4>>2],ar[(d=l)>>2]=ar[s>>2],ar[d+4>>2]=n,d=b,n=0|rf(0|ar[c>>2]),s=0|Vi(A,f,d-r|0,a-A>>2,e),0|n&&rf(n),-1==(0|s)){b=A,A=10;break}if(A=(0|ar[o>>2])+(s<<2)|0,(0|(ar[o>>2]=A))==(0|t)){A=29;break}if(r=0|ar[f>>2],(0|b)==(0|i))b=i;else{if(b=0|rf(0|ar[c>>2]),r=0|Gi(A,r,1,e),0|b&&rf(b),0|r){r=2,A=28;break}for(ar[o>>2]=4+(0|ar[o>>2]),r=1+(0|ar[f>>2])|0,b=ar[f>>2]=r;;){if((0|b)==(0|i)){b=i;break}if(!(0|tr[b>>0]))break;b=b+1|0}A=0|ar[o>>2]}}do{if(10==(0|A)){A:for(;;){if(ar[o>>2]=b,(0|r)==(0|ar[f>>2])){A=18;break}switch(A=0|rf(0|ar[c>>2]),b=0|Gi(b,r,d-r|0,l),0|A&&rf(A),0|b){case-1:A=15;break A;case-2:A=16;break A;case 0:b=1}r=r+b|0,b=4+(0|ar[o>>2])|0,A=10}if(15==(0|A)){ar[f>>2]=r,r=2,A=28;break}if(16==(0|A)){ar[f>>2]=r,r=1,A=28;break}if(18==(0|A)){r=(0|(ar[f>>2]=r))!=(0|i)&1,A=28;break}}else 29==(0|A)&&(r=0|ar[f>>2],A=32)}while(0);return 28!=(0|A)&&32==(0|A)&&(r=(0|r)!=(0|i)&1),ur=u,0|r},function(A,e,r,i,f,n,t,o){return r|=0,n|=0,o|=0,ar[(f|=0)>>2]=r,ar[o>>2]=n,3},function(A,e,r,i,f,n,t,o){return r|=0,n|=0,o|=0,ar[(f|=0)>>2]=r,ar[o>>2]=n,3},function(A,e,r,i,f,n,t,o){var a;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,A=ur=(e=ur)+31&-32,ur=ur+16|0,t=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a=0,c=0,l=0,u=0,b=0;ar[(r|=0)>>2]=A,ar[n>>2]=i,2&o?(f-i|0)<3?A=1:(ar[n>>2]=i+1,tr[i>>0]=-17,a=0|ar[n>>2],ar[n>>2]=a+1,tr[a>>0]=-69,a=0|ar[n>>2],ar[n>>2]=a+1,tr[a>>0]=-65,a=4):a=4;A:do{if(4==(0|a))for(b=e,A=0|ar[r>>2];;){if(e>>>0<=A>>>0){A=0;break A}if(i=0|or[A>>1],t>>>0<(u=65535&i)>>>0){A=2;break A}do{if((65535&i)<128){if(A=0|ar[n>>2],(f-A|0)<1){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=i}else{if(l=255&(128|(c=63&u)),(65535&i)<2048){if(A=0|ar[n>>2],(f-A|0)<2){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=u>>>6|192,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=l;break}if(o=255&(u>>>12|224),a=255&(u>>>6&63|128),(65535&i)<55296){if(A=0|ar[n>>2],(f-A|0)<3){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=o,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=a,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=l;break}if(56320<=(65535&i)){if((65535&i)<57344){A=2;break A}if(A=0|ar[n>>2],(f-A|0)<3){A=1;break A}ar[n>>2]=A+1,tr[A>>0]=o,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=a,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=l;break}if((b-A|0)<4){A=1;break A}if(56320!=(64512&(i=0|lr[(A=A+2|0)>>1])|0)){A=2;break A}if((f-(0|ar[n>>2])|0)<4){A=1;break A}if(t>>>0<(65536+((o=960&u)<<10)|c<<10|1023&i)>>>0){A=2;break A}ar[r>>2]=A,c=1+(o>>>6)|0,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=c>>>2|240,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=u>>>2&15|c<<4&48|128,l=0|ar[n>>2],ar[n>>2]=l+1,tr[l>>0]=u<<4&48|i>>>6&15|128,u=0|ar[n>>2],ar[n>>2]=u+1,tr[u>>0]=63&i|128}}while(0);A=2+(0|ar[r>>2])|0,ar[r>>2]=A}}while(0);return 0|A}(ar[(a=A+4|0)>>2]=r,i,a,ar[A>>2]=n,t,A,1114111,0),ar[f>>2]=ar[a>>2],ar[o>>2]=ar[A>>2],ur=e,0|t},function(A,e,r,i,f,n,t,o){var a;return A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,A=ur=(e=ur)+31&-32,ur=ur+16|0,t=0|function(A,e,r,i,f,n,t,o){A|=0,e|=0,i|=0,f|=0,n|=0,t|=0,o|=0;var a,c,l=0,u=0,b=0,s=0,d=0,k=0;ar[(r|=0)>>2]=A,ar[n>>2]=i,c=e,4&o|0&&(l=0|ar[r>>2],2<(c-l|0))&&-17==(0|tr[l>>0])&&-69==(0|tr[l+1>>0])&&-65==(0|tr[l+2>>0])&&(ar[r>>2]=l+3);a=f;A:for(;;){if(i=0|ar[r>>2],!(A=i>>>0>>0)){k=40;break}if(d=0|ar[n>>2],f>>>0<=d>>>0){k=40;break}if(b=0|tr[i>>0],t>>>0<(s=255&b)>>>0){A=2;break}A=i+1|0;do{if(-1>24)or[d>>1]=255&b;else{if((255&b)<194){A=2;break A}if(l=c-i|0,o=i+2|0,(255&b)<224){if((0|l)<2){A=1;break A}if(128!=(192&(A=0|cr[A>>0])|0)){A=2;break A}if(t>>>0<(A=63&A|s<<6&1984)>>>0){A=2;break A}or[d>>1]=A,A=o;break}if(u=i+3|0,(255&b)<240){if((0|l)<3){A=1;break A}switch(i=0|tr[o>>0],l=0|cr[A>>0],A=224&l,b<<24>>24){case-32:if(160==(0|A))break;A=2;break A;case-19:if(128==(0|A))break;A=2;break A;default:if(128!=(192&l|0)){A=2;break A}}if(128!=(192&(A=255&i)|0)){A=2;break A}if(t>>>0<(65535&(A=l<<6&4032|s<<12|63&A))>>>0){A=2;break A}or[d>>1]=A,A=u;break}if(245<=(255&b)){A=2;break A}if((0|l)<4){A=1;break A}switch(l=0|tr[A>>0],A=0|tr[o>>0],i=0|tr[u>>0],u=255&l,b<<24>>24){case-16:if(48<=(l+112&255)){A=2;break A}break;case-12:if(128==(240&u|0))break;A=2;break A;default:if(128!=(192&u|0)){A=2;break A}}if(128!=(192&(o=255&A)|0)){A=2;break A}if(128!=(192&(A=255&i)|0)){A=2;break A}if((a-d|0)<4){A=1;break A}if(t>>>0<(u<<12&258048|(i=7&s)<<18|4032&(l=o<<6)|(A&=63))>>>0){A=2;break A}or[d>>1]=u<<2&60|o>>>4&3|16320+((u>>>4&3|i<<2)<<6)|55296,d=d+2|0,ar[n>>2]=d,or[d>>1]=A|960&l|56320,A=4+(0|ar[r>>2])|0}}while(0);ar[r>>2]=A,ar[n>>2]=2+(0|ar[n>>2])}40==(0|k)&&(A&=1);return 0|A}(ar[(a=A+4|0)>>2]=r,i,a,ar[A>>2]=n,t,A,1114111,0),ar[f>>2]=ar[a>>2],ar[o>>2]=ar[A>>2],ur=e,0|t},Rb,Rb,Rb,Rb,Rb],rs=[Nb,function(){!function(){var A=0;if(A=0|ar[14154],ar[14154]=A+1,1<(A+1|0))return A=0;if(Ya(),0|Ka())return A=0;ar[14154]=(0|ar[14154])-1,A=11}()},function(){!function(){var A=0;if(A=0|ar[14154],ar[14154]=A-1,(0|(A=A+-1|0))<0)return ar[14154]=1+(0|ar[14154]),A=12;if(0|A)return A=0;qa(),A=0}()},function(){W()},function(){var A,e,r,i=0,f=0,n=0,t=0,o=0;t=ur=ur+31&-32,ur=ur+48|0,r=t+32|0,A=t+24|0,o=t+16|0,t=(e=t)+36|0,0|(i=0|zu())&&0|(n=0|ar[i>>2])&&(1126902528==(-256&(f=0|ar[(i=n+48|0)>>2])|0)&1129074247==(0|(i=0|ar[i+4>>2]))||(ar[A>>2]=56019,ju(55969,A)),i=1126902529==(0|f)&1129074247==(0|i)?0|ar[n+44>>2]:n+80|0,ar[t>>2]=i,n=0|ar[n>>2],i=0|ar[n+4>>2],0|xb[63&ar[16+(0|ar[984])>>2]](3936,n,t)?(o=0|ar[t>>2],o=0|jb[127&ar[8+(0|ar[o>>2])>>2]](o),ar[e>>2]=56019,ar[e+4>>2]=i,ar[e+8>>2]=o,ju(55883,e)):(ar[o>>2]=56019,ar[o+4>>2]=i,ju(55928,o))),ju(56007,r)},function(){var A,e;e=ur=(A=ur)+31&-32,ur=ur+16|0,0|mA(61152,446)?ju(56207,e):ur=A},Nb,Nb],is=[_b,XA,function(A){var e;ar[(A|=0)>>2]=4232,(e=0|ar[A+24>>2])&&mu(e),vu(A)},function(A){var e;ar[(A|=0)>>2]=4264,(e=0|ar[A+24>>2])&&((0|ar[(A=A+28|0)>>2])!=(0|e)&&(ar[A>>2]=e),vu(e))},function(A){var e,r;ar[(A|=0)>>2]=4264,(e=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),vu(A)},function(A){var e,r,i;ar[(A|=0)>>2]=4304,ar[(e=A+56|0)>>2]=4324,ar[(r=A+4|0)>>2]=4340,(0|tr[11+(i=A+36|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),Gf(),bf(e)},function(A){var e,r,i;ar[(A|=0)>>2]=4304,ar[(e=A+56|0)>>2]=4324,ar[(r=A+4|0)>>2]=4340,(0|tr[11+(i=A+36|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),Gf(),bf(e),vu(A)},function(A){var e,r,i;A=(A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0,ar[A>>2]=4304,ar[(e=A+56|0)>>2]=4324,ar[(r=A+4|0)>>2]=4340,(0|tr[11+(i=A+36|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),Gf(),bf(e)},function(A){var e,r,i;A=(A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0,ar[A>>2]=4304,ar[(e=A+56|0)>>2]=4324,ar[(r=A+4|0)>>2]=4340,(0|tr[11+(i=A+36|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),Gf(),bf(e),vu(A)},function(A){var e;ar[(A|=0)>>2]=4340,(0|tr[11+(e=A+32|0)>>0])<0&&vu(0|ar[e>>2]),kf(A)},function(A){var e;ar[(A|=0)>>2]=4340,(0|tr[11+(e=A+32|0)>>0])<0&&vu(0|ar[e>>2]),kf(A),vu(A)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){tr[(A|=0)+37>>0]=0},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4436,0|(r=0|ar[A+64>>2])&&((0|(f=0|ar[(i=A+68|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-4-r|0)>>>2)<<2)),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4436,0|(r=0|ar[A+64>>2])&&((0|(f=0|ar[(i=A+68|0)>>2]))!=(0|r)&&(ar[i>>2]=f+(~((f+-4-r|0)>>>2)<<2)),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i;ar[(A|=0)>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e)},function(A){var e,r,i;ar[(A|=0)>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e),vu(A)},function(A){var e,r,i;ar[(A=(A|=0)+-8|0)>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e)},function(A){var e,r,i;ar[(A=(A|=0)+-8|0)>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e),vu(A)},function(A){var e,r,i;A=(A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0,ar[A>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e)},function(A){var e,r,i;A=(A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0,ar[A>>2]=4504,ar[(e=A+64|0)>>2]=4544,ar[A+8>>2]=4524,ar[(r=A+12|0)>>2]=4340,(0|tr[11+(i=A+44|0)>>0])<0&&vu(0|ar[i>>2]),kf(r),_f(),bf(e),vu(A)},yf,Bf,function(A){yf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Bf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},Rf,Nf,function(A){Rf((A|=0)+-8|0)},function(A){Nf((A|=0)+-8|0)},function(A){Rf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Nf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},If,Cf,function(A){If((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Cf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4600,ar[(r=A+16|0)>>2]=4436,0|(i=0|ar[A+80>>2])&&((0|(n=0|ar[(f=A+84|0)>>2]))!=(0|i)&&(ar[f>>2]=n+(~((n+-4-i|0)>>>2)<<2)),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4600,ar[(r=A+16|0)>>2]=4436,0|(i=0|ar[A+80>>2])&&((0|(n=0|ar[(f=A+84|0)>>2]))!=(0|i)&&(ar[f>>2]=n+(~((n+-4-i|0)>>>2)<<2)),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4628,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4628,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4656,ar[(r=A+16|0)>>2]=4684,(0|tr[(i=A+92|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4656,ar[(r=A+16|0)>>2]=4684,(0|tr[(i=A+92|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4684,(0|tr[(r=A+76|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4684,(0|tr[(r=A+76|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4716,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4716,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){tr[(A|=0)+37>>0]=65535<(0|ar[A+56>>2])>>>0&1},function(A){ar[(A|=0)>>2]=4776,Yt(A+16|0),tu()},function(A){ar[(A|=0)>>2]=4776,Yt(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},Yt,function(A){Yt(A|=0),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0,o=0;if(i=0|cr[(A|=0)+72>>0],i=!(65535<(n=0|ar[A+60>>2])-(f=0|ar[A+56>>2])>>5>>>0)||2>>0?i:2,r=A+74|0,t=A+75|0,o=A+76|0,tr[(e=A+73|0)>>0]=0,tr[1+e>>0]=0,tr[2+e>>0]=0,((tr[3+e>>0]=0)|f)==(0|n))return n=i,tr[e>>0]=4,tr[r>>0]=4,tr[t>>0]=4,tr[o>>0]=0,t=255&n,void(tr[(o=A+37|0)>>0]=t);for(;i=!(65535<(0|ar[f>>2])>>>0)||2<(0|i)?i:2,i=0==(0|tr[f+4>>0])|1<(0|i)?i:1,(0|(f=f+32|0))!=(0|n););tr[e>>0]=4,tr[r>>0]=4,tr[t>>0]=4,tr[o>>0]=0,t=255&i,tr[(o=A+37|0)>>0]=t},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4836,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4836,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){tr[(A|=0)+37>>0]=65535<(0|ar[A+48>>2])-(0|ar[A+44>>2])>>3>>>0&1},function(A){ar[(A|=0)>>2]=4896,_t(A+16|0),tu()},function(A){ar[(A|=0)>>2]=4896,_t(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},_t,function(A){_t(A|=0),vu(A)},function(A){var e,r=0,i=0,f=0;if(r=(e=65535<(0|ar[(A|=0)+56>>2])>>>0)?3:0==(0|tr[A+124>>0])?0:2,0==(0|((f=0|tr[(i=A+64|0)+11>>0])<<24>>24<0?0|ar[A+68>>2]:255&f))&&(f=0==(0|Yu(i,0,-1,79659,0))))return i=r,i&=255,void(tr[(f=A+37|0)>>0]=i);i=r=e?3:2,i&=255,tr[(f=A+37|0)>>0]=i},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4956,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=4956,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5016,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5016,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){ar[(A|=0)>>2]=5076,Ft(A+16|0),tu()},function(A){ar[(A|=0)>>2]=5076,Ft(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},Ft,function(A){Ft(A|=0),vu(A)},function(A){var e=0,r=0,i=0,f=0,n=0,t=0;if((0|(r=0|ar[(A|=0)+56>>2]))==(0|(t=0|ar[A+60>>2])))return tr[(t=A+37|(n=f=0))>>0]=f,n&=1,void(ar[(t=A+40|0)>>2]=n);n=e=0;do{if(n=65535<(0|ar[r>>2])>>>0?1:n,(0|(i=0|ar[r+4>>2]))!=(0|(f=0|ar[r+8>>2])))for(;e|=127<(0|lr[i+2>>1]),(0|(i=i+4|0))!=(0|f););r=r+16|0}while((0|r)!=(0|t));f=255&n,n=e,tr[(t=A+37|0)>>0]=f,n&=1,ar[(t=A+40|0)>>2]=n},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5136,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5136,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},Vt,function(A){Vt(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5224,0|(r=0|ar[A+68>>2])&&((0|ar[(i=A+72|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),(0|tr[(r=A+56|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5224,0|(r=0|ar[A+68>>2])&&((0|ar[(i=A+72|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),(0|tr[(r=A+56|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5256,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5256,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5316,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5316,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5376,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5376,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){ar[(A|=0)>>2]=5436,be(A+16|0),tu()},function(A){ar[(A|=0)>>2]=5436,be(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},be,function(A){be(A|=0),vu(A)},function(A){var e=0,r=0,i=0,f=0,n=0,t=0;if((0|(r=0|ar[(A|=0)+56>>2]))!=(0|(n=0|ar[A+60>>2]))){for(e=0;;){if(65535<(0|ar[r+48>>2])>>>0){e=1,r=6;break}if((0|(i=0|ar[r+52>>2]))!=(0|(f=0|ar[r+56>>2])))for(;e=(t=65535<(0|ar[i>>2])>>>0)?1:e,!(t|(0|(i=i+4|0))==(0|f)););if((0|(r=r+64|0))==(0|n)){r=6;break}}6!=(0|r)||(tr[(t=A+37|0)>>0]=e)}else tr[(A=A+37|(n=0))>>0]=n},function(A){ar[(A|=0)>>2]=5496,ce(A+16|0),tu()},function(A){ar[(A|=0)>>2]=5496,ce(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},ce,function(A){ce(A|=0),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5556,ar[(r=A+16|0)>>2]=5584,0|(i=0|ar[A+84>>2])&&((0|ar[(f=A+88|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5556,ar[(r=A+16|0)>>2]=5584,0|(i=0|ar[A+84>>2])&&((0|ar[(f=A+88|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5584,0|(r=0|ar[A+68>>2])&&((0|ar[(i=A+72|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5584,0|(r=0|ar[A+68>>2])&&((0|ar[(i=A+72|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5616,ar[(r=A+16|0)>>2]=5644,0|(i=0|ar[A+88>>2])&&((0|ar[(f=A+92|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5616,ar[(r=A+16|0)>>2]=5644,0|(i=0|ar[A+88>>2])&&((0|ar[(f=A+92|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5644,0|(r=0|ar[A+72>>2])&&((0|ar[(i=A+76|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5644,0|(r=0|ar[A+72>>2])&&((0|ar[(i=A+76|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){ar[(A|=0)>>2]=5676,te(A+16|0),tu()},function(A){ar[(A|=0)>>2]=5676,te(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},te,function(A){te(A|=0),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5736,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5736,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5796,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5796,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5856,ar[(r=A+16|0)>>2]=5884,(0|tr[(i=A+72|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5856,ar[(r=A+16|0)>>2]=5884,(0|tr[(i=A+72|0)+11>>0])<0&&vu(0|ar[i>>2]),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5884,(0|tr[(r=A+56|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5884,(0|tr[(r=A+56|0)+11>>0])<0&&vu(0|ar[r>>2]),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5916,ar[(r=A+16|0)>>2]=5944,0|(i=0|ar[A+76>>2])&&du(i),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5916,ar[(r=A+16|0)>>2]=5944,0|(i=0|ar[A+76>>2])&&du(i),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5944,0|(r=0|ar[A+60>>2])&&du(r),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=5944,0|(r=0|ar[A+60>>2])&&du(r),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(f=i;i=f+-8|0,ar[n>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[n>>2]),(0|i)!=(0|r);)f=i;r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5976,ar[(r=A+16|0)>>2]=6004,0|(i=0|ar[A+72>>2])&&((0|ar[(f=A+76|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=5976,ar[(r=A+16|0)>>2]=6004,0|(i=0|ar[A+72>>2])&&((0|ar[(f=A+76|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),ar[r>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(;n=f+-8|0,ar[t>>2]=n,(0|(f=(f=0|ar[f+-4>>2])?(du(f),0|ar[t>>2]):n))!=(0|i););i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=6004,0|(r=0|ar[A+56>>2])&&((0|ar[(i=A+60|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(i=0|ar[A+24>>2])&&((0|ar[(r=A+28|0)>>2])!=(0|i)&&(ar[r>>2]=i),vu(i))},function(A){var e,r=0,i=0,f=0,n=0;if(ar[(A|=0)>>2]=6004,0|(r=0|ar[A+56>>2])&&((0|ar[(i=A+60|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),ar[A>>2]=4404,0|(r=0|ar[(e=A+44|0)>>2])){if((0|(i=0|ar[(n=A+48|0)>>2]))!=(0|r)){for(;f=i+-8|0,ar[n>>2]=f,(0|(i=(i=0|ar[i+-4>>2])?(du(i),0|ar[n>>2]):f))!=(0|r););r=0|ar[e>>2]}vu(r)}ar[A>>2]=4264,(r=0|ar[A+24>>2])&&((0|ar[(i=A+28|0)>>2])!=(0|r)&&(ar[i>>2]=r),vu(r)),vu(A)},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=6036,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}ar[r>>2]=4264,(i=0|ar[A+40>>2])&&((0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i)),tu()},function(A){var e,r,i=0,f=0,n=0,t=0;if(ar[(A|=0)>>2]=6036,ar[(r=A+16|0)>>2]=4404,0|(i=0|ar[(e=A+60|0)>>2])){if((0|(f=0|ar[(t=A+64|0)>>2]))!=(0|i)){for(n=f;f=n+-8|0,ar[t>>2]=f,(n=0|ar[n+-4>>2])&&(du(n),f=0|ar[t>>2]),(0|f)!=(0|i);)n=f;i=0|ar[e>>2]}vu(i)}if(ar[r>>2]=4264,!(i=0|ar[A+40>>2]))return tu(),void vu(A);(0|ar[(f=A+44|0)>>2])!=(0|i)&&(ar[f>>2]=i),vu(i),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){0},function(A){vu(A|=0)},function(A){var e,r;ar[(A|=0)>>2]=6120,ar[A+12>>2]=6148,(e=0|ar[A+20>>2])&&((0|ar[(r=A+24|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),tu()},function(A){var e,r;if(ar[(A|=0)>>2]=6120,ar[A+12>>2]=6148,!(e=0|ar[A+20>>2]))return tu(),void vu(A);(0|ar[(r=A+24|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){var e;ar[(A|=0)>>2]=6148,(e=0|ar[A+8>>2])&&((0|ar[(A=A+12|0)>>2])!=(0|e)&&(ar[A>>2]=e),vu(e))},function(A){var e,r;ar[(A|=0)>>2]=6148,(e=0|ar[A+8>>2])&&((0|ar[(r=A+12|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),vu(A)},function(A){ar[(A|=0)>>2]=6180,XA(A+16|0),tu()},function(A){ar[(A|=0)>>2]=6180,XA(A+16|0),tu(),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){ar[(A|=0)>>2]=6208,po(A+12|0),tu()},function(A){ar[(A|=0)>>2]=6208,po(A+12|0),tu(),vu(A)},function(A){po((A|=0)+12|0)},function(A){vu(A|=0)},function(A){ar[(A|=0)>>2]=6336,gl(A+12|0),tu()},function(A){ar[(A|=0)>>2]=6336,gl(A+12|0),tu(),vu(A)},function(A){gl((A|=0)+12|0)},function(A){vu(A|=0)},function(A){ar[(A|=0)>>2]=6364,lo(A+12|0),tu()},function(A){ar[(A|=0)>>2]=6364,lo(A+12|0),tu(),vu(A)},function(A){lo((A|=0)+12|0)},function(A){vu(A|=0)},function(A){ar[(A|=0)>>2]=6392,El(A+16|0),tu()},function(A){ar[(A|=0)>>2]=6392,El(A+16|0),tu(),vu(A)},function(A){El((A|=0)+16|0)},function(A){vu(A|=0)},function(A){var e=0,r=0;ar[(A|=0)>>2]=6420,0|(e=0|ar[A+40>>2])&&((0|ar[(r=A+44|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),(0|tr[(e=A+28|0)+11>>0])<0&&vu(0|ar[e>>2]),0<=(0|tr[(e=A+16|0)+11>>0])||vu(0|ar[e>>2]),tu()},function(A){var e=0,r=0;if(ar[(A|=0)>>2]=6420,0|(e=0|ar[A+40>>2])&&((0|ar[(r=A+44|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),(0|tr[(e=A+28|0)+11>>0])<0&&vu(0|ar[e>>2]),0<=(0|tr[(e=A+16|0)+11>>0]))return tu(),void vu(A);vu(0|ar[e>>2]),tu(),vu(A)},function(A){var e=0,r=0;0|(e=0|ar[(A|=0)+40>>2])&&((0|ar[(r=A+44|0)>>2])!=(0|e)&&(ar[r>>2]=e),vu(e)),(0|tr[(e=A+28|0)+11>>0])<0&&vu(0|ar[e>>2]),0<=(0|tr[(e=A+16|0)+11>>0])||vu(0|ar[e>>2])},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+16|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){0},function(A){vu(A|=0)},function(A){0},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){tu(A|=0)},function(A){tu(A|=0),vu(A)},function(A){is[511&ar[ar[(A=(A|=0)+12|0)>>2]>>2]](A)},function(A){vu(A|=0)},function(A){(function(A){(function(A){if((0|ar[375892+(A|=0)>>2])<=0)return;!function(A){var e,r,i,f=0;{if(gb(e=420+(A|=0)|0),tr[A>>0]=1,Zb(),mb(r=A+448|0),!(0<(0|ar[(i=A+156|0)>>2])))return ZA(0|e),sA(0|r);f=0}for(;vA(0|ar[A+28+(f<<2)>>2],0),f=f+1|0,(0|f)<(0|ar[i>>2]););ZA(0|e),sA(0|r)}(A+375396|0)})(A|=0),0|A&&is[511&ar[4+(0|ar[A>>2])>>2]](A);if(A=0|ar[14154],ar[14154]=A-1,(0|(A=A+-1|0))<0)return ar[14154]=1+(0|ar[14154]),A=12;if(0|A)return A=0;qa(),A=0})(0|ar[(A|=0)>>2]),A&&vu(A)},Me,function(A){Me(A|=0),vu(A)},function(A){0},function(A){vu(A|=0)},function(A){0},function(A){vu(A|=0)},function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0;ar[(t=(A|=0)+4|0)>>2]=1,la(0|ar[(n=A+12|0)>>2],A),o=0|ar[n>>2],u=(w=0|ar[o+5820>>2])+-1|0,i=1<<(b=0|ar[o+5804>>2]),l=A+24|0,ba(o,A,u,0|ar[(f=A+8|0)>>2],0|ar[l>>2]),0<(0|(o=0|ar[f>>2]))&&(ba(0|ar[n>>2],A,u,o+-1|0,0|ar[l>>2]),o=0|ar[f>>2]),a=o+1|0,c=0|ar[n>>2],(0|a)<(0|ar[c+5828>>2])&&(ba(c,A,u,a,0|ar[l>>2]),o=0|ar[f>>2]),r=A+16|0,function(A,e,r,i){A|=0,r|=0,i|=0;var f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(c=(0|(c=0|ar[(e|=0)+28>>2]))<(0|i)?c:i,1&r|0&&sr(36765,36663,535,36780),1&c|0&&sr(36796,36663,536,36780),n=(7+(0|ar[A+5760>>2])|0)/8|0,s=(7+(0|ar[A+5768>>2])|0)/8|0,(0|(i=0|ar[(t=e+40|0)>>2]))!=(0|(f=0|ar[(o=A+40|0)>>2]))){if((0|r)<(0|c)&&(l=A+4|0,u=e+4|0,b=e+24|0,a=0|br(n,r),hb(0|(f=(0|ar[l>>2])+(0|br(a,f))|0),0|(a=(0|ar[u>>2])+(0|br(a,i))|0),0|br(0|ar[b>>2],n)),(0|(a=r+1|0))<(0|c)))for(i=a;a=0|br(i,n),hb(0|(f=(0|ar[l>>2])+(0|br(a,0|ar[o>>2]))|0),0|(a=(0|ar[u>>2])+(0|br(a,0|ar[t>>2]))|0),0|br(0|ar[b>>2],n)),(0|(i=i+1|0))<(0|c););}else hb(0|(b=(0|ar[A+4>>2])+(0|br(0|br(n,r),i))|0),(0|ar[e+4>>2])+(0|br(0|br(i,r),n))|0,0|br(0|br(n,c-r|0),i));if(i=(0|r)/(0|(a=0|ar[e+5784>>2]))|0,a=(0|c)/(0|a)|0,0|ar[e+20>>2]){if((0|(f=0|ar[(c=e+44|0)>>2]))==(0|(n=0|ar[(r=A+44|0)>>2])))return u=0|br(i,s),l=0|br(u,f),b=0|br(a-i|0,s),hb((0|ar[A+8>>2])+l|0,(0|ar[e+8>>2])+l|0,0|br(b,f)),s=0|ar[r>>2],u=0|br(u,s),hb((0|ar[A+12>>2])+u|0,(0|ar[e+12>>2])+u|0,0|br(b,s));if(!((0|a)<=(0|i)))for(l=A+8|0,u=e+8|0,b=e+32|0,o=A+12|0,t=e+12|0;e=0|br(i,s),hb(0|(n=(0|ar[l>>2])+(0|br(e,n))|0),0|(A=(0|ar[u>>2])+(0|br(e,f))|0),0|br(0|ar[b>>2],s)),hb(0|(A=(0|ar[o>>2])+(0|br(e,0|ar[r>>2]))|0),0|(e=(0|ar[t>>2])+(0|br(e,0|ar[c>>2]))|0),0|br(0|ar[b>>2],s)),(0|(i=i+1|0))!=(0|a);)n=0|ar[r>>2],f=0|ar[c>>2]}}(0|ar[(e=A+20|0)>>2],0|ar[r>>2],o<>2];A:do{if(0<(0|ar[o+5820>>2])){h=0;do{if(b=0|ar[f>>2],a=(0|br(0|ar[o+10352>>2],b))+h|0,a=0|lr[(0|ar[o+10340>>2])+(24*a|0)+2>>1],c=0|ar[o+48>>2],a>>>0>=(0|ar[o+52>>2])-c>>2>>>0)break A;if(!(k=0|ar[c+(a<<2)>>2]))break A;do{if(0|tr[k+325>>0]){if(a=0|ar[r>>2],l=0|ar[a+4>>2],a=0|ar[a+40>>2],c=0|ar[e>>2],u=0|ar[c+4>>2],c=0|ar[c+40>>2],8<(0|ar[o+5760>>2])){Ra(o,h,b,k,0,i,i,l,a,u,c);break}Na(o,h,b,k,0,i,i,l,a,u,c);break}}while(0);do{if(0|tr[k+326>>0]){if(c=0|ar[n>>2],s=(0|i)/(0|ar[c+5780>>2])|0,d=(0|i)/(0|ar[c+5784>>2])|0,l=0|ar[f>>2],a=0|ar[r>>2],u=0|ar[a+8>>2],a=0|ar[a+44>>2],o=0|ar[e>>2],b=0|ar[o+8>>2],o=0|ar[o+44>>2],(8<(0|ar[c+5768>>2])?Ra:Na)(c,h,l,k,1,s,d,u,a,b,o),u=0|ar[n>>2],b=0|ar[f>>2],a=0|ar[r>>2],c=0|ar[a+12>>2],a=0|ar[a+44>>2],o=0|ar[e>>2],l=0|ar[o+12>>2],o=0|ar[o+44>>2],8<(0|ar[u+5768>>2])){Ra(u,h,b,k,2,s,d,c,a,l,o);break}Na(u,h,b,k,2,s,d,c,a,l,o);break}}while(0);h=h+1|0,o=0|ar[n>>2]}while((0|h)<(0|ar[o+5820>>2]))}}while(0);if(!(0<(0|w)))return w=o,ar[t>>2]=3,void ua(w,A);for(a=0;Tn((0|ar[o+10524>>2])+(80*((0|br(0|ar[f>>2],0|ar[o+5820>>2]))+a|0)|0)|0,4),a=a+1|0,o=0|ar[n>>2],(0|a)!=(0|w););ar[t>>2]=3,ua(o,A)},function(A){vu(A|=0)},function(A){var e,r,i,f=0,n=0,t=0,o=0;e=0|ar[(A|=0)+20>>2],r=0|ar[(n=18596+e|0)>>2],ar[(i=A+4|0)>>2]=1,la(r,A),n=0|ar[n>>2],t=0|ar[4+e>>2],f=0|ar[n+5836>>2],o=0|ar[n+5820>>2],(0|t)<(0|f)&&(f=0|ar[(0|ar[n+10284>>2])+(t<<2)>>2]),ar[e>>2]=f,ar[8+e>>2]=(0|f)%(0|o)|0,ar[12+e>>2]=(0|f)/(0|o)|0,f=A+8|0;do{if(0|tr[f>>0]){if(!(0|Da(e)))return ar[i>>2]=3,Un(44+(0|ar[18608+e>>2])|0,1),void ua(r,A)}else{if(n=0|ar[18600+e>>2],(t=0|ar[n+796>>2])>>>0<3){ht(18580+e|0,t,0|ar[n+792>>2]),tr[(o=18588+e|0)>>0]=0,tr[o+1>>0]=0,tr[o+2>>0]=0,tr[o+3>>0]=0;break}sr(39211,39242,1508,39251)}}while(0);tt(18556+e|0),Ja(e,0,0!=(0|tr[f>>0])),ar[i>>2]=3,Un(44+(0|ar[18608+e>>2])|0,1),ua(r,A)},function(A){vu(A|=0)},function(A){var e,r,i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0;if(f=0|ar[(A|=0)+16>>2],n=0|ar[(l=18596+f|0)>>2],r=0|ar[(i=5820+n|0)>>2],ar[(t=A+4|0)>>2]=1,la(n,A),l=0|ar[l>>2],c=0|ar[4+f>>2],a=0|ar[l+5836>>2],u=0|ar[l+5820>>2],(0|c)<(0|a)&&(a=0|ar[(0|ar[l+10284>>2])+(c<<2)>>2]),ar[f>>2]=a,ar[(c=8+f|0)>>2]=(0|a)%(0|u)|0,ar[(l=12+f|0)>>2]=(0|a)/(0|u)|0,e=(0|a)/(0|r)|0,0|tr[(a=A+8|0)>>0]&&!(0|Da(f))){if(0<(0|r))for(c=10524+n|0,a=0|br(e,r),o=0;Tn((0|ar[c>>2])+(80*(o+a|0)|0)|0,1),(0|(o=o+1|0))!=(0|r););return ar[t>>2]=3,Un(44+(0|ar[18608+f>>2])|0,1),void ua(n,A)}tt(18556+f|0),Ja(f,1,a=0|tr[a>>0]?0==(0|tr[12+(0|ar[18600+f>>2])>>0]):0);A:do{if((0|ar[l>>2])==(0|e)&&(b=0|ar[i>>2],o=0|ar[c>>2],(0|o)<(0|b)))for(u=5828+n|0,c=0|br(e,r),l=10524+n|0,a=b;;){if((0|o)<(0|a)&&(0|e)<(0|ar[u>>2])&&Tn((0|ar[l>>2])+(80*(o+c|0)|0)|0,1),(0|(o=o+1|0))==(0|b))break A;a=0|ar[i>>2]}}while(0);ar[t>>2]=3,Un(44+(0|ar[18608+f>>2])|0,1),ua(n,A)},function(A){vu(A|=0)},function(A){var e,r,i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0;ar[(a=(A|=0)+4|0)>>2]=1,la(0|ar[(t=A+8|0)>>2],A),e=0|ar[t>>2],i=0|ar[10472+e>>2],d=(0|ar[5812+e>>2])/4|0,c=0|ar[(n=A+12|0)>>2],r=0|br(c,d),d=0|br(l=c+1|0,d),d=(0|(s=0|ar[10476+e>>2]))<(0|d)?s:d,f=(k=0!=(0|tr[(s=A+16|0)>>0]))?2:3,u=(o=0|ar[5820+e>>2])-1|0,k?ba(e,A,u,(0|(k=(0|ar[5828+e>>2])-1|0))<(0|l)?k:l,1):(0<(0|c)?(ba(e,A,u,c+-1|0,2),l=0|ar[t>>2],c=0|ar[n>>2]):l=e,ba(l,A,u,c,2),c=1+(0|ar[n>>2])|0,l=0|ar[t>>2],(0|c)<(0|ar[l+5828>>2])&&ba(l,A,u,c,2)),c=0|ar[t>>2],l=0|ar[n>>2],0|tr[s>>0]?(k=0|Zt(c,l),c=0|ar[t>>2],u=0|br(0|ar[c+10352>>2],0|ar[n>>2]),tr[(0|ar[c+10340>>2])+(24*u|0)+21>>0]=1&k,k&&(l=0!=(0|tr[s>>0]),b=11)):(k=0|br(0|ar[c+10352>>2],l),0|tr[(0|ar[c+10340>>2])+(24*k|0)+21>>0]&&(l=0,b=11));do{if(11==(0|b)&&(pt(c,l,r,d,0,i),c=0|ar[t>>2],l=0!=(0|tr[s>>0]),(8<(0|ar[c+5760>>2])?yt:Bt)(c,l,r,d,0,i),l=0|ar[t>>2],0|ar[l+5776>>2])){if(c=0!=(0|tr[s>>0]),8<(0|ar[l+5768>>2])){Et(l,c,r,d,0,i);break}Xt(l,c,r,d,0,i);break}}while(0);if(c=0|ar[t>>2],!(0<(0|o)))return k=c,ar[a>>2]=3,void ua(k,A);for(l=0;Tn((0|ar[c+10524>>2])+(80*((0|br(0|ar[n>>2],0|ar[c+5820>>2]))+l|0)|0)|0,f),l=l+1|0,c=0|ar[t>>2],(0|l)!=(0|o););ar[a>>2]=3,ua(c,A)},sf,function(A){sf(A|=0),vu(A)},kf,function(A){kf(A|=0),vu(A)},mf,function(A){mf(A|=0),vu(A)},Xf,Wf,function(A){Xf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Wf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},Vf,Ff,function(A){Vf((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},function(A){Ff((A|=0)+(0|ar[(0|ar[A>>2])-12>>2])|0)},An,function(A){An(A|=0),vu(A)},en,function(A){en(A|=0),vu(A)},rn,function(A){rn(A|=0),vu(A)},nn,function(A){nn(A|=0),vu(A)},on,function(A){on(A|=0),vu(A)},function(A){0|(A|=0)&&is[511&ar[4+(0|ar[A>>2])>>2]](A)},cn,function(A){cn(),vu(A|=0)},function(A){an()},function(A){an(),vu(A|=0)},function(A){an()},function(A){an(),vu(A|=0)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){ni((A|=0)+8|0),an()},function(A){ni((A|=0)+8|0),an(),vu(A)},function(A){ni((A|=0)+8|0),an()},function(A){ni((A|=0)+8|0),an(),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an(A|=0)},function(A){an(A|=0),vu(A)},function(A){an()},function(A){an(),vu(A|=0)},function(A){an()},function(A){an(),vu(A|=0)},an,function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},Ql,function(A){Ql(A|=0),vu(A)},Dl,function(A){Dl(A|=0),vu(A)},Jl,function(A){Jl(A|=0),vu(A)},Sl,function(A){Sl(A|=0),vu(A)},Ol,function(A){Ol(A|=0),vu(A)},function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},function(A){an(),vu(A|=0)},ou,function(A){ou(),vu(A|=0)},Hu,function(A){Hu(),vu(A|=0)},function(A){0},function(A){0},function(A){Hu(),vu(A|=0)},$u,function(A){$u(A|=0),vu(A)},function(A){$u(A|=0),vu(A)},function(A){Hu(),vu(A|=0)},function(A){Hu(),vu(A|=0)},function(A){Hu(),vu(A|=0)},function(A){Hu(),vu(A|=0)},function(A){ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,tr[A+11>>0]=6,tr[A>>0]=0|tr[30018],tr[A+1>>0]=0|tr[30019],tr[A+2>>0]=0|tr[30020],tr[A+3>>0]=0|tr[30021],tr[A+4>>0]=0|tr[30022],tr[A+5>>0]=0|tr[30023],tr[A+6>>0]=0},function(A){var e;(A|=0)&&(0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){var e=0;(A|=0)&&(0|(e=0|ar[A+12>>2])&&du(e),0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){var e;(A|=0)&&(0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){var e=0;(A|=0)&&(0|(e=0|ar[A+12>>2])&&du(e),0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){var e;(A|=0)&&(0|(e=0|ar[A+4>>2])&&du(e),vu(A))},function(A){(A|=0)&&vu(A)},function(A){var e;A|=0,e=0|ar[14811],ar[14811]=1+e,ar[A+4>>2]=1+e},function(A){!function(A){var e,r,i;e=0|ar[4+(A|=0)>>2],i=0|ar[A+8>>2],r=(0|ar[A>>2])+(i>>1)|0,A=1&i?0|ar[(0|ar[r>>2])+e>>2]:e;is[511&A](r)}(0|ar[ar[(A|=0)>>2]>>2])},function(A){0},Bc,function(A){var e,r;r=ur=(e=ur)+31&-32,ur=ur+16|0,Bc(A|=0),0|BA(0|ar[15288],0)?ju(56257,r):ur=e},_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b,_b],fs=[Yb,function(A,e){},function(A,e){var r,i;A|=0,e|=0,r=0|hu(4),ar[r>>2]=0,ar[A>>2]=ar[1904],ar[A+4>>2]=ar[1905],ar[A+8>>2]=ar[1906],A=0|(i=(i=0)|ar[14154],ar[14154]=i+1,!((i+1|0)<=1)||(Ya(),0|Ka())?(function(A){var e=0,r=0,i=0,f=0,n=0,t=0,o=0,a=0;for(ar[84+(A|=0)>>2]=0,ar[A+168>>2]=0,ar[A>>2]=7720,function(A){ar[(A|=0)>>2]=1,ar[A+4>>2]=9,ar[A+8>>2]=1,ar[A+12>>2]=1,ar[A+16>>2]=1,ar[A+20>>2]=2,ar[A+24>>2]=1,ar[A+28>>2]=1,ar[A+32>>2]=2,ar[A+36>>2]=2,ar[A+40>>2]=2,ar[A+44>>2]=2,ar[A+48>>2]=3,ar[A+52>>2]=4,ar[A+56>>2]=5,ar[A+60>>2]=6,ar[A+64>>2]=7,ar[A+68>>2]=8,ar[A+72>>2]=9,ar[A+76>>2]=10,ar[A+80>>2]=11,ar[A+84>>2]=12,ar[A+88>>2]=13,ar[A+92>>2]=14,ar[A+96>>2]=15,ar[A+100>>2]=16,ar[A+104>>2]=17,ar[A+108>>2]=18,ar[A+112>>2]=3,ar[A+116>>2]=4,ar[A+120>>2]=4,ar[A+124>>2]=4,ar[A+128>>2]=2,ar[A+132>>2]=3,ar[A+136>>2]=4,ar[A+140>>2]=5,ar[A+144>>2]=6,ar[A+148>>2]=7,ar[A+152>>2]=8,ar[A+156>>2]=9,ar[A+160>>2]=10,ar[A+164>>2]=11,ar[A+168>>2]=12,ar[A+172>>2]=13,ar[A+176>>2]=14,ar[A+180>>2]=15,ar[A+184>>2]=16,ar[A+188>>2]=17,ar[A+204>>2]=81,ar[A+212>>2]=11,ar[A+208>>2]=12,ar[A+192>>2]=82,ar[A+200>>2]=83,ar[A+196>>2]=84,ar[A+216>>2]=85,ar[A+220>>2]=86,ar[A+224>>2]=87,ar[A+228>>2]=88,ar[A+232>>2]=89,ar[A+236>>2]=13,ar[A+240>>2]=14,ar[A+244>>2]=15,ar[A+248>>2]=16,ar[A+252>>2]=17,ar[A+256>>2]=18,ar[A+260>>2]=47,ar[A+284>>2]=44,ar[A+288>>2]=45,ar[A+296>>2]=46,ar[A+292>>2]=47,ar[A+300>>2]=48,ar[A+264>>2]=19,ar[A+268>>2]=20,ar[A+272>>2]=21,ar[A+276>>2]=22,ar[A+280>>2]=23,ar[A+304>>2]=90,ar[A+308>>2]=91,ar[A+312>>2]=92,ar[A+316>>2]=93,ar[A+320>>2]=94,ar[A+324>>2]=95,ar[A+328>>2]=96,ar[A+332>>2]=97,ar[A+336>>2]=98}(A+172|0),ar[A>>2]=7696,function(A){var e;for(tr[(A|=0)>>0]=0,tr[A+1>>0]=0,e=48+(A=A+4|0)|0;((ar[A>>2]=0)|(A=A+4|0))<(0|e););}(A+548|0),ar[A+1192>>2]=0,ar[A+1196>>2]=0,ar[A+1200>>2]=0,ar[(e=A+1228|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+1848>>2]=0,ar[A+1852>>2]=0,ar[A+1856>>2]=0,ar[(e=A+1884|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+2504>>2]=0,ar[A+2508>>2]=0,ar[A+2512>>2]=0,ar[(e=A+2540|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+3160>>2]=0,ar[A+3164>>2]=0,ar[A+3168>>2]=0,ar[(e=A+3196|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+3816>>2]=0,ar[A+3820>>2]=0,ar[A+3824>>2]=0,ar[(e=A+3852|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+4472>>2]=0,ar[A+4476>>2]=0,ar[A+4480>>2]=0,ar[(e=A+4508|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+5128>>2]=0,ar[A+5132>>2]=0,ar[A+5136>>2]=0,ar[(e=A+5164|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+5784>>2]=0,ar[A+5788>>2]=0,ar[A+5792>>2]=0,ar[(e=A+5820|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+6440>>2]=0,ar[A+6444>>2]=0,ar[A+6448>>2]=0,ar[(e=A+6476|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+7096>>2]=0,ar[A+7100>>2]=0,ar[A+7104>>2]=0,ar[(e=A+7132|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+7752>>2]=0,ar[A+7756>>2]=0,ar[A+7760>>2]=0,ar[(e=A+7788|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+8408>>2]=0,ar[A+8412>>2]=0,ar[A+8416>>2]=0,ar[(e=A+8444|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+9064>>2]=0,ar[A+9068>>2]=0,ar[A+9072>>2]=0,ar[(e=A+9100|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+9720>>2]=0,ar[A+9724>>2]=0,ar[A+9728>>2]=0,ar[(e=A+9756|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+10376>>2]=0,ar[A+10380>>2]=0,ar[A+10384>>2]=0,ar[(e=A+10412|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,ar[A+11032>>2]=0,ar[A+11036>>2]=0,ar[A+11040>>2]=0,ar[(e=A+11068|0)>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[e+16>>2]=0,ar[e+20>>2]=0,$a(A+11096|0),$a(A+16264|0),$a(A+21432|0),$a(A+26600|0),$a(A+31768|0),$a(A+36936|0),$a(A+42104|0),$a(A+47272|0),$a(A+52440|0),$a(A+57608|0),$a(A+62776|0),$a(A+67944|0),$a(A+73112|0),$a(A+78280|0),$a(A+83448|0),$a(A+88616|0),e=0;Ia(A+93784+(4400*e|0)|0),64!=(0|(e=e+1|0)););for(ar[(n=A+375400|0)>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,ar[n+12>>2]=0,ar[n+16>>2]=0,ar[n+20>>2]=0,function(A){var e,r=0;for(e=48+(r=8+(A|=0)|0)|0;((ar[r>>2]=0)|(r=r+4|0))<(0|e););ar[A>>2]=30,ar[A+4>>2]=30}(A+376148|0),ar[A+377216>>2]=0,ar[A+377220>>2]=0,ar[A+377224>>2]=0,tr[A+512>>0]=0,tr[A+513>>0]=1,tr[A+514>>0]=0,tr[A+532>>0]=0,tr[A+533>>0]=0,ar[(n=A+516|0)>>2]=-1,ar[n+4>>2]=-1,ar[n+8>>2]=-1,ar[n+12>>2]=-1,e=0|ar[4+(n=7736)>>2],ar[(t=A+536|0)>>2]=ar[n>>2],ar[t+4>>2]=e,ar[A+544>>2]=0,ar[A+375384>>2]=0,ar[A+375388>>2]=0,ar[A+375392>>2]=0,ar[A+375892>>2]=0,ar[(t=A+375896|0)>>2]=6,ar[A+375900>>2]=100,ar[A+375904>>2]=6,ar[A+375912>>2]=6,ar[A+375908>>2]=100,e=6;;){if((0|(i=(0|(n=100*e|0))/7|0))<=(0|(n=(n+100|0)/7|0)))for(f=n-i|0,r=i;a=0|ar[t>>2],e=(o=(0|a)<(0|e))?a:e,tr[A+375916+(r<<1)>>0]=e,tr[A+375916+(r<<1)+1>>0]=o?100:255&((100*(r-i|0)|0)/(0|f)|0),(0|r)<(0|n);)r=r+1|0;if(ar[A+376120+(e<<2)>>2]=n,!(0<(0|e)))break;e=e+-1|0}ar[(a=A+376204|0)>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,ar[a+12>>2]=0,ar[a+16>>2]=0,ar[a+20>>2]=0,tr[A+376208>>0]=1,ar[a>>2]=-1}(i=0|hu(377232)),0|i):(ar[14154]=(0|ar[14154])-1,(i=0)|i)),Ne(ar[r>>2]=A,7,1),Ne(A,8,1),ar[e>>2]=r},function(A,e){A|=0,e|=0;var r,i,f=0,n=0;if(ur=(i=ur)+112|0,r=(f=i)+4|0,ar[f>>2]=ar[e+8>>2],Bi(r,39045,f),ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=(ar[A+8>>2]=0)|Vc(r))>>>0&&pu(),e>>>0<11){if(!(tr[A+11>>0]=e))return tr[(f=(f=A)+e|0)>>0]=0,void(ur=i)}else f=0|hu(n=e+16&-16),ar[A>>2]=f,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=e,A=f;hb(0|A,0|r,0|e),tr[(n=(n=A)+e|0)>>0]=0,ur=i},function(A,e){A|=0;var r,i,f=0,n=0;if(ur=(i=ur)+112|0,r=(f=i)+8|0,n=0|ar[(e|=0)+16>>2],ar[f>>2]=ar[e+12>>2],ar[f+4>>2]=n,Bi(r,39191,f),ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=(ar[A+8>>2]=0)|Vc(r))>>>0&&pu(),e>>>0<11){if(!(tr[A+11>>0]=e))return tr[(n=(n=A)+e|0)>>0]=0,void(ur=i)}else n=0|hu(f=e+16&-16),ar[A>>2]=n,ar[A+8>>2]=-2147483648|f,ar[A+4>>2]=e,A=n;hb(0|A,0|r,0|e),tr[(n=(n=A)+e|0)>>0]=0,ur=i},function(A,e){A|=0,e|=0;var r,i,f=0,n=0;if(ur=(i=ur)+112|0,r=(f=i)+4|0,ar[f>>2]=ar[e+12>>2],Bi(r,39665,f),ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=(ar[A+8>>2]=0)|Vc(r))>>>0&&pu(),e>>>0<11){if(!(tr[A+11>>0]=e))return tr[(f=(f=A)+e|0)>>0]=0,void(ur=i)}else f=0|hu(n=e+16&-16),ar[A>>2]=f,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=e,A=f;hb(0|A,0|r,0|e),tr[(n=(n=A)+e|0)>>0]=0,ur=i},function(A,e){A|=0,e|=0;var r,i,f=0,n=0;if(ur=(i=ur)+112|0,r=(f=i)+4|0,ar[f>>2]=ar[e+12>>2],Bi(r,48089,f),ar[A>>2]=0,ar[A+4>>2]=0,4294967279<(e=(ar[A+8>>2]=0)|Vc(r))>>>0&&pu(),e>>>0<11){if(!(tr[A+11>>0]=e))return tr[(f=(f=A)+e|0)>>0]=0,void(ur=i)}else f=0|hu(n=e+16&-16),ar[A>>2]=f,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=e,A=f;hb(0|A,0|r,0|e),tr[(n=(n=A)+e|0)>>0]=0,ur=i},function(A,e){},function(A,e){e|=0,jb[127&ar[24+(0|ar[(A|=0)>>2])>>2]](A),e=0|un(e,61032),ar[A+36>>2]=e,e=1&(0|jb[127&ar[28+(0|ar[e>>2])>>2]](e)),tr[A+44>>0]=e},function(A,e){e|=0,jb[127&ar[24+(0|ar[(A|=0)>>2])>>2]](A),e=0|un(e,61024),ar[A+36>>2]=e,e=1&(0|jb[127&ar[28+(0|ar[e>>2])>>2]](e)),tr[A+44>>0]=e},function(A,e){A|=0;var r=0,i=0;i=0|un(e|=0,61032),ar[(r=A+36|0)>>2]=i,i=0|jb[127&ar[24+(0|ar[i>>2])>>2]](i),ar[(e=A+44|0)>>2]=i,r=0|ar[r>>2],r=1&(0|jb[127&ar[28+(0|ar[r>>2])>>2]](r)),tr[A+53>>0]=r,8<(0|ar[e>>2])&&ti()},function(A,e){A|=0;var r=0,i=0;i=0|un(e|=0,61024),ar[(r=A+36|0)>>2]=i,i=0|jb[127&ar[24+(0|ar[i>>2])>>2]](i),ar[(e=A+44|0)>>2]=i,r=0|ar[r>>2],r=1&(0|jb[127&ar[28+(0|ar[r>>2])>>2]](r)),tr[A+53>>0]=r,8<(0|ar[e>>2])&&ti()},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){var r;e|=0,r=ur=(e=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,oi(A,tr[A+11>>0]=1,45),Qf(A+1|(tr[r>>0]=0),r),ur=e},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){var r;e|=0,r=ur=(e=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,oi(A,tr[A+11>>0]=1,45),Qf(A+1|(tr[r>>0]=0),r),ur=e},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){var r;e|=0,r=ur=(e=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,gr(A,tr[A+8+3>>0]=1,45),ln(A+4|(ar[r>>2]=0),r),ur=e},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){for(e|=0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0)},function(A,e){var r;e|=0,r=ur=(e=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,gr(A,tr[A+8+3>>0]=1,45),ln(A+4|(ar[r>>2]=0),r),ur=e},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){tr[(A|=0)>>0]=2,tr[A+1>>0]=3,tr[A+2>>0]=0,tr[A+3>>0]=4},function(A,e){},function(A,e){},function(A,e){yu(A|=0,(e|=0)+12|0)},function(A,e){e|=0;var r,i,f,n=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,4294967279<(i=(ar[A+8>>2]=0)|Yf(55745))>>>0&&pu(),i>>>0<11?(tr[A+11>>0]=i,e=A):(e=0|hu(n=16+i&-16),ar[A>>2]=e,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=i),wf(e,55745,i),Qf(e+i|(tr[r>>0]=0),r),ur=f},function(A,e){e|=0;var r,i,f,n=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,4294967279<(i=(ar[A+8>>2]=0)|Yf(55739))>>>0&&pu(),i>>>0<11?(tr[A+11>>0]=i,e=A):(e=0|hu(n=16+i&-16),ar[A>>2]=e,ar[A+8>>2]=-2147483648|n,ar[A+4>>2]=i),wf(e,55739,i),Qf(e+i|(tr[r>>0]=0),r),ur=f},function(A,e){yu(A|=0,(e|=0)+16|0)},function(A,e){e|=0;var r,i,f,n=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,1073741807<(i=(ar[A+8>>2]=0)|Mr(17204))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(e=4+i&-4)>>>0)){n=0|hu(e<<2),ar[A>>2]=n,ar[A+8>>2]=-2147483648|e,ar[A+4>>2]=i;break}lA()}else tr[A+8+3>>0]=i,n=A}while(0);Zf(n,17204,i),ln(n+(i<<2)|(ar[r>>2]=0),r),ur=f},function(A,e){e|=0;var r,i,f,n=0;r=ur=(f=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,1073741807<(i=(ar[A+8>>2]=0)|Mr(17180))>>>0&&pu();do{if(2<=i>>>0){if(!(1073741823<(e=4+i&-4)>>>0)){n=0|hu(e<<2),ar[A>>2]=n,ar[A+8>>2]=-2147483648|e,ar[A+4>>2]=i;break}lA()}else tr[A+8+3>>0]=i,n=A}while(0);Zf(n,17180,i),ln(n+(i<<2)|(ar[r>>2]=0),r),ur=f},function(A,e){e|=0,is[511&(A|=0)](e)},function(A,e){A|=0,e|=0;var r,i=0,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0;if(ur=(r=ur)+16|0,u=(l=r)+12|0,i=0|nA(),ar[u>>2]=i,!e)return ar[A>>2]=i,ar[u>>2]=0,iA((u=0)|u),void(ur=r);if(sl(l,40+(0|ar[e>>2])|0),a=(o=(f=0|ar[(t=l+4|0)>>2])-(i=0|ar[l>>2])|0)>>3,0|(n=i)){if((0|f)!=(0|n)){for(;i=f+-8|0,ar[t>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[t>>2]),(0|i)!=(0|n);)f=i;i=0|ar[l>>2]}vu(i)}if((0|o)<8)return ar[A>>2]=ar[u>>2],ar[u>>2]=0,iA((u=0)|u),void(ur=r);if(!(c=0|yc(o>>>1)))return c=0|hu(12),ar[c>>2]=6,ar[c+4>>2]=1e3,ar[l>>2]=c,l=0|cA(1392,0|l),ar[A>>2]=l,u=0|ar[u>>2],iA(0|u),void(ur=r);if(sl(l,40+(0|ar[e>>2])|0),f=0|ar[(o=l+4|0)>>2],t=i=0|ar[l>>2],e=0<(0|(a=(0|(e=f-i>>3))<(0|a)?e:a)))for(n=0;ar[c+(n<<2)>>2]=ar[20+(0|ar[t+(n<<3)>>2])>>2],(0|(n=n+1|0))<(0|a););if(0|i){if((0|f)!=(0|t)){for(;i=f+-8|0,ar[o>>2]=i,(f=0|ar[f+-4>>2])&&(du(f),i=0|ar[o>>2]),(0|i)!=(0|t);)f=i;i=0|ar[l>>2]}vu(i)}if(!a)return Bc(c),ar[A>>2]=ar[u>>2],ar[u>>2]=0,iA((u=0)|u),void(ur=r);if(ar[l>>2]=0,e)for(i=0;dl(u,l,c+(i<<2)|0),i=1+(0|ar[l>>2])|0,(0|(ar[l>>2]=i))<(0|a););Bc(c),ar[A>>2]=ar[u>>2],ar[u>>2]=0,iA((u=0)|u),ur=r},function(A,e){e|=0,is[511&(A|=0)](e)},function(A,e){A|=0;var r,i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;if(r=(0|(e|=0))/2|0,!((0|e)<=1)){i=e+-1|0,f=0;do{for(t=0|br(f,e),o=i+(0|br(i-f|0,e))|0,n=0;a=A+(o-n<<1)|0,c=0|or[(l=A+(n+t<<1)|0)>>1],or[l>>1]=0|or[a>>1],or[a>>1]=c,(0|(n=n+1|0))!=(0|e););f=f+1|0}while((0|f)<(0|r))}},Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb,Yb],ns=[Qb,HA,LA,function(A,e,r){A|=0,e|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0;ur=(t=ur)+32|0,f=t,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),a=0|ar[e+44>>2],i=0|ar[e+48>>2];A:do{if((0|a)==(0|i))o=A+8|0,l=8;else for(c=(o=A+8|0)+11|0;;){if(u=0|ar[a>>2],ns[127&ar[12+(0|ar[u>>2])>>2]](A,u,r),0|ar[A>>2])break A;if((0|tr[c>>0])<0&&vu(0|ar[o>>2]),(0|(a=a+8|0))==(0|i)){l=8;break}}}while(0);8==(0|l)&&(l=0|ar[(c=56592)+4>>2],ar[(u=A)>>2]=ar[c>>2],ar[u+4>>2]=l,yu(o,56600)),KA(f,e,r,n),ur=(0<=(0|tr[(o=f+8|0)+11>>0])||vu(0|ar[o>>2]),t)},function(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0;ur=(f=ur)+32|0,i=f+12|0,o=f,t=0|ar[(n=c=(e|=0)+8|0)>>2],n=0|ar[n+4>>2];do{if(0==(0|t)&0==(0|n))for(e=r;(ar[(b=e+16|0)>>2]=0)!=(0|(e=(ar[b+4>>2]=0)|ar[e+8>>2])););else if(0|CA(r,e=0|ob(0|t,0|n,0|ar[(a=e+16|0)>>2],0),n=D)){if(0>>0|0==(0|n)&2147483647>>0)return ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,oo(A,2,101,o),0<=(0|tr[o+11>>0])||vu(0|ar[o>>2]),void(ur=f);if(e=0|ar[r>>2],(t=0==(0|(n=0|ar[r+4>>2])))||bu(n),b=0|ar[(u=c)>>2],u=0|ar[u+4>>2],l=0|ar[a>>2],o=0|ar[e>>2],a=0|ar[o+20>>2],o=0|jb[127&ar[o+8>>2]](e),c=D,c=0|tb(0|(l=0|ob(0|b,0|u,0|l,0)),0|D,0|o,0|c),xb[63&a](e,c,D),t)break;du(n);break}}while(0);0|tr[r+24>>0]?(ar[i>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,oo(A,2,100,i),(0|tr[11+i>>0])<0&&vu(0|ar[i>>2])):(u=0|ar[(l=56592)+4>>2],ar[(b=A)>>2]=ar[l>>2],ar[b+4>>2]=u,yu(A+8|0,56600)),ur=f},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),HA(f,e,r),We(n,(s=(d=0|tr[(k=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,s?0|ar[4+f>>2]:255&d),(0|tr[k>>0])<0&&vu(0|ar[f>>2]),0<(0|ar[r>>2]))for(c=0;We(n,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(n,19206,13),k=0|ar[e+56>>2],ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,tr[(u=11+f|0)>>0]=4,tr[4+f>>0]=0,tr[f>>0]=k>>>24,tr[1+f>>0]=k>>>16,tr[2+f>>0]=k>>>8,tr[3+f>>0]=k,l=0|We(0|We(l,f,4),30086,1),0<(0|ar[r>>2]))for(c=0;We(l,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(l,19220,15),l=0|We(0|Lf(l,0|ar[e+60>>2]),30086,1),0<(0|ar[r>>2]))for(c=0;We(l,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(We(l,19236,19),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),(0|(c=0|ar[e+64>>2]))!=(0|(r=0|ar[e+68>>2])))for(e=11+f|0,b=4+f|0,s=1+f|0,d=2+f|0,k=3+f|0,u=1;l=0|ar[c>>2],u||(tr[f>>0]=44,We(n,f,1)),ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,tr[e>>0]=4,tr[b>>0]=0,tr[f>>0]=l>>>24,tr[s>>0]=l>>>16,tr[d>>0]=l>>>8,tr[k>>0]=l,We(n,f,4),(0|tr[e>>0])<0&&vu(0|ar[f>>2]),(0|(c=c+4|0))!=(0|r);)u=0;if(We(n,30086,1),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0;if(ur=(f=ur)+32|0,t=f,o=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),UA(r,0|ar[e+56>>2]),UA(r,0|ar[e+60>>2]),(0|(n=0|ar[e+64>>2]))!=(0|(i=0|ar[e+68>>2])))for(;UA(r,0|ar[n>>2]),(0|(n=n+4|0))!=(0|i););KA(t,e,r,o),(0|tr[(n=t+8|0)+11>>0])<0&&vu(0|ar[n>>2]),t=0|ar[(r=56592)+4>>2],ar[(o=A)>>2]=ar[r>>2],ar[o+4>>2]=t,yu(A+8|0,56600),ur=f},function(A,e,r){A|=0,e|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(n=ur)+32|0,s=n+12|0,c=n,o=0|FA(r|=0),ar[e+56>>2]=o,o=0|FA(r),ar[e+60>>2]=o,t=0|ar[(o=e+8|0)>>2],!(0<(o=0|ar[o+4>>2])>>>0|0==(0|o)&((a=0|ar[e+16>>2])+8|0)>>>0>>0)){for(t=0|hu(48),ar[c>>2]=t,ar[c+8>>2]=-2147483600,a=19167,e=(o=t)+(ar[c+4>>2]=38)|0;tr[o>>0]=0|tr[a>>0],a=a+1|0,(0|(o=o+1|0))<(0|e););return(tr[t+38>>0]=0,oo(A,2,101,c),0<=(0|tr[c+11>>0]))?void(ur=n):(vu(0|ar[c>>2]),void(ur=n))}l=0|sb(0|(l=0|ob(0|(l=0|tb(0|t,0|o,-8,-1)),0|D,0|a,0)),0|D,2),i=D,f=r+24|0;A:do{if(!(0==(0|l)&0==(0|i))){u=e+68|0,b=e+72|0,t=e+64|0,c=e=0;do{if(0|tr[f>>0])break A;o=0|FA(r),ar[s>>2]=o,(a=0|ar[u>>2])>>>0<(0|ar[b>>2])>>>0?(ar[a>>2]=o,ar[u>>2]=a+4):Ce(t,s),e=0|tb(0|e,0|c,1,0),c=D}while(c>>>0>>0|(0|c)==(0|i)&e>>>0>>0)}}while(0);0|tr[f>>0]?(ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,oo(A,2,100,s),(0|tr[s+11>>0])<0&&vu(0|ar[s>>2])):(r=0|ar[(b=56592)+4>>2],ar[(s=A)>>2]=ar[b>>2],ar[s+4>>2]=r,yu(A+8|0,56600)),ur=n},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0;var i,f=0;ur=(i=ur)+32|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),$A(A,e,r,-1),ur=i},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0,b=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(l=(u=0|tr[(b=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,l?0|ar[4+f>>2]:255&u),(0|tr[b>>0])<0&&vu(0|ar[f>>2]),0<(0|ar[r>>2]))for(l=0;We(n,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(n,23170,13),u=0|We(0|Lf(u,0|ar[e+56>>2]),30086,1),0<(0|ar[r>>2]))for(l=0;We(u,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(b=0|We(u,23184,14),l=0|ar[e+60>>2],ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,tr[(u=11+f|0)>>0]=4,tr[4+f>>0]=0,tr[f>>0]=l>>>24,tr[1+f>>0]=l>>>16,tr[2+f>>0]=l>>>8,tr[3+f>>0]=l,b=0|We(0|We(b,f,4),30086,1),0<(0|ar[r>>2]))for(l=0;We(b,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(c=0|We(b,23199,6),We(0|We(c,(b=(r=0|tr[(l=e+76|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,b?0|ar[e+80>>2]:255&r),30086,1),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),UA(r,0|ar[e+56>>2]),UA(r,0|ar[e+60>>2]),UA(r,0|ar[e+64>>2]),UA(r,0|ar[e+68>>2]),UA(r,0|ar[e+72>>2]),OA(r,e+76|0),KA(f,e,r,n),(0|tr[(e=f+8|0)+11>>0])<0&&vu(0|ar[e>>2]),f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),ur=i},function(A,e,r){A|=0;var i,f,n=0,t=0;if(ur=(f=ur)+32|0,t=f+20|0,qA(n=f,e|=0,r|=0),(0|tr[(n=n+8|0)+11>>0])<0&&vu(0|ar[n>>2]),n=0|FA(r),ar[e+56>>2]=n,n=0|FA(r),ar[e+60>>2]=n,n=0|FA(r),ar[e+64>>2]=n,n=0|FA(r),ar[e+68>>2]=n,n=0|FA(r),ar[e+72>>2]=n,RA(t,r),(0|tr[(i=(n=e+76|0)+11|0)>>0])<0?(tr[ar[n>>2]>>0]=0,ar[e+80>>2]=0):(tr[n>>0]=0,tr[i>>0]=0),Cu(n,0),ar[n>>2]=ar[t>>2],ar[n+4>>2]=ar[t+4>>2],ar[n+8>>2]=ar[t+8>>2],!(0|tr[r+24>>0]))return r=0|ar[(e=56592)+4>>2],ar[(t=A)>>2]=ar[e>>2],ar[t+4>>2]=r,yu(A+8|0,56600),void(ur=f);ar[t>>2]=0,ar[t+4>>2]=0,ar[t+8>>2]=0,oo(A,2,100,t),ur=(0<=(0|tr[t+11>>0])||vu(0|ar[t>>2]),f)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(u=(c=0|tr[(a=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[l+4>>2]:255&c),(0|tr[a>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(f,22462,9),We(0|Lf(u,0|ar[e+56>>2]),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0;ur=(f=ur)+32|0,n=f,t=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),i=0|ar[e+56>>2];do{if(0|tr[e+37>>0])UA(r,i);else{if(i>>>0<65536){MA(r,65535&i);break}sr(23065,19104,891,19563)}}while(0);KA(n,e,r,t),(0|tr[(e=n+8|0)+11>>0])<0&&vu(0|ar[e>>2]),n=0|ar[(r=56592)+4>>2],ar[(t=A)>>2]=ar[r>>2],ar[t+4>>2]=n,yu(A+8|0,56600),ur=f},function(A,e,r){A|=0;var i,f=0,n=0;if(ur=(i=ur)+32|0,n=i+20|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),f=0|tr[e+37>>0]?0|FA(r):65535&(0|VA(r)),ar[e+56>>2]=f,!(0|tr[r+24>>0]))return r=0|ar[(e=56592)+4>>2],ar[(n=A)>>2]=ar[e>>2],ar[n+4>>2]=r,yu(A+8|0,56600),void(ur=i);ar[n>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,oo(A,2,100,n),ur=(0<=(0|tr[n+11>>0])||vu(0|ar[n>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(c=0|tr[(l=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&c),(0|tr[l>>0])<0&&vu(0|ar[a>>2]),(0|(a=0|ar[e+56>>2]))!=(0|(l=0|ar[e+60>>2]))){c=a;do{if(0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(e=0|We(f,22885,9),e=0|We(0|Lf(e,0|ar[c>>2]),30086,1),0<(0|ar[r>>2]))for(a=0;We(e,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(e=0|We(e,22895,23),e=0|We(0|Pf(e,0|cr[c+4>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(e,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(u=(e=0|We(e,22919,24))+(0|ar[(0|ar[e>>2])-12>>2])+4|0,ar[u>>2]=-75&ar[u>>2]|8,u=(e=0|xf(e,0|or[c+6>>1]))+(0|ar[(0|ar[e>>2])-12>>2])+4|0,ar[u>>2]=-75&ar[u>>2]|2,e=0|We(e,30086,1),0<(0|ar[r>>2]))for(a=0;We(e,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(e=0|We(e,22944,15),We(0|Kf(e,0|ar[(u=c+8|0)>>2],0|ar[u+4>>2]),30086,1),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(f,22960,11),(0|(a=0|ar[c+16>>2]))!=(0|(e=0|ar[c+20>>2])))for(;b=0|We(0|Kf(f,0|ar[(b=a+8|0)>>2],0|ar[b+4>>2]),19588,1),Kf(b,0|ar[(u=a+16|0)>>2],0|ar[u+4>>2]),0==(0|ar[(u=a)>>2])&0==(0|ar[u+4>>2])||Kf(u=0|We(f,22972,7),0|ar[(b=a)>>2],0|ar[b+4>>2]),We(f,20449,1),(0|(a=a+40|0))!=(0|e););We(f,30086,1),c=c+32|0}while((0|c)!=(0|l))}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(ur=(f=ur)+32|0,p=f,(0|(o=0|ar[(k=(e|=0)+56|0)>>2]))!=(0|(u=0|ar[(h=e+60|0)>>2]))){n=0;do{if(1==(0|tr[o+4>>0])&&(0|(c=0|ar[o+16>>2]))!=(0|(l=0|ar[o+20>>2])))for(a=c;n=(0|ar[a+28>>2])+n-(0|ar[a+24>>2])|0,(0|(a=a+40|0))!=(0|l););o=o+32|0}while((0|o)!=(0|u));if(0|n&&(UA(r,n+8|0),UA(r,1768186228),(0|(t=0|ar[k>>2]))!=(0|(b=0|ar[h>>2]))))do{if(1==(0|tr[t+4>>0])&&(0|(s=0|ar[t+16>>2]))!=(0|(d=0|ar[t+20>>2])))for(n=s;zA(r,n+24|0),(0|(n=n+40|0))!=(0|d););t=t+32|0}while((0|t)!=(0|b))}if(Z=0|ar[(a=r+12|0)>>2],jA(r,0|tr[e+36>>0]?12:8),ar[e+68>>2]=ar[a>>2],n=(t=(255&(a=0|tr[e+37>>0]))<2)?4:6,(0|(o=0|ar[k>>2]))!=(0|(i=0|ar[h>>2]))){w=e+73|0,v=e+74|0,m=e+76|0,g=(d=t?2:4)+(k=a<<24>>24?2:0)+(h=0|cr[e+75>>0])+4|0,t=a;do{l=n+4+h+d+k|0,c=a=0|ar[o+16>>2],s=0|ar[o+20>>2];do{if((0|a)==(0|s))n=l;else{if(u=0|cr[w>>0],b=0|cr[v>>0],!(t<<24>>24)){n=g+n+(0|br(((s+-40-c|0)>>>0)/40|0,u+b|0))+u+b|0,t=0;break}for(c=0|cr[m>>0],n=l;n=u+(c+n)+b|0,(0|(a=a+40|0))!=(0|s););}}while(0);o=o+32|0}while((0|o)!=(0|i))}if(jA(r,n),KA(p,e,r,Z),0<=(0|tr[(n=p+8|0)+11>>0]))return Z=0|ar[(Z=r=56592)>>2],r=0|ar[(r=r+4|0)>>2],ar[(e=p=A)>>2]=Z,ar[(p=p+4|0)>>2]=r,yu(A=A+8|0,56600),void(ur=f);vu(0|ar[n>>2]),Z=0|ar[(Z=r=56592)>>2],r=0|ar[(r=r+4|0)>>2],ar[(e=p=A)>>2]=Z,ar[(p=p+4|0)>>2]=r,yu(A=A+8|0,56600),ur=f},function(A,e,r){A|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0;if(ur=(t=ur)+384|0,q=t+144|0,l=($=t)+340|0,f=t+184|0,n=t+328|0,qA(o=t+352|0,e|=0,r|=0),(0|tr[(o=o+8|0)+11>>0])<0&&vu(0|ar[o>>2]),a=0|VA(r),o=1<(255&(K=0|tr[(i=e+37|0)>>0]))?15&a:0,2e4<(0|(K=(255&K)<2?65535&(0|VA(r)):0|FA(r))))return e=$+64|0,ar[(c=$+8|0)>>2]=4524,a=$+12|0,ar[$>>2]=188,ar[e>>2]=208,Jf($+64|(ar[$+4>>2]=0),a),ar[$+136>>2]=0,ar[$+140>>2]=-1,ar[$>>2]=4504,ar[e>>2]=4544,ar[c>>2]=4524,Sf(a),ar[a>>2]=4340,ar[(c=$+44|0)>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,ar[c+12>>2]=0,ar[$+60>>2]=24,ar[q>>2]=0,ar[q+4>>2]=0,ar[q+8>>2]=0,Xe(a,q),(0|tr[q+11>>0])<0&&vu(0|ar[q>>2]),We(0|Pf(0|We(0|Pf(0|We(o=$+8|0,22754,18),K),22773,44),2e4),22818,7),Ie(l,a),oo(A,6,1e3,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),ar[$>>2]=4504,ar[e>>2]=4544,ar[o>>2]=4524,ar[a>>2]=4340,(0|tr[c+11>>0])<0&&vu(0|ar[c>>2]),kf(a),bf(e),void(ur=t);A:do{if(0<(0|K)){W=$+4|0,I=$+6|0,C=$+8|0,x=(65535&a)>>>4&255,F=12+f|0,R=4+f|0,N=G=64+f|0,_=136+f|0,Y=140+f|0,D=60+f|0,J=q+11|0,M=V=8+f|0,T=11+n|0,U=(Q=44+f|0)+11|0,O=$+20|0,z=r+24|0,j=e+60|0,H=e+64|0,B=e+56|0,E=S=$+16|0,X=0!=(0|o),y=255&o,g=q+8|0,p=(65535&a)>>>12&255,Z=q+16|0,m=(65535&a)>>>8&255,k=$+24|0,w=q+28|0,v=h=q+24|0,d=0;e:for(;;){for(ar[$>>2]=0,e=(o=I)+22|(tr[W>>0]=0);(0|(o=o+2|(or[o>>1]=0)))<(0|e););switch(o=(0|cr[i>>0])<2?65535&(0|VA(r)):0|FA(r),ar[$>>2]=o,0|tr[i>>0]&&(s=15&(0|VA(r)),tr[W>>0]=s),s=0|VA(r),or[I>>1]=s,ar[(s=C)>>2]=0,ar[s+4>>2]=0,15&x){case 4:o=0|FA(r),e=0,L=26;break;case 8:o=0|FA(r),ar[(e=C)>>2]=0,ar[e+4>>2]=o,e=C,o=0|FA(r)|ar[e>>2],e=0|ar[e+4>>2],L=26}26==(0|L)&&(L=0,ar[(s=C)>>2]=o,ar[s+4>>2]=e),s=65535&(o=0|VA(r));do{if((65535&o)<=32){r:do{if(o<<16>>16)for(b=0;;){for(e=(o=q)+36|0;(0|(o=o+4|(ar[o>>2]=0)))<(0|e););i:do{if(X&1<(0|cr[i>>0]))switch(15&y){case 4:l=0|FA(r),ar[(u=q)>>2]=l,ar[u+4>>2]=0;break i;case 8:a=0|FA(r),ar[(c=q)>>2]=0,ar[c+4>>2]=a,c=0|FA(r),l=0|ar[(a=q)+4>>2],ar[(u=q)>>2]=ar[a>>2]|c,ar[u+4>>2]=l;break i;default:break i}}while(0);switch(ar[(u=g)>>2]=0,ar[u+4>>2]=0,15&p){case 4:o=0|FA(r),e=0,L=44;break;case 8:o=0|FA(r),ar[(e=g)>>2]=0,ar[e+4>>2]=o,e=g,o=0|FA(r)|ar[e>>2],e=0|ar[e+4>>2],L=44}switch(44==(0|L)&&(L=0,ar[(u=g)>>2]=o,ar[u+4>>2]=e),ar[(u=Z)>>2]=0,ar[u+4>>2]=0,15&m){case 4:o=0|FA(r),e=0,L=48;break;case 8:o=0|FA(r),ar[(e=Z)>>2]=0,ar[e+4>>2]=o,e=Z,o=0|FA(r)|ar[e>>2],e=0|ar[e+4>>2],L=48}if(48==(0|L)&&(L=0,ar[(u=Z)>>2]=o,ar[u+4>>2]=e),(0|(e=0|ar[O>>2]))==(0|ar[k>>2]))Qt(E,q),o=0|ar[h>>2];else{if(ar[e>>2]=ar[q>>2],ar[e+4>>2]=ar[q+4>>2],ar[e+8>>2]=ar[q+8>>2],ar[e+12>>2]=ar[q+12>>2],ar[e+16>>2]=ar[q+16>>2],ar[e+20>>2]=ar[q+20>>2],ar[(a=e+24|0)>>2]=0,ar[(u=e+28|0)>>2]=0,o=(ar[e+32>>2]=0)|ar[v>>2],c=(0|ar[w>>2])-o|0){if((0|c)<0){L=52;break e}l=0|hu(c),ar[u>>2]=l,ar[a>>2]=l,ar[e+32>>2]=l+c,o=0|ar[v>>2],0<(0|(e=(0|ar[w>>2])-o|0))&&(hb(0|l,0|o,0|e),ar[u>>2]=l+e)}ar[O>>2]=40+(0|ar[O>>2])}if(0|o&&((0|ar[w>>2])!=(0|o)&&(ar[w>>2]=o),vu(o)),(0|s)<=(0|(b=b+1|0)))break r}}while(0);if(!(0|tr[z>>0])){if((0|(o=0|ar[j>>2]))==(0|ar[H>>2])){Jt(B,$),l=0;break}ar[o>>2]=ar[$>>2],ar[o+4>>2]=ar[$+4>>2],ar[o+8>>2]=ar[$+8>>2],ar[o+12>>2]=ar[$+12>>2],Dt(o+16|0,E),ar[j>>2]=32+(0|ar[j>>2]),l=0;break}l=0}else ar[V>>2]=4524,ar[f>>2]=188,ar[G>>2]=208,ar[R>>2]=0,Jf(N,F),ar[_>>2]=0,ar[Y>>2]=-1,ar[f>>2]=4504,ar[G>>2]=4544,ar[V>>2]=4524,Sf(F),ar[F>>2]=4340,ar[Q>>2]=0,ar[Q+4>>2]=0,ar[Q+8>>2]=0,ar[Q+12>>2]=0,ar[D>>2]=24,ar[q>>2]=0,ar[q+4>>2]=0,ar[q+8>>2]=0,Xe(F,q),(0|tr[J>>0])<0&&vu(0|ar[q>>2]),We(0|Pf(0|We(0|Pf(0|We(M,22826,31),s),22858,26),32),18904,2),Ie(n,F),oo(A,6,1e3,n),(0|tr[T>>0])<0&&vu(0|ar[n>>2]),ar[f>>2]=4504,ar[G>>2]=4544,ar[M>>2]=4524,ar[F>>2]=4340,(0|tr[U>>0])<0&&vu(0|ar[Q>>2]),kf(F),bf(G),l=1}while(0);if(0|(o=0|ar[S>>2])){if((0|(e=0|ar[O>>2]))!=(0|o)){for(;a=e+-40|0,ar[O>>2]=a,(0|(e=(c=0|ar[e+-16>>2])?((0|ar[(e=e+-12|0)>>2])!=(0|c)&&(ar[e>>2]=c),vu(c),0|ar[O>>2]):a))!=(0|o););o=0|ar[S>>2]}vu(o)}if(d=d+1|0,0|l){L=80;break}if((0|K)<=(0|d)){P=z;break A}}if(52==(0|L))zl();else if(80==(0|L))return void(ur=t)}else P=r+24|0}while(0);0|tr[P>>0]?(ar[q>>2]=0,ar[q+4>>2]=0,ar[q+8>>2]=0,oo(A,2,100,q),(0|tr[q+11>>0])<0&&vu(0|ar[q>>2])):(q=0|ar[(K=56592)+4>>2],ar[($=A)>>2]=ar[K>>2],ar[$+4>>2]=q,yu(A+8|0,56600)),ur=t},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0;ur=(n=ur)+32|0,i=n,f=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),a=e+48|0,SA(r,0|tr[e+37>>0]?4:2,(0|ar[a>>2])-(0|ar[e+44>>2])>>3,0),o=0|ar[e+44>>2],a=0|ar[a>>2];A:do{if((0|o)==(0|a))t=A+8|0,l=8;else for(c=(t=A+8|0)+11|0;;){if(u=0|ar[o>>2],ns[127&ar[12+(0|ar[u>>2])>>2]](A,u,r),0|ar[A>>2])break A;if((0|tr[c>>0])<0&&vu(0|ar[t>>2]),(0|(o=o+8|0))==(0|a)){l=8;break}}}while(0);8==(0|l)&&(l=0|ar[(c=56592)+4>>2],ar[(u=A)>>2]=ar[c>>2],ar[u+4>>2]=l,yu(t,56600)),KA(i,e,r,f),ur=(0<=(0|tr[(t=i+8|0)+11>>0])||vu(0|ar[t>>2]),n)},function(A,e,r){A|=0;var i,f=0;return ur=(i=ur)+32|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),(f=0|tr[e+37>>0]?0|FA(r):65535&(0|VA(r)))?$A(A,e,r,-1):(e=0|ar[(f=56592)+4>>2],ar[(r=A)>>2]=ar[f>>2],ar[r+4>>2]=e,yu(A+8|0,56600)),void(ur=i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(l=0|tr[(c=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,22462,9),c=0|We(0|Lf(c,0|ar[e+56>>2]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,22472,23),c=0|We(0|xf(c,0|or[e+60>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22496,11),c=0|We(0|We(a,(u=(c=0|tr[(l=e+64|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+68>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22508,11),c=0|We(0|We(a,(u=(c=0|tr[(l=e+76|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+80>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22520,14),c=0|We(0|We(a,(u=(c=0|tr[(l=e+88|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+92>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22535,18),c=0|We(0|We(a,(u=(c=0|tr[(l=e+100|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+104>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,22554,15),c=0|We(0|We(a,(u=(c=0|tr[(l=e+112|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+116>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(l=(u=0|We(c,22570,13))+(0|ar[(0|ar[u>>2])-12>>2])+4|0,ar[l>>2]=1|ar[l>>2],We(0|Hf(u,0!=(0|tr[e+124>>0])),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0;ur=(i=ur)+32|0,c=i,l=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),(255&(f=0|tr[(n=e+37|0)>>0]))<2?(MA(r,65535&ar[e+56>>2]),MA(r,0|or[e+60>>1]),OA(r,e+76|0),OA(r,e+88|0),OA(r,e+100|0),1<(255&(f=0|tr[n>>0]))&&(t=3)):t=3;A:do{if(3==(0|t)){switch(f<<24>>24){case 2:MA(r,65535&ar[e+56>>2]);break;case 3:UA(r,0|ar[e+56>>2])}MA(r,0|or[e+60>>1]),(n=(f=0|tr[(o=(a=e+64|0)+11|0)>>0])<<24>>24<0)?f=0|ar[e+68>>2]:f&=255,f?(f=n?0|ar[a>>2]:a,UA(r,tr[f+1>>0]<<16|cr[f>>0]<<24|tr[f+2>>0]<<8|tr[f+3>>0])):UA(r,0),OA(r,e+76|0),n=0|tr[o>>0],f=0|ar[(t=e+68|0)>>2];do{if(4==(0|(n<<24>>24<0?f:255&n))){if(0|Yu(a,0,-1,22452,4)){n=0|tr[o>>0],f=0|ar[t>>2];break}OA(r,e+88|0),OA(r,e+100|0);break A}}while(0);4==(0|(n<<24>>24<0?f:255&n))&&0==(0|Yu(a,0,-1,22457,4))&&OA(r,e+112|0)}}while(0);if(KA(c,e,r,l),0<=(0|tr[(f=c+8|0)+11>>0]))return e=0|ar[(e=c=56592)>>2],c=0|ar[(c=c+4|0)>>2],ar[(r=l=A)>>2]=e,ar[(l=l+4|0)>>2]=c,yu(A=A+8|0,56600),void(ur=i);vu(0|ar[f>>2]),e=0|ar[(e=c=56592)>>2],c=0|ar[(c=c+4|0)>>2],ar[(r=l=A)>>2]=e,ar[(l=l+4|0)>>2]=c,yu(A=A+8|0,56600),ur=i},function(A,e,r){A|=0;var i,f=0,n=0,t=0,o=0,a=0;ur=(i=ur)+32|0,a=i+20|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),(255&(f=0|tr[(t=e+37|0)>>0]))<2?(f=65535&(0|VA(r)),ar[e+56>>2]=f,f=0|VA(r),or[e+60>>1]=f,RA(a,r),(0|tr[(n=(f=e+76|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+80>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],RA(a,r),(0|tr[(n=(f=e+88|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+92>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],RA(a,r),(0|tr[(n=(f=e+100|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+104>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],1<(255&(f=0|tr[t>>0]))&&(o=14)):o=14;A:do{if(14==(0|o)){if(tr[e+124>>0]=1&ar[e+40>>2],f=f<<24>>24==2?65535&(0|VA(r)):0|FA(r),ar[e+56>>2]=f,o=0|VA(r),or[e+60>>1]=o,0|(o=0|FA(r))&&(tr[a>>0]=0,tr[a+1>>0]=0,tr[a+2>>0]=0,tr[a+3>>0]=0,tr[a+4>>0]=0,f=(tr[a+5>>0]=0)|kb(0|o),(0|tr[(t=(n=e+64|0)+11|0)>>0])<0?(tr[ar[n>>2]>>0]=0,ar[e+68>>2]=0):(tr[n>>0]=0,tr[t>>0]=0),Cu(n,0),ar[e+64>>2]=f,tr[e+68>>0]=0,tr[(t=e+69|0)>>0]=0|tr[a>>0],tr[t+1>>0]=0|tr[a+1>>0],tr[t+2>>0]=0|tr[a+2>>0],tr[t+3>>0]=0|tr[a+3>>0],tr[t+4>>0]=0|tr[a+4>>0],tr[t+5>>0]=0|tr[a+5>>0],tr[e+75>>0]=4),RA(a,r),(0|tr[(n=(f=e+76|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+80>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],1970432288<=(0|o)){switch(0|o){case 1970432288:break;default:break A}RA(a,r),(0|tr[(n=(f=e+112|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+116>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2];break}switch(0|o){case 1835625829:break;default:break A}RA(a,r),(0|tr[(n=(f=e+88|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+92>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2],RA(a,r),(0|tr[(n=(f=e+100|0)+11|0)>>0])<0?(tr[ar[f>>2]>>0]=0,ar[e+104>>2]=0):(tr[f>>0]=0,tr[n>>0]=0),Cu(f,0),ar[f>>2]=ar[a>>2],ar[f+4>>2]=ar[a+4>>2],ar[f+8>>2]=ar[a+8>>2]}}while(0);if(!(0|tr[r+24>>0]))return r=0|ar[(e=56592)+4>>2],ar[(a=A)>>2]=ar[e>>2],ar[a+4>>2]=r,yu(A+8|0,56600),void(ur=i);ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,oo(A,2,100,a),ur=(0<=(0|tr[a+11>>0])||vu(0|ar[a>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),bf(t),ur=a},function(A,e,r){$A(A|=0,e|=0,r|=0,-1)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),bf(t),ur=a},function(A,e,r){$A(A|=0,e|=0,r|=0,-1)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(c=(l=0|tr[(u=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,c?0|ar[a+4>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[a>>2]),(0|(a=0|ar[e+56>>2]))!=(0|(u=0|ar[e+60>>2]))){l=a,a=0|ar[r>>2];do{if(0<(0|a))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(f,22139,26),We(0|Lf(a,0|ar[l>>2]),30086,1),a=1+(0|ar[r>>2])|0,ar[r>>2]=a,(0|(e=0|ar[l+4>>2]))!=(0|(c=0|ar[l+8>>2])))do{if(0<(0|a))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););a=0|We(f,22166,16),b=(a=0|We(0|xf(a,0|or[e+2>>1]),22183,13))+(0|ar[(0|ar[a>>2])-12>>2])+4|0,ar[b>>2]=1|ar[b>>2],We(0|Hf(a,0!=(0|tr[e>>0])),18904,2),e=e+4|0,a=0|ar[r>>2]}while((0|e)!=(0|c));a=(0|a)<1?0:a+-1|0,ar[r>>2]=a,l=l+16|0}while((0|l)!=(0|u))}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(i=ur)+32|0,b=i,s=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),f=e+56|0,UA(r,(0|ar[(c=e+60|0)>>2])-(0|ar[f>>2])>>4),(0|(f=0|ar[f>>2]))!=(0|(c=0|ar[c>>2]))){l=e+37|0,u=e+40|0;do{if(n=0|ar[f>>2],0|tr[l>>0]?UA(r,n):MA(r,65535&n),n=f+4|0,JA(r,((0|ar[(a=f+8|0)>>2])-(0|ar[n>>2])|0)>>>2&255),(0|(n=0|ar[n>>2]))!=(0|(a=0|ar[a>>2])))for(;t=0!=(0|tr[n>>0]),o=0|lr[n+2>>1],1&ar[u>>2]?MA(r,65535&(32767&o|(t?32768:0))):JA(r,255&(127&o|(t?128:0))),(0|(n=n+4|0))!=(0|a););f=f+16|0}while((0|f)!=(0|c))}if(KA(b,e,r,s),0<=(0|tr[(f=b+8|0)+11>>0]))return r=0|ar[(r=b=56592)>>2],b=0|ar[(b=b+4|0)>>2],ar[(u=s=A)>>2]=r,ar[(s=s+4|0)>>2]=b,yu(A=A+8|0,56600),void(ur=i);vu(0|ar[f>>2]),r=0|ar[(r=b=56592)>>2],b=0|ar[(b=b+4|0)>>2],ar[(u=s=A)>>2]=r,ar[(s=s+4|0)>>2]=b,yu(A=A+8|0,56600),ur=i},function(A,e,r){A|=0;var i,f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0;ur=(n=ur)+48|0,E=n+24|0,qA(t=(X=n)+4|0,e|=0,r|=0),(0|tr[(t=t+8|0)+11>>0])<0&&vu(0|ar[t>>2]),i=0|FA(r),f=r+24|0;A:do{if(0<(0|i)){for(h=r+16|0,v=E+8|0,g=e+37|0,Z=e+60|0,p=e+64|0,y=e+56|0,B=w=E+4|0,s=e+40|0,d=X+2|0,k=m=E+12|0,b=0;;){if(0|tr[f>>0])break A;if(0==(0|ar[(u=h)>>2])&0==(0|ar[u+4>>2]))break A;if(ar[w>>2]=0,ar[v>>2]=0,t=(ar[m>>2]=0)|tr[g>>0]?0|FA(r):65535&(0|VA(r)),ar[E>>2]=t,c=255&(u=0|IA(r)),u<<24>>24)for(a=0;1&ar[s>>2]?(t=(65535&(o=0|VA(r)))>>>15&255,e=32767):(t=(255&(o=0|IA(r)))>>>7,e=127,o&=255),tr[X>>0]=t,or[d>>1]=65535&o&e,(0|(t=0|ar[v>>2]))==(0|ar[k>>2])?Nt(B,X):(u=0|ar[X>>2],or[t>>1]=u,or[t+2>>1]=u>>>16,ar[v>>2]=4+(0|ar[v>>2])),(0|(a=a+1|0))<(0|c););if((0|(o=0|ar[Z>>2]))==(0|ar[p>>2]))Rt(y,E),t=0|ar[w>>2];else{if(ar[o>>2]=ar[E>>2],ar[(a=o+4|0)>>2]=0,ar[(u=o+8|0)>>2]=0,t=(ar[o+12>>2]=0)|ar[B>>2],c=(e=(0|ar[v>>2])-t|0)>>2){if(1073741823>>0)break;l=0|hu(e),ar[u>>2]=l,ar[a>>2]=l,ar[o+12>>2]=l+(c<<2),t=0|ar[B>>2],0<(0|(e=(0|ar[v>>2])-t|0))&&(hb(0|l,0|t,0|e),ar[u>>2]=l+(e>>>2<<2))}ar[Z>>2]=16+(0|ar[Z>>2])}if(0|t&&((0|(e=0|ar[v>>2]))!=(0|t)&&(ar[v>>2]=e+(~((e+-4-t|0)>>>2)<<2)),vu(t)),(0|i)<=(0|(b=b+1|0)))break A}zl()}}while(0);if(!(0|tr[f>>0]))return E=0|ar[(r=56592)+4>>2],ar[(X=A)>>2]=ar[r>>2],ar[X+4>>2]=E,yu(A+8|0,56600),void(ur=n);ar[E>>2]=0,ar[E+4>>2]=0,ar[E+8>>2]=0,oo(A,2,100,E),ur=(0<=(0|tr[E+11>>0])||vu(0|ar[E>>2]),n)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(o=ur)+160|0,c=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,Xe(t,c),(0|tr[c+11>>0])<0&&vu(0|ar[c>>2]),LA(c,e,r),We(f,(u=(a=0|tr[(l=c+11|0)>>0])<<24>>24<0)?0|ar[c>>2]:c,u?0|ar[c+4>>2]:255&a),(0|tr[l>>0])<0&&vu(0|ar[c>>2]),0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(f,22025,13),l=0|We(0|Lf(l,0|ar[e+56>>2]),30086,1),0<(0|ar[r>>2]))for(c=0;We(l,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(u=0|We(l,22039,14),We(0|Lf(u,0|ar[e+60>>2]),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),UA(r,0|ar[e+56>>2]),UA(r,0|ar[e+60>>2]),KA(f,e,r,n),(0|tr[(e=f+8|0)+11>>0])<0&&vu(0|ar[e>>2]),f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),ur=i},function(A,e,r){A|=0;var i,f=0,n=0;if(ur=(i=ur)+32|0,f=i+20|0,qA(n=i,e|=0,r|=0),(0|tr[(n=n+8|0)+11>>0])<0&&vu(0|ar[n>>2]),n=0|FA(r),ar[e+56>>2]=n,n=0|FA(r),ar[e+60>>2]=n,!(0|tr[r+24>>0]))return f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(l=0|tr[(c=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(f,21914,10),c=0|We(0|We(a,(u=(c=0|tr[(l=e+56|0)+11>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[e+60>>2]:255&c),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(c,21925,14),(0|(a=0|ar[e+68>>2]))!=(0|(c=0|ar[e+72>>2])))for(;u=0|tr[a>>0],l=f+(0|ar[(0|ar[f>>2])-12>>2])+4|0,ar[l>>2]=-75&ar[l>>2]|8,ar[f+(0|ar[(0|ar[f>>2])-12>>2])+12>>2]=2,ar[f+(0|ar[(0|ar[f>>2])-12>>2])+76>>2]=48,We(0|Pf(f,255&u),20449,1),(0|(a=a+1|0))!=(0|c););if(We(f,30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0;if(ur=(f=ur)+32|0,t=f,o=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),OA(r,e+56|0),(0|(n=0|ar[e+68>>2]))!=(0|(i=0|ar[e+72>>2])))for(;JA(r,0|tr[n>>0]),(0|(n=n+1|0))!=(0|i););KA(t,e,r,o),(0|tr[(n=t+8|0)+11>>0])<0&&vu(0|ar[n>>2]),t=0|ar[(r=56592)+4>>2],ar[(o=A)>>2]=ar[r>>2],ar[o+4>>2]=t,yu(A+8|0,56600),ur=f},function(A,e,r){A|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;ur=(f=ur)+32|0,k=f+20|0,qA(n=f,e|=0,r|=0),(0|tr[(n=n+8|0)+11>>0])<0&&vu(0|ar[n>>2]),RA(k,r),(0|tr[(t=(n=e+56|0)+11|0)>>0])<0?(tr[ar[n>>2]>>0]=0,ar[e+60>>2]=0):(tr[n>>0]=0,tr[t>>0]=0),Cu(n,0),ar[n>>2]=ar[k>>2],ar[n+4>>2]=ar[k+4>>2],ar[n+8>>2]=ar[k+8>>2],d=i=r+16|0;A:do{if(!(0==(0|ar[d>>2])&0==(0|ar[d+4>>2]))){for(s=e+68|0,d=e+72|0,u=e+76|0;;){if(a=0|IA(r),n=0|ar[d>>2],(t=b=0|ar[u>>2])>>>0<=n>>>0){if(l=b=0|ar[s>>2],(0|(n=(c=n-b|0)+1|0))<0)break;t=(o=t-b|0)<<1,o=(t=o>>>0<1073741823?t>>>0>>0?n:t:2147483647)?0|hu(t):0,tr[(e=o+c|0)>>0]=a,n=e+(0-c)|0,0<(0|c)&&hb(0|n,0|l,0|c),ar[s>>2]=n,ar[d>>2]=e+1,ar[u>>2]=o+t,0|b&&vu(l)}else tr[n>>0]=a,ar[d>>2]=1+(0|ar[d>>2]);if(0==(0|ar[(b=i)>>2])&0==(0|ar[b+4>>2]))break A}zl()}}while(0);if(!(0|tr[r+24>>0]))return r=0|ar[(d=56592)+4>>2],ar[(k=A)>>2]=ar[d>>2],ar[k+4>>2]=r,yu(A+8|0,56600),void(ur=f);ar[k>>2]=0,ar[k+4>>2]=0,ar[k+8>>2]=0,oo(A,2,100,k),ur=(0<=(0|tr[k+11>>0])||vu(0|ar[k>>2]),f)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(u=(c=0|tr[(a=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[l+4>>2]:255&c),(0|tr[a>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(f,21802,10),We(0|Pf(u,0|ar[e+56>>2]),21813,15),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;if(ur=(i=ur)+16|0,f=i,n=90*(3&(0|IA(r|=0)))|0,ar[e+56>>2]=n,!(0|tr[r+24>>0]))return f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l,u=0;if(ur=(o=ur)+160|0,u=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,Xe(t,u),(0|tr[u+11>>0])<0&&vu(0|ar[u>>2]),LA(u,e,r),We(f,(l=(c=0|tr[(a=u+11|0)>>0])<<24>>24<0)?0|ar[u>>2]:u,l?0|ar[u+4>>2]:255&c),(0|tr[a>>0])<0&&vu(0|ar[u>>2]),0<(0|ar[r>>2]))for(u=0;We(f,18862,2),(0|(u=u+1|0))<(0|ar[r>>2]););switch(We(f,21681,13),0|tr[e+56>>0]){case 0:We(f,21695,9);break;case 1:We(f,21705,11)}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;if(ur=(i=ur)+16|0,f=i,n=1&(0|IA(r|=0)),tr[e+56>>0]=n,!(0|tr[r+24>>0]))return f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),void(ur=i);ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,oo(A,2,100,f),ur=(0<=(0|tr[f+11>>0])||vu(0|ar[f>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(u=(c=0|tr[(a=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,u?0|ar[l+4>>2]:255&c),(0|tr[a>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(f,21560,16),u=0|We(0|Pf(u,0|ar[e+56>>2]),21577,1),u=0|We(0|Pf(u,0|ar[e+60>>2]),21579,3),u=0|We(0|Pf(u,0|ar[e+64>>2]),21577,1),We(0|Pf(u,0|ar[e+68>>2]),30086,1),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(u=0|We(f,21583,8),u=0|We(0|Pf(u,0|ar[e+72>>2]),21577,1),u=0|We(0|Pf(u,0|ar[e+76>>2]),21592,3),u=0|We(0|Pf(u,0|ar[e+80>>2]),21577,1),We(0|Pf(u,0|ar[e+84>>2]),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),UA(r,0|ar[e+56>>2]),UA(r,0|ar[e+60>>2]),UA(r,0|ar[e+64>>2]),UA(r,0|ar[e+68>>2]),UA(r,0|ar[e+72>>2]),UA(r,0|ar[e+76>>2]),UA(r,0|ar[e+80>>2]),UA(r,0|ar[e+84>>2]),KA(f,e,r,n),(0|tr[(e=f+8|0)+11>>0])<0&&vu(0|ar[e>>2]),f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),ur=i},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(i=ur)+32|0,b=i+12|0,s=i,l=0|FA(r|=0),u=0|FA(r),a=0|FA(r),c=0|FA(r),t=0|FA(r),o=0|FA(r),n=0|FA(r),f=0|FA(r),131072<(u+65536|0)>>>0)for(;l=(0|l)/2|0,131072<((u=(0|u)/2|0)+65536|0)>>>0;);if(131072<(l+65536|0)>>>0)for(;u=(0|u)/2|0,131072<((l=(0|l)/2|0)+65536|0)>>>0;);if(ar[(d=e+56|0)>>2]=l,ar[d+4>>2]=u,131072<(c+65536|0)>>>0)for(;a=(0|a)/2|0,131072<((c=(0|c)/2|0)+65536|0)>>>0;);if(131072<(a+65536|0)>>>0)for(;c=(0|c)/2|0,131072<((a=(0|a)/2|0)+65536|0)>>>0;);if(ar[(d=e+64|0)>>2]=a,ar[d+4>>2]=c,131072<(o+65536|0)>>>0)for(;t=(0|t)/2|0,131072<((o=(0|o)/2|0)+65536|0)>>>0;);if(131072<(t+65536|0)>>>0)for(;o=(0|o)/2|0,131072<((t=(0|t)/2|0)+65536|0)>>>0;);if(ar[(d=e+72|0)>>2]=t,ar[d+4>>2]=o,131072<(f+65536|0)>>>0)for(;n=(0|n)/2|0,131072<((f=(0|f)/2|0)+65536|0)>>>0;);if(131072<(n+65536|0)>>>0)for(;f=(0|f)/2|0,131072<((n=(0|n)/2|0)+65536|0)>>>0;);if(ar[(d=e+80|0)>>2]=n,0==(0|u)|0==(0|c)|0==(0|o)|0==(0|(ar[d+4>>2]=f)))return ar[s>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,oo(A,2,128,s),0<=(0|tr[s+11>>0])||vu(0|ar[s>>2]),void(ur=i);0|tr[r+24>>0]?(ar[b>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,oo(A,2,100,b),(0|tr[b+11>>0])<0&&vu(0|ar[b>>2])):(s=0|ar[(b=56592)+4>>2],ar[(d=A)>>2]=ar[b>>2],ar[d+4>>2]=s,yu(A+8|0,56600)),ur=i},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(b=0|tr[(s=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&b),(0|tr[s>>0])<0&&vu(0|ar[f>>2]),(0|(c=0|ar[e+56>>2]))!=(0|(u=0|ar[e+60>>2]))){b=11+f|0,s=4+f|0;do{if(0<(0|ar[r>>2]))for(e=0;We(n,18862,2),(0|(e=e+1|0))<(0|ar[r>>2]););if(d=0|We(n,21430,21),xA(f,c),l=0|We(0|We(0|We(d,(e=(l=0|tr[b>>0])<<24>>24<0)?0|ar[f>>2]:f,e?0|ar[s>>2]:255&l),21452,1),21454,10),We(0|Lf(l,0|ar[c+48>>2]),21465,9),(0|tr[b>>0])<0&&vu(0|ar[f>>2]),(0|(e=0|ar[c+52>>2]))!=(0|(l=0|ar[c+56>>2])))for(;We(0|Lf(n,0|ar[e>>2]),20449,1),(0|(e=e+4|0))!=(0|l););We(n,30086,1),c=c+64|0}while((0|c)!=(0|u))}if(Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0;if(ur=(f=ur)+32|0,c=f,l=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),i=0==(0|tr[e+37>>0])?2:4,(0|(n=0|ar[e+56>>2]))!=(0|(a=0|ar[e+60>>2])))do{if(t=n+52|0,UA(r,10+(0|br(1+((0|ar[(o=n+56|0)>>2])-(0|ar[t>>2])>>2)|0,i))|0),UA(r,0|ar[n+20>>2]),SA(r,i,0|ar[n+48>>2],0),MA(r,((0|ar[o>>2])-(0|ar[t>>2])|0)>>>2&65535),(0|(t=0|ar[t>>2]))!=(0|(o=0|ar[o>>2])))for(;SA(r,i,0|ar[t>>2],0),(0|(t=t+4|0))!=(0|o););n=n+64|0}while((0|n)!=(0|a));if(KA(c,e,r,l),0<=(0|tr[(n=c+8|0)+11>>0]))return a=0|ar[(a=c=56592)>>2],c=0|ar[(c=c+4|0)>>2],ar[(r=l=A)>>2]=a,ar[(l=l+4|0)>>2]=c,yu(A=A+8|0,56600),void(ur=f);vu(0|ar[n>>2]),a=0|ar[(a=c=56592)>>2],c=0|ar[(c=c+4|0)>>2],ar[(r=l=A)>>2]=a,ar[(l=l+4|0)>>2]=c,yu(A=A+8|0,56600),ur=f},function(A,e,r){A|=0;var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z=0,p=0,y=0,B=0,E=0,X=0;for(ur=(g=ur)+96|0,E=(B=g)+64|0,qA(Z=g+68|0,e|=0,r|=0),(0|tr[(Z=Z+8|0)+11>>0])<0&&vu(0|ar[Z>>2]),a=r+16|0,c=B+8|0,l=B+40|0,b=B+56|0,d=e+37|0,k=B+48|0,h=s=B+60|0,w=u=B+52|0,v=e+60|0,m=e+64|0,i=e+56|0,n=11+(f=A+8|0)|0,t=B+24|0,o=B+28|0;!(0==(0|ar[(y=a)>>2])&0==(0|ar[y+4>>2]));){if(ar[B>>2]=4264,ar[l>>2]=0,ar[c>>2]=0,ar[4+c>>2]=0,ar[8+c>>2]=0,ar[12+c>>2]=0,ar[16+c>>2]=0,ar[20+c>>2]=0,ar[24+c>>2]=0,or[28+c>>1]=0,ar[u>>2]=0,ar[b>>2]=0,ar[s>>2]=0,re(A,B,r),(0|ar[A>>2])==(0|ar[14148])){if(0|tr[d>>0]){if(y=0|FA(r),ar[k>>2]=y,e=65535&(y=0|VA(r)),y<<16>>16)for(Z=0;p=0|FA(r),ar[E>>2]=p,(y=0|ar[b>>2])>>>0<(0|ar[h>>2])>>>0?(ar[y>>2]=p,ar[b>>2]=y+4):Ce(w,E),Z=Z+1|0,(0!=(0|ar[(y=a)>>2])|0!=(0|ar[y+4>>2]))&(0|Z)<(0|e););}else if(y=65535&(0|VA(r)),ar[k>>2]=y,e=65535&(y=0|VA(r)),y<<16>>16)for(Z=0;p=65535&(0|VA(r)),ar[E>>2]=p,(y=0|ar[b>>2])>>>0<(0|ar[h>>2])>>>0?(ar[y>>2]=p,ar[b>>2]=y+4):Ce(w,E),Z=Z+1|0,(0!=(0|ar[(y=a)>>2])|0!=(0|ar[y+4>>2]))&(0|Z)<(0|e););(0|(Z=0|ar[v>>2]))==(0|ar[m>>2])?de(i,B):(se(Z,B),ar[v>>2]=64+(0|ar[v>>2])),p=((0|tr[n>>0])<0&&vu(0|ar[f>>2]),0)}else p=1;if(0|(Z=0|ar[u>>2])&&((0|(e=0|ar[b>>2]))!=(0|Z)&&(ar[b>>2]=e+(~((e+-4-Z|0)>>>2)<<2)),vu(Z)),ar[B>>2]=4264,0|(Z=0|ar[t>>2])&&((0|ar[o>>2])!=(0|Z)&&(ar[o>>2]=Z),vu(Z)),1==(0|p)){X=36;break}}ur=(36!=(0|X)&&(0|tr[r+24>>0]?(ar[B>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,oo(A,2,100,B),(0|tr[B+11>>0])<0&&vu(0|ar[B>>2])):(E=0|ar[(B=56592)+4>>2],ar[(X=A)>>2]=ar[B>>2],ar[X+4>>2]=E,yu(f,56600))),g)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(c=(u=0|tr[(b=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,c?0|ar[l+4>>2]:255&u),(0|tr[b>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,20916,23),c=0|We(0|Pf(c,0|cr[e+56>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20940,23),c=0|We(0|Pf(c,0|cr[e+57>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20964,19),c=0|We(0|Hf(c,0!=(0|tr[e+58>>0])),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(b=0|We(c,20984,21),We(0|Pf(b,0|cr[e+59>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););for(We(f,21006,37),c=e+60|0,a=0;Lf(f,(0|ar[c>>2])>>>(31-a|0)&1),7!=((0|a)%8|0)?3==((0|a)%4|0)&&(tr[l>>0]=46,We(f,l,1)):(tr[l>>0]=32,We(f,l,1)),(0|(a=a+1|0))<32;);if(We(f,30086,1),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););for(We(f,21044,36),a=0;Pf(f,0!=(ar[e+64+(a>>>5<<2)>>2]&1<<(31&a)|0)&1),7&(a=a+1|0)||(tr[l>>0]=32,We(f,l,1)),(0|a)<48;);if(We(f,30086,1),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,21081,19),c=0|We(0|Pf(c,0|cr[e+72>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21101,30),c=0|We(0|xf(c,0|or[e+74>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21132,18),c=0|We(0|Pf(c,0|cr[e+76>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21151,15),c=0|We(0|Pf(c,0|cr[e+77>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21167,16),c=0|We(0|Pf(c,0|cr[e+78>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21184,18),c=0|We(0|Pf(c,0|cr[e+79>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21203,16),c=0|We(0|xf(c,0|or[e+80>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21220,21),c=0|We(0|Pf(c,0|cr[e+82>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21242,21),c=0|We(0|Pf(c,0|cr[e+83>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21264,20),c=0|We(0|Pf(c,0|cr[e+84>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(a=0|We(c,21285,13),We(0|Pf(a,0|cr[e+88>>0]),30086,1),(0|(a=0|ar[e+92>>2]))!=(0|(b=0|ar[e+96>>2]))){u=a,a=0|ar[r>>2];do{if(0<(0|a))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(f,21299,8),e=0|ar[r>>2],ar[r>>2]=e+1,-1<(0|e))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,21308,20),c=0|We(0|Pf(c,0|cr[u>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,21329,15),We(0|Pf(c,0|cr[u+1>>0]),30086,1),c=0|ar[u+4>>2],e=0|ar[u+8>>2],a=0|ar[r>>2],(0|c)!=(0|e))do{if(0<(0|a))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if((0|(a=0|ar[c>>2]))!=(0|(l=0|ar[c+4>>2])))for(;s=0|tr[a>>0],ar[f+(0|ar[(0|ar[f>>2])-12>>2])+76>>2]=48,ar[f+(0|ar[(0|ar[f>>2])-12>>2])+12>>2]=2,d=f+(0|ar[(0|ar[f>>2])-12>>2])+4|0,ar[d>>2]=-75&ar[d>>2]|8,We(0|Pf(f,255&s),20449,1),(0|(a=a+1|0))!=(0|l););We(f,30086,1),a=f+(0|ar[(0|ar[f>>2])-12>>2])+4|0,ar[a>>2]=-75&ar[a>>2]|2,c=c+12|0,a=0|ar[r>>2]}while((0|c)!=(0|e));a=(0|a)<1?0:a+-1|0,ar[r>>2]=a,u=u+16|0}while((0|u)!=(0|b))}if(Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0;for(ur=(i=ur)+32|0,a=i,c=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),JA(r,0|tr[e+56>>0]),JA(r,tr[e+58>>0]<<5&255|tr[e+57>>0]<<6&255|31&tr[e+59>>0]),UA(r,0|ar[e+60>>2]),f=0;o=f<<3,JA(r,(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|7)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|6)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|5)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|4)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|3)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|2)|0)|(0!=(ar[e+64+((f>>>2&134217727)<<2)>>2]&1<<(24&o|1)|0)&1)<<1)<<1)<<1&14)<<1&30)<<1&62)<<1&126)<<1&255),6!=(0|(f=f+1|0)););if(JA(r,0|tr[e+72>>0]),MA(r,-4096|or[e+74>>1]),JA(r,-4|tr[e+76>>0]),JA(r,-4|tr[e+77>>0]),JA(r,-8|tr[e+78>>0]),JA(r,-8|tr[e+79>>0]),MA(r,0|or[e+80>>1]),JA(r,255&(255&(tr[e+83>>0]<<3&56|tr[e+82>>0]<<6&255|tr[e+84>>0]<<2&4)|3+(0|cr[e+88>>0])&3)),f=e+92|0,JA(r,((0|ar[(o=e+96|0)>>2])-(0|ar[f>>2])|0)>>>4&255),(0|(f=0|ar[f>>2]))!=(0|(o=0|ar[o>>2])))do{if(JA(r,tr[f>>0]<<6&64|63&tr[f+1>>0]),n=f+4|0,MA(r,65535&(((0|ar[(t=f+8|0)>>2])-(0|ar[n>>2])|0)/12|0)),(0|(n=0|ar[n>>2]))!=(0|(t=0|ar[t>>2])))for(;MA(r,(0|ar[n+4>>2])-(0|ar[n>>2])&65535),zA(r,n),(0|(n=n+12|0))!=(0|t););f=f+16|0}while((0|f)!=(0|o));if(KA(a,e,r,c),0<=(0|tr[(f=a+8|0)+11>>0]))return e=0|ar[(e=a=56592)>>2],a=0|ar[(a=a+4|0)>>2],ar[(r=c=A)>>2]=e,ar[(c=c+4|0)>>2]=a,yu(A=A+8|0,56600),void(ur=i);vu(0|ar[f>>2]),e=0|ar[(e=a=56592)>>2],a=0|ar[(a=a+4|0)>>2],ar[(r=c=A)>>2]=e,ar[(c=c+4|0)>>2]=a,yu(A=A+8|0,56600),ur=i},function(A,e,r){A|=0,e|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;for(ur=(i=ur)+32|0,I=i+16|0,W=i,n=0|IA(r|=0),tr[e+56>>0]=n,f=255&(n=0|IA(r)),tr[e+57>>0]=(255&n)>>>6,tr[e+58>>0]=f>>>5&1,tr[e+59>>0]=31&f,f=0|FA(r),ar[e+60>>2]=f,n=(f=0)|IA(r);p=255&n,y=1<<(24&(B=f<<3)),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=128&p|0?Z|y:Z&~y,y=1<<(24&B|1),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=64&p|0?Z|y:Z&~y,y=1<<(24&B|2),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=32&p|0?Z|y:Z&~y,y=1<<(24&B|3),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=16&p|0?Z|y:Z&~y,y=1<<(24&B|4),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=8&p|0?Z|y:Z&~y,y=1<<(24&B|5),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=4&p|0?Z|y:Z&~y,y=1<<(24&B|6),Z=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=2&p|0?Z|y:Z&~y,B=1<<(24&B|7),y=0|ar[(E=e+64+((f>>>2&134217727)<<2)|0)>>2],ar[E>>2]=1&p|0?y|B:y&~B,f=f+1|0,n=0|IA(r),6!=(0|f););tr[e+72>>0]=n,k=4095&(0|VA(r)),or[e+74>>1]=k,k=3&(0|IA(r)),tr[e+76>>0]=k,k=3&(0|IA(r)),tr[e+77>>0]=k,k=7&(0|IA(r))|8,tr[e+78>>0]=k,k=7&(0|IA(r))|8,tr[e+79>>0]=k,k=0|VA(r),or[e+80>>1]=k,E=255&(k=0|IA(r)),tr[e+82>>0]=(255&k)>>>6,tr[e+83>>0]=E>>>3&7,tr[e+84>>0]=E>>>2&1,tr[e+88>>0]=1+(3&E),k=255&(E=0|IA(r));A:do{if(E<<24>>24){h=r+24|0,v=I+8|0,g=I+1|0,Z=e+96|0,p=e+100|0,B=m=I+12|0,E=y=w=I+4|0,l=e+92|0,u=W+4|0,s=r+4|0,d=b=W+8|0,c=0;do{if(0|tr[h>>0])break A;o=0|IA(r),ar[w>>2]=0,ar[v>>2]=0,ar[m>>2]=0,o&=255,tr[I>>0]=o>>>6&1,tr[g>>0]=63&o,a=65535&(o=0|VA(r));e:do{if(o<<16>>16){o=0;do{if(0|tr[h>>0])break e;ar[W>>2]=0,ar[u>>2]=0,t=65535&(f=(ar[b>>2]=0)|VA(r));do{if(f<<16>>16){do{if(0|CA(r,65535&f,0)){if(t>>>0<=(f=(e=0|ar[u>>2])-(n=0|ar[W>>2])|0)>>>0?t>>>0>>0&&(0|e)!=(0|(X=n+t|0))&&(ar[u>>2]=X):TA(W,t-f|0),f=0|ar[r>>2],n=0|ar[s>>2]){bu(n),xb[63&ar[16+(0|ar[f>>2])>>2]](f,0|ar[W>>2],t),du(n);break}xb[63&ar[16+(0|ar[f>>2])>>2]](f,0|ar[W>>2],t);break}}while(0);if((f=0|ar[v>>2])>>>0<(0|ar[B>>2])>>>0){ar[f>>2]=0,ar[(t=f+4|0)>>2]=0,ar[f+8>>2]=0,ar[f>>2]=ar[W>>2],ar[t>>2]=ar[u>>2],ar[f+8>>2]=ar[d>>2],ar[d>>2]=0,ar[u>>2]=0,ar[W>>2]=0,ar[v>>2]=12+(0|ar[v>>2]);break}ue(y,W);break}}while(0);0|(f=0|ar[W>>2])&&((0|ar[u>>2])!=(0|f)&&(ar[u>>2]=f),vu(f)),o=o+1|0}while((0|o)<(0|a))}}while(0);if((f=0|ar[Z>>2])>>>0>=(0|ar[p>>2])>>>0){if(le(l,I),0|(f=0|ar[E>>2])){if((0|(n=0|ar[v>>2]))!=(0|f)){for(;e=n+-12|0,ar[v>>2]=e,(0|(n=(t=0|ar[e>>2])?((0|ar[(n=n+-8|0)>>2])!=(0|t)&&(ar[n>>2]=t),vu(t),0|ar[v>>2]):e))!=(0|f););f=0|ar[E>>2]}vu(f)}}else or[f>>1]=0|or[I>>1],ar[(o=f+4|0)>>2]=0,ar[(a=f+8|0)>>2]=0,ar[f+12>>2]=0,ar[o>>2]=ar[y>>2],ar[a>>2]=ar[v>>2],ar[f+12>>2]=ar[B>>2],ar[B>>2]=0,ar[v>>2]=0,ar[y>>2]=0,ar[Z>>2]=16+(0|ar[Z>>2]);c=c+1|0}while((0|c)<(0|k))}}while(0);if(n=0|ar[(f=t=r+16|0)>>2],0<(0|(f=0|ar[f+4>>2]))|0==(0|f)&0>>0&&((e=0|ar[r+8>>2])&&(_A(e,n,f),n=0|ar[(f=t)>>2],f=0|ar[f+4>>2]),X=0|ar[r>>2],W=0|ar[X>>2],E=0|ar[W+20>>2],W=0|tb(0|(W=0|jb[127&ar[W+8>>2]](X)),0|D,0|n,0|f),xb[63&E](X,W,D),ar[(W=t)>>2]=0,ar[W+4>>2]=0),!(0|tr[r+24>>0]))return r=0|ar[(W=56592)+4>>2],ar[(I=A)>>2]=ar[W>>2],ar[I+4>>2]=r,yu(A+8|0,56600),void(ur=i);ar[I>>2]=0,ar[I+4>>2]=0,ar[I+8>>2]=0,oo(A,2,100,I),ur=(0<=(0|tr[I+11>>0])||vu(0|ar[I>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(l=0|tr[(c=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,18907,9),c=0|We(0|Pf(c,0|cr[e+56>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20644,13),c=0|We(0|Pf(c,0|cr[e+57>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20658,17),c=0|We(0|Pf(c,0|cr[e+58>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20676,15),c=0|We(0|Pf(c,0|cr[e+60>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20692,12),c=0|We(0|Pf(c,0|cr[e+61>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20705,22),c=0|We(0|Pf(c,0|cr[e+63>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20728,22),c=0|We(0|Pf(c,0|cr[e+64>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,20751,24),c=0|We(0|Pf(c,0|cr[e+65>>0]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(c,20776,28),0|tr[e+66>>0]?We(0|Pf(f,1+(0|cr[e+67>>0])|0),30086,1):We(f,20805,12),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(We(f,20818,12),r=e+68|0,(0|ar[(c=e+72|0)>>2])!=(0|ar[r>>2]))for(a=0;l=(u=0|We(f,20449,1))+(0|ar[(0|ar[u>>2])-12>>2])+4|0,ar[l>>2]=-75&ar[l>>2]|8,ar[u+(0|ar[(0|ar[u>>2])-12>>2])+76>>2]=48,ar[u+(0|ar[(0|ar[u>>2])-12>>2])+12>>2]=2,Pf(u,0|cr[(0|ar[r>>2])+a>>0]),(a=a+1|0)>>>0<((0|ar[c>>2])-(0|ar[r>>2])|0)>>>0;);if(u=f+(0|ar[(0|ar[f>>2])-12>>2])+4|0,ar[u>>2]=-75&ar[u>>2]|2,We(f,30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;if(ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),JA(r,-128|tr[e+56>>0]),JA(r,31&tr[e+58>>0]|tr[e+57>>0]<<5&255),JA(r,255&((0|tr[e+60>>0]?64:0)|(0|tr[e+59>>0]?128:0)|(0|tr[e+61>>0]?32:0)|(0|tr[e+62>>0]?16:0)|(0|tr[e+63>>0]?8:0)|(0|tr[e+64>>0]?4:0)|3&tr[e+65>>0])),JA(r,0),KA(f,e,r,n),0<=(0|tr[(e=f+8|0)+11>>0]))return e=0|ar[(e=f=56592)>>2],f=0|ar[(f=f+4|0)>>2],ar[(r=n=A)>>2]=e,ar[(n=n+4|0)>>2]=f,yu(n=A+8|0,56600),void(ur=i);vu(0|ar[e>>2]),e=0|ar[(e=f=56592)>>2],f=0|ar[(f=f+4|0)>>2],ar[(r=n=A)>>2]=e,ar[(n=n+4|0)>>2]=f,yu(n=A+8|0,56600),ur=i},function(A,e,r){A|=0,e|=0;var i,f,n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0;if(ur=(o=ur)+16|0,w=o,k=127&(0|IA(r|=0)),tr[e+56>>0]=k,k=0|IA(r),tr[e+57>>0]=(255&k)>>>5,tr[e+58>>0]=31&k,d=255&(k=0|IA(r)),tr[e+59>>0]=(255&k)>>>7,tr[e+60>>0]=d>>>6&1,tr[e+61>>0]=d>>>5&1,tr[e+62>>0]=d>>>4&1,tr[e+63>>0]=d>>>3&1,tr[e+64>>0]=d>>>2&1,tr[e+65>>0]=3&d,k=(d=255&(0|IA(r)))>>>4&1,(tr[e+66>>0]=k)<<24>>24&&(tr[e+67>>0]=15&d),t=0|ar[(k=r+16|0)>>2],k=0|ar[k+4>>2],n=e+68|0,t>>>0<=(i=(f=0|ar[(e=e+72|0)>>2])-(d=0|ar[n>>2])|0)>>>0?t>>>0>>0&&(0|f)!=(0|(h=d+t|0))&&(ar[e>>2]=h):(TA(n,t-i|0),d=0|ar[n>>2]),a=r,c=d,l=t,u=k,c|=0,a=0|CA(a|=0,l|=0,u|=0)?(u=0|ar[a>>2],(s=0==(0|(b=0|ar[a+4>>2])))||bu(b),(u=0|xb[63&ar[16+(0|ar[u>>2])>>2]](u,c,l))||GA(a),s||du(b),u):0,!(0|tr[r+24>>0]))return r=0|ar[(h=56592)+4>>2],ar[(w=A)>>2]=ar[h>>2],ar[w+4>>2]=r,yu(A+8|0,56600),void(ur=o);ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,oo(A,2,100,w),ur=(0<=(0|tr[w+11>>0])||vu(0|ar[w>>2]),o)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(o=ur)+160|0,c=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,Xe(t,c),(0|tr[c+11>>0])<0&&vu(0|ar[c>>2]),LA(c,e,r),We(f,(u=(l=0|tr[(a=c+11|0)>>0])<<24>>24<0)?0|ar[c>>2]:c,u?0|ar[c+4>>2]:255&l),(0|tr[a>>0])<0&&vu(0|ar[c>>2]),0<(0|ar[r>>2]))for(c=0;We(f,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(f,20536,22),We(0|Kf(l,u=0|ob(0|ar[(u=e+8|0)>>2],0|ar[u+4>>2],0|ar[e+16>>2],0),D),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f=0,n=0;ur=(i=ur)+32|0,f=i,n=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),zA(r,e+72|0),KA(f,e,r,n),(0|tr[(e=f+8|0)+11>>0])<0&&vu(0|ar[e>>2]),f=0|ar[(r=56592)+4>>2],ar[(n=A)>>2]=ar[r>>2],ar[n+4>>2]=f,yu(A+8|0,56600),ur=i},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0;if(ur=(f=ur)+16|0,i=f,n=0|ar[(r|=0)>>2],(t=0|ar[r+4>>2])?(bu(t),o=0|jb[127&ar[8+(0|ar[n>>2])>>2]](n),ar[(n=e+56|0)>>2]=0,ar[n+4>>2]=0,ar[(n=e+64|0)>>2]=o,ar[n+4>>2]=D,du(t)):(n=0|jb[127&ar[8+(0|ar[n>>2])>>2]](n),ar[(t=e+56|0)>>2]=0,ar[t+4>>2]=0,ar[(t=e+64|0)>>2]=n,ar[t+4>>2]=D),!(0|tr[r+24>>0]))return t=0|ar[(n=56592)+4>>2],ar[(o=A)>>2]=ar[n>>2],ar[o+4>>2]=t,yu(A+8|0,56600),void(ur=f);ar[i>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,oo(A,2,100,i),ur=(0<=(0|tr[i+11>>0])||vu(0|ar[i>>2]),f)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(b=0|tr[(s=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&b),(0|tr[s>>0])<0&&vu(0|ar[f>>2]),(0|(c=0|ar[e+56>>2]))!=(0|(u=0|ar[e+60>>2]))){b=11+f|0,s=4+f|0;do{if(0<(0|ar[r>>2]))for(e=0;We(n,18862,2),(0|(e=e+1|0))<(0|ar[r>>2]););if(d=0|We(n,20408,12),xA(f,c),l=0|We(0|We(d,(e=(l=0|tr[b>>0])<<24>>24<0)?0|ar[f>>2]:f,e?0|ar[s>>2]:255&l),30086,1),0<(0|ar[r>>2]))for(e=0;We(l,18862,2),(0|(e=e+1|0))<(0|ar[r>>2]););if(l=0|We(l,20421,12),l=0|We(0|Lf(l,0|ar[c+48>>2]),30086,1),0<(0|ar[r>>2]))for(e=0;We(l,18862,2),(0|(e=e+1|0))<(0|ar[r>>2]););if(We(l,20434,14),(0|tr[b>>0])<0&&vu(0|ar[f>>2]),(0|(e=0|ar[c+52>>2]))!=(0|(l=0|ar[c+56>>2])))for(;We(0|Lf(n,0|ar[e>>2]),20449,1),(0|(e=e+4|0))!=(0|l););We(n,30086,1),c=c+64|0}while((0|c)!=(0|u))}if(Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){var i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p=0,y=0,B=0,E=0,X=0,W=0;for(ur=(Z=ur)+96|0,v=(r|=0)+16|0,m=8+(h=Z+24|0)|0,g=40+h|0,X=56+h|0,l=(w=Z)+8|0,u=11+(c=(A|=0)+8|0)|0,b=A+12|0,s=48+h|0,d=(e|=0)+60|0,k=e+64|0,i=e+56|0,f=a=60+h|0,n=E=52+h|0,t=24+h|0,o=28+h|0;!(0==(0|ar[(B=v)>>2])&0==(0|ar[B+4>>2]));){if(ar[h>>2]=4264,ar[g>>2]=0,ar[m>>2]=0,ar[4+m>>2]=0,ar[8+m>>2]=0,ar[12+m>>2]=0,ar[16+m>>2]=0,ar[20+m>>2]=0,ar[24+m>>2]=0,or[28+m>>1]=0,ar[E>>2]=0,ar[X>>2]=0,ar[a>>2]=0,re(A,h,r),(0|ar[A>>2])==(0|ar[14148]))if(qA(w,h,r),y=0|ar[(p=w)+4>>2],ar[(B=A)>>2]=ar[p>>2],ar[B+4>>2]=y,(0|tr[u>>0])<0?(tr[ar[c>>2]>>0]=0,ar[b>>2]=0):(tr[c>>0]=0,tr[u>>0]=0),Cu(c,0),ar[c>>2]=ar[l>>2],ar[4+c>>2]=ar[4+l>>2],ar[8+c>>2]=ar[8+l>>2],(0|ar[A>>2])==(0|ar[14148])){p=0|FA(r),ar[s>>2]=p,p=0|FA(r);A:do{if(0<(0|p)){e=0;do{if(0==(0|ar[(B=v)>>2])&0==(0|ar[B+4>>2]))break A;y=0|FA(r),ar[w>>2]=y,(B=0|ar[X>>2])>>>0<(0|ar[f>>2])>>>0?(ar[B>>2]=y,ar[X>>2]=B+4):Ce(n,w),e=e+1|0}while((0|e)<(0|p))}}while(0);(0|(e=0|ar[d>>2]))==(0|ar[k>>2])?ae(i,h):(oe(e,h),ar[d>>2]=64+(0|ar[d>>2])),y=((0|tr[u>>0])<0&&vu(0|ar[c>>2]),0)}else y=1;else y=1;if(0|(e=0|ar[E>>2])&&((0|(p=0|ar[X>>2]))!=(0|e)&&(ar[X>>2]=p+(~((p+-4-e|0)>>>2)<<2)),vu(e)),ar[h>>2]=4264,0|(e=0|ar[t>>2])&&((0|ar[o>>2])!=(0|e)&&(ar[o>>2]=e),vu(e)),1==(0|y)){W=33;break}}ur=(33!=(0|W)&&(0|tr[r+24>>0]?(ar[h>>2]=0,ar[4+h>>2]=0,ar[8+h>>2]=0,oo(A,2,100,h),(0|tr[11+h>>0])<0&&vu(0|ar[h>>2])):(X=0|ar[(E=56592)+4>>2],ar[(W=A)>>2]=ar[E>>2],ar[W+4>>2]=X,yu(c,56600))),Z)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){$A(A|=0,e|=0,r|=0,-1)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),ne(f,e,r),We(n,(c=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,c?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0;var i,f=0;ur=(i=ur)+32|0,qA(f=i,e|=0,r|=0),(0|tr[(f=f+8|0)+11>>0])<0&&vu(0|ar[f>>2]),$A(A,e,r,0|FA(r)),ur=i},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),LA(a,e,r),We(f,(u=(l=0|tr[(c=a+11|0)>>0])<<24>>24<0)?0|ar[a>>2]:a,u?0|ar[a+4>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(r=0|We(f,20144,10),We(0|We(r,(l=(u=0|tr[(c=e+56|0)+11>>0])<<24>>24<0)?0|ar[c>>2]:c,l?0|ar[e+60>>2]:255&u),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0;var i,f,n=0,t=0;if(ur=(f=ur)+32|0,t=f+20|0,qA(n=f,e|=0,r|=0),(0|tr[(n=n+8|0)+11>>0])<0&&vu(0|ar[n>>2]),RA(t,r),(0|tr[(i=(n=e+56|0)+11|0)>>0])<0?(tr[ar[n>>2]>>0]=0,ar[e+60>>2]=0):(tr[n>>0]=0,tr[i>>0]=0),Cu(n,0),ar[n>>2]=ar[t>>2],ar[n+4>>2]=ar[t+4>>2],ar[n+8>>2]=ar[t+8>>2],!(0|tr[r+24>>0]))return r=0|ar[(e=56592)+4>>2],ar[(t=A)>>2]=ar[e>>2],ar[t+4>>2]=r,yu(A+8|0,56600),void(ur=f);ar[t>>2]=0,ar[t+4>>2]=0,ar[t+8>>2]=0,oo(A,2,100,t),ur=(0<=(0|tr[t+11>>0])||vu(0|ar[t>>2]),f)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+160|0,f=a+136|0,t=(n=a)+56|0,o=n+4|0,ar[n>>2]=292,ar[t>>2]=312,Jf(n+56|0,o),ar[n+128>>2]=0,ar[n+132>>2]=-1,ar[n>>2]=4304,ar[t>>2]=4324,Sf(o),ar[o>>2]=4340,ar[(i=n+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[n+52>>2]=16,ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,Xe(o,f),(0|tr[11+f>>0])<0&&vu(0|ar[f>>2]),LA(f,e,r),We(n,(u=(l=0|tr[(c=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,u?0|ar[4+f>>2]:255&l),(0|tr[c>>0])<0&&vu(0|ar[f>>2]),0<(0|ar[r>>2]))for(c=0;We(n,18862,2),(0|(c=c+1|0))<(0|ar[r>>2]););if(l=0|We(n,20027,13),e=0|ar[(c=e+56|0)>>2],e=0|jb[127&ar[8+(0|ar[e>>2])>>2]](e),ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,tr[(u=11+f|0)>>0]=4,tr[4+f>>0]=0,tr[f>>0]=e>>>24,tr[1+f>>0]=e>>>16,tr[2+f>>0]=e>>>8,tr[3+f>>0]=e,We(0|We(l,f,4),30086,1),(0|tr[u>>0])<0&&vu(0|ar[f>>2]),(c=0|ar[c>>2])?(ns[127&ar[12+(0|ar[c>>2])>>2]](f,c,r),We(n,(r=(l=0|tr[(u=11+f|0)>>0])<<24>>24<0)?0|ar[f>>2]:f,r?0|ar[4+f>>2]:255&l),(0|tr[u>>0])<0&&vu(0|ar[f>>2])):We(n,20041,17),Ie(A,o),ar[n>>2]=4304,ar[t>>2]=4324,ar[o>>2]=4340,0<=(0|tr[11+i>>0]))return kf(o),Gf(),bf(t),void(ur=a);vu(0|ar[i>>2]),kf(o),Gf(),bf(t),ur=a},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0;if(ur=(f=ur)+48|0,t=(a=f)+20|0,o=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),(n=0|ar[(i=e+56|0)>>2])||sr(20011,19104,1857,19563),UA(r,0|jb[127&ar[8+(0|ar[n>>2])>>2]](n)),n=0|ar[i>>2],ns[127&ar[16+(0|ar[n>>2])>>2]](a,n,r),0|ar[a>>2])return t=0|ar[(r=a)+4>>2],ar[(o=A)>>2]=ar[r>>2],ar[o+4>>2]=t,a=a+8|0,ar[(A=A+8|0)>>2]=ar[a>>2],ar[A+4>>2]=ar[a+4>>2],ar[A+8>>2]=ar[a+8>>2],ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,void(ur=f);KA(t,e,r,o),(0|tr[(e=t+8|0)+11>>0])<0&&vu(0|ar[e>>2]),t=0|ar[(r=56592)+4>>2],ar[(o=A)>>2]=ar[r>>2],ar[o+4>>2]=t,yu(A+8|0,56600),ur=(0<=(0|tr[a+8+11>>0])||vu(0|ar[a+8>>2]),f)},function(A,e,r){A|=0,e|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;ur=(f=ur)+64|0,b=f+40|0,l=f+36|0,o=f+24|0,i=f+16|0,n=f,t=0|FA(r|=0),ar[l>>2]=t;A:do{if(1886547814<=(0|t)){if((0|t)<1917403971)switch(0|t){case 1886547814:break;default:s=26;break A}else switch(0|t){case 1917403971:break;default:s=26;break A}if(0|NA(r,a=0|tb(0|(a=0|ob(0|ar[(a=e+8|0)>>2],0|ar[a+4>>2],0|ar[e+16>>2],0)),0|D,-4,-1),c=D))return ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,oo(A,2,100,o),0<=(0|tr[o+11>>0])||vu(0|ar[o>>2]),void(ur=f);if(ar[b>>2]=0,ar[(o=b+4|0)>>2]=0,(ar[b+8>>2]=0)|a)for((0|a)<0&&zl(),t=0|hu(a),ar[o>>2]=t,ar[b>>2]=t,ar[b+8>>2]=t+a,n=a;t=1+((tr[t>>0]=0)|ar[o>>2])|0,ar[o>>2]=t,0!=(0|(n=n+-1|0)););if(!(0==(0|a)&0==(0|c)))for(n=0;t=0|IA(r),tr[(0|ar[b>>2])+n>>0]=t,0>>0|0==(0|c)&(n=n+1|0)>>>0>>0;);fe(i,l,b),n=0|ar[i>>2],l=0|ar[(t=4+i|0)>>2],ar[i>>2]=0,ar[t>>2]=0,ar[e+56>>2]=n,n=0|ar[(e=e+60|0)>>2],ar[e>>2]=l,0|n&&(du(n),0|(u=0|ar[t>>2]))&&du(u),0|(n=0|ar[b>>2])&&((0|ar[o>>2])!=(0|n)&&(ar[o>>2]=n),vu(n))}else{switch(0|t){case 1852009592:break;default:s=26;break A}if(o=0|hu(24),ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o>>2]=6064,ar[(t=o+12|0)>>2]=6092,or[o+16>>1]=2,or[o+18>>1]=2,or[o+20>>1]=6,tr[o+22>>0]=1,bu(o),ar[e+56>>2]=t,n=0|ar[(e=e+60|0)>>2],ar[e>>2]=o,0|n&&du(n),ie(A,t,r),0|ar[A>>2])return du(o),void(ur=f);(0|tr[(n=A+8|0)+11>>0])<0&&vu(0|ar[n>>2]),du(o)}}while(0);if(26==(0|s))return ar[n>>2]=0,ar[n+4>>2]=0,ar[n+8>>2]=0,oo(A,2,126,n),0<=(0|tr[n+11>>0])||vu(0|ar[n>>2]),void(ur=f);0|tr[r+24>>0]?(ar[b>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,oo(A,2,100,b),(0|tr[b+11>>0])<0&&vu(0|ar[b>>2])):(b=0|ar[(r=56592)+4>>2],ar[(s=A)>>2]=ar[r>>2],ar[s+4>>2]=b,yu(A+8|0,56600)),ur=f},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a,c,l=0,u=0;if(ur=(o=ur)+160|0,l=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[l>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,Xe(t,l),(0|tr[l+11>>0])<0&&vu(0|ar[l>>2]),LA(l,e,r),We(f,(c=(a=0|tr[(u=l+11|0)>>0])<<24>>24<0)?0|ar[l>>2]:l,c?0|ar[l+4>>2]:255&a),(0|tr[u>>0])<0&&vu(0|ar[l>>2]),0<(0|ar[r>>2]))for(l=0;We(f,18862,2),(0|(l=l+1|0))<(0|ar[r>>2]););if(We(f,19569,18),u=e+56|0,e=e+60|0,l=0|ar[u>>2],(0|ar[e>>2])!=(0|l))for(r=0;r&&(We(f,19588,1),l=0|ar[u>>2]),Pf(f,0|cr[l+r>>0]),r=r+1|0,l=0|ar[u>>2],r>>>0<((0|ar[e>>2])-l|0)>>>0;);if(We(f,30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,e|=0;var i,f,n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+32|0,c=t,l=0|ar[(r|=0)+12>>2],jA(r,0|tr[e+36>>0]?12:8),f=e+56|0,255<(i=(o=0|ar[(n=e+60|0)>>2])-(a=0|ar[f>>2])|0)>>>0&&sr(55739,19104,1919,19563),(0|a)==(0|o)&&sr(55739,19104,1919,19563),JA(r,255&i),o=0|ar[f>>2],(0|ar[n>>2])!=(0|o))for(a=0;JA(r,0|tr[o+a>>0]),a=a+1|0,o=0|ar[f>>2],a>>>0<((0|ar[n>>2])-o|0)>>>0;);KA(c,e,r,l),(0|tr[(o=c+8|0)+11>>0])<0&&vu(0|ar[o>>2]),c=0|ar[(r=56592)+4>>2],ar[(l=A)>>2]=ar[r>>2],ar[l+4>>2]=c,yu(A+8|0,56600),ur=t},function(A,e,r){A|=0;var i,f,n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+48|0,u=o+32|0,qA(a=(c=o)+12|0,e|=0,r|=0),(0|tr[(a=a+8|0)+11>>0])<0&&vu(0|ar[a>>2]),0|NA(r,255&(f=0|IA(r)),0))return ar[c>>2]=0,ar[c+4>>2]=0,ar[c+8>>2]=0,oo(A,2,100,c),0<=(0|tr[c+11>>0])||vu(0|ar[c>>2]),void(ur=o);if(n=e+56|0,(t=255&f)>>>0<=(c=(i=0|ar[(a=e+60|0)>>2])-(e=0|ar[n>>2])|0)>>>0?t>>>0>>0&&(0|i)!=(0|(l=e+t|0))&&(ar[a>>2]=l):TA(n,t-c|0),f<<24>>24)for(a=0;l=0|IA(r),tr[(0|ar[n>>2])+a>>0]=l,(0|(a=a+1|0))!=(0|t););0|tr[r+24>>0]?(ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,oo(A,2,100,u),(0|tr[u+11>>0])<0&&vu(0|ar[u>>2])):(r=0|ar[(l=56592)+4>>2],ar[(u=A)>>2]=ar[l>>2],ar[u+4>>2]=r,yu(A+8|0,56600)),ur=o},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0,c=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(f,19818,18),c=0|We(0|xf(c,0|or[e+4>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,19837,26),c=0|We(0|xf(c,0|or[e+6>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(c=0|We(c,19864,21),c=0|We(0|xf(c,0|or[e+8>>1]),30086,1),0<(0|ar[r>>2]))for(a=0;We(c,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(r=0|We(c,19886,17),We(0|Hf(r,0!=(0|tr[e+10>>0])),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,MA(r|=0,0|or[(e|=0)+4>>1]),MA(r,0|or[e+6>>1]),MA(r,0|or[e+8>>1]),JA(r,0|tr[e+10>>0]?-128:0),e=0|ar[14149],ar[(r=A)>>2]=ar[14148],ar[r+4>>2]=e,yu(A+8|0,56600)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n,t,o,a=0;if(ur=(o=ur)+160|0,a=o+136|0,n=(f=o)+56|0,t=f+4|0,ar[f>>2]=292,ar[n>>2]=312,Jf(f+56|0,t),ar[f+128>>2]=0,ar[f+132>>2]=-1,ar[f>>2]=4304,ar[n>>2]=4324,Sf(t),ar[t>>2]=4340,ar[(i=f+36|0)>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,ar[12+i>>2]=0,ar[f+52>>2]=16,ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,Xe(t,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),0<(0|ar[r>>2]))for(a=0;We(f,18862,2),(0|(a=a+1|0))<(0|ar[r>>2]););if(r=0|We(f,19675,14),We(0|Lf(r,(0|ar[e+12>>2])-(0|ar[e+8>>2])|0),30086,1),Ie(A,t),ar[f>>2]=4304,ar[n>>2]=4324,ar[t>>2]=4340,0<=(0|tr[11+i>>0]))return kf(t),Gf(),bf(n),void(ur=o);vu(0|ar[i>>2]),kf(t),Gf(),bf(n),ur=o},function(A,e,r){A|=0,zA(r|=0,(e|=0)+8|0),e=0|ar[14149],ar[(r=A)>>2]=ar[14148],ar[r+4>>2]=e,yu(A+8|0,56600)},function(A,e,r){e|=0,r|=0;var i,f,n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0;for(ur=(o=ur)+32|0,i=o+20|0,f=o+16|0,n=o+12|0,t=o,ar[(A|=0)>>2]=ar[1904],ar[A+4>>2]=ar[1905],ar[A+8>>2]=ar[1906],a=0|ar[e>>2],Wa(a=548+(a|=0)|0),Wa(a),tr[a>>0]=1,ar[r>>2]=0;;){if((ar[n>>2]=0)|Ee(0|ar[e>>2],n)){l=28;break}if(0|(m=0|Fe(0|ar[e>>2]))){for(0|(c=0|ar[r>>2])&&hl(c),l=0==(0|De(m)),Z=0|hu(80),ar[Z+4>>2]=0,ar[Z+8>>2]=0,ar[Z>>2]=6208,ar[(v=Z+12|0)>>2]=0,ar[v+4>>2]=0,ar[v+8>>2]=0,ar[v+12>>2]=0,ar[v+16>>2]=0,ar[Z+32>>2]=34395,ar[Z+36>>2]=0,ar[Z+40>>2]=0,ar[Z+44>>2]=99,ar[Z+48>>2]=99,w=Z+52|0,ar[(g=Z+72|0)>>2]=0,ar[Z+76>>2]=0,ar[w>>2]=0,ar[w+4>>2]=0,ar[w+8>>2]=0,ar[w+12>>2]=0,ar[Z+68>>2]=g,g=v,w=Z+16|0,bu(p=Z),su(Z),c=0|ar[w>>2],ar[v>>2]=g,ar[w>>2]=p,0|c&&ku(c),du(Z),yo(v,d=0|_e(m,0),s=0|Ye(m,0),l?2:0,w=0|De(m)),s=l?1:3,d=((w=0|Qe(m,0))+7|0)/8|0,b=0;;){if((0|Qe(m,b))!=(0|w)){l=10;break}if(k=0|Je(m,b,i),(0|(l=0|_e(m,b)))<1|(0|(h=0|Ye(m,b)))<1){l=12;break}if(!(0|Bo(v,c=0|ar[7628+(b<<2)>>2],l,h,w))){l=14;break}if(u=0|Fo(v,c,f),0<(0|h))for(l=0|br(l,d),c=0;hb(0|(y=u+(0|br(0|ar[f>>2],c))|0),k+(0|br(0|ar[i>>2],c))|0,0|l),(0|(c=c+1|0))!=(0|h););if((0|s)<=(0|(b=b+1|0))){l=20;break}}if(10==(0|l)?(l=0,ar[t>>2]=ar[1910],ar[t+4>>2]=ar[1911],ar[t+8>>2]=ar[1912]):12==(0|l)?(ar[t>>2]=ar[1913],ar[t+4>>2]=ar[1914],ar[t+8>>2]=ar[1915],l=18):14==(0|l)?(ar[t>>2]=ar[1916],ar[t+4>>2]=ar[1917],ar[t+8>>2]=ar[1918],l=18):20==(0|l)&&(c=(l=0)|hu(8),ar[c>>2]=0,ar[(y=c+4|0)>>2]=0,ar[r>>2]=c,bu(Z),ar[c>>2]=g,c=0|ar[y>>2],ar[y>>2]=p,0|c&&du(c),ar[t>>2]=ar[1904],ar[t+4>>2]=ar[1905],ar[t+8>>2]=ar[1906]),du(Z),ar[A>>2]=ar[t>>2],ar[A+4>>2]=ar[t+4>>2],ar[A+8>>2]=ar[t+8>>2],0|ar[A>>2]){l=28;break}c=0|hu(24),ar[c+4>>2]=0,ar[c+8>>2]=0,ar[c>>2]=6064,ar[(l=c+12|0)>>2]=6092,or[c+16>>1]=0,or[c+18>>1]=0,or[c+20>>1]=0,tr[c+22>>0]=1,jt(l),y=0|ar[ar[r>>2]>>2],bu(c),bu(c),ar[y+40>>2]=l,l=0|ar[(y=y+44|0)>>2],ar[y>>2]=c,0|l&&du(l),du(c),Re(0|ar[e>>2]),du(c)}if(!(0|ar[n>>2])){l=28;break}}28!=(0|l)||(ur=o)},function(A,e,r){A|=0,0|(A=0|ar[(e|=0)+4>>2])&&Bc(A),0|(A=0|ar[e+8>>2])&&Bc(A),(A=0|ar[e+12>>2])&&Bc(A)},function(A,e,r){var i,f,n,t;A|=0,e|=0,ur=(i=ur)+32|0,f=i,t=(n=0|tr[(r|=0)+11>>0])<<24>>24<0,function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0;ur=(a=ur)+32|0,o=a,u=0|hu(132),ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u>>2]=6364,co(c=u+12|0),ar[(n=e+60|0)>>2]=c,t=0|ar[(l=e+64|0)>>2],ar[l>>2]=u,t&&(du(t),c=0|ar[n>>2]);if(ko(o,c,r,i,f),0|ar[o>>2])return u=0|ar[(f=o)+4>>2],ar[(l=A)>>2]=ar[f>>2],ar[l+4>>2]=u,u=o+8|0,ar[(l=A+8|0)>>2]=ar[u>>2],ar[l+4>>2]=ar[u+4>>2],ar[l+8>>2]=ar[u+8>>2],ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ur=a;if(function(A,e){A|=0;var r,i,f,n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I,C,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0,tA=0,oA=0,aA=0,cA=0,lA=0,uA=0,bA=0,sA=0,dA=0,kA=0,hA=0,wA=0,vA=0,mA=0,gA=0,ZA=0,pA=0,yA=0,BA=0,EA=0,XA=0,WA=0,IA=0,CA=0,GA=0,VA=0,FA=0,RA=0,NA=0,_A=0,YA=0,QA=0,DA=0,JA=0,MA=0,TA=0,UA=0,SA=0,OA=0,zA=0,jA=0,HA=0,xA=0,PA=0,LA=0,KA=0,qA=0,$A=0,Ae=0,ee=0,re=0,ie=0,fe=0,ne=0,te=0,oe=0,ae=0,ce=0,le=0,ue=0,be=0,se=0,de=0,ke=0,he=0,we=0,ve=0,me=0,ge=0,Ze=0,pe=0,ye=0,Be=0,Ee=0;if(ur=(C=ur)+656|0,y=C+640|0,I=C+616|0,q=C+628|0,ye=C+604|0,Be=C+144|0,lA=(Ee=C)+592|0,uA=C+584|0,r=C+572|0,i=C+560|0,f=C+548|0,n=C+536|0,t=C+384|0,p=C+392|0,o=C+372|0,a=C+348|0,c=C+360|0,l=C+328|0,u=C+316|0,b=C+304|0,s=C+292|0,d=C+280|0,k=C+268|0,h=C+256|0,w=C+248|0,de=C+240|0,v=C+232|0,m=C+216|0,Ze=C+208|0,pe=C+200|0,B=C+188|0,E=C+176|0,X=C+168|0,vl(ge=28+(e|=0)|0,0|ar[(W=e+32|0)>>2]),ar[(P=e+36|0)>>2]=0,ar[ge>>2]=W,ar[W>>2]=0,F=0|ar[(L=e+40|0)>>2],(0|(G=0|ar[(K=e+44|0)>>2]))!=(0|F))for(;V=G+-8|0,ar[K>>2]=V,G=(G=0|ar[G+-4>>2])?(du(G),0|ar[K>>2]):V,(0|G)!=(0|F););ar[(H=e+52|0)>>2]=0,G=0|ar[(x=e+56|0)>>2],ar[x>>2]=0,0|G&&du(G);if(function(A,e){e|=0;var r,i,f,n,t,o=0,a=0,c=0;if(ur=(t=ur)+16|0,f=t,ar[(A|=0)>>2]=0,ar[(n=A+4|0)>>2]=0,((ar[A+8>>2]=0)|(o=0|ar[e+108>>2]))!=(0|(r=e+112|0))){for(i=A+8|0,c=o,a=o=0;;){if(e=0|ar[56+(0|ar[c+20>>2])>>2],ar[f>>2]=e,o>>>0>>0?(ar[o>>2]=e,ar[n>>2]=o+4):Ce(A,f),e=0|ar[c+4>>2])for(;o=0|ar[e>>2];)e=o;else if(e=0|ar[(o=c+8|0)>>2],(0|ar[e>>2])!=(0|c))for(;c=0|ar[o>>2],e=0|ar[(o=c+8|0)>>2],(0|ar[e>>2])!=(0|c););if((0|e)==(0|r))break;c=e,o=0|ar[n>>2],a=0|ar[i>>2]}ur=t}else ur=t}(I,0|ar[(g=e+60|0)>>2]),G=0|ar[I>>2],M=0|ar[(Z=4+I|0)>>2],(0|G)!=(0|M)){T=11+y|0,O=U=4+y|0,z=(S=e)+32|0,j=e+48|0;do{J=0|ar[G>>2],N=112+(0|ar[g>>2])|0,F=0|ar[N>>2];do{if(0|F){V=N;A:for(;;){for(R=F;!((0|ar[R+16>>2])>>>0>=J>>>0);){if(!(F=0|ar[R+4>>2]))break A;R=F}if(!(F=0|ar[R>>2])){V=R;break}V=R}if((0|V)!=(0|N)&&(0|ar[V+16>>2])>>>0<=J>>>0){if(F=0|ar[V+20>>2],V=0|ar[V+24>>2],D=V?(bu(V),V):0,!(Q=F)){if(!D)break;du(D);break}yu(y,Q+64|0),F=0|tr[T>>0],V=0|ar[U>>2],4==(0|(F<<24>>24<0?V:255&F))?0|Yu(y,0,-1,30298,4)?(F=0|tr[T>>0],V=0|ar[U>>2],me=23):V=1:me=23;do{if(23==(0|me)){if(4==((me=0)|(F<<24>>24<0?V:255&F))){if(!(0|Yu(y,0,-1,30303,4))){V=1;break}F=0|tr[T>>0],V=0|ar[U>>2]}if(4==(0|(F<<24>>24<0?V:255&F))){if(!(0|Yu(y,0,-1,30308,4))){V=1;break}F=0|tr[T>>0],V=0|ar[U>>2]}if(4==(0|(F<<24>>24<0?V:255&F))){if(!(0|Yu(y,0,-1,30313,4))){V=1;break}F=0|tr[T>>0],V=0|ar[U>>2]}V=4==(0|(F<<24>>24<0?V:255&F))?0==(0|Yu(y,0,-1,30318,4)):0}}while(0);if((0|tr[T>>0])<0&&vu(0|ar[y>>2]),V){for(Y=0|hu(232),ar[Y+4>>2]=0,ar[Y+8>>2]=0,ar[Y>>2]=6392,ar[(V=Y+16|0)>>2]=0,ar[V+4>>2]=0,ar[V+8>>2]=0,ar[Y+28>>2]=30025,ar[Y+32>>2]=S,ar[Y+36>>2]=J,ve=Y+60|0,rA=Y+80|0,iA=Y+96|0,F=Y+176|0,R=Y+112|0,ar[(we=Y+40|0)>>2]=0,ar[we+4>>2]=0,ar[we+8>>2]=0,ar[we+12>>2]=0,or[we+16>>1]=0,ar[ve>>2]=0,ar[ve+4>>2]=0,ar[ve+8>>2]=0,ar[ve+12>>2]=0,or[ve+16>>1]=0,ar[rA>>2]=0,ar[rA+4>>2]=0,ar[rA+8>>2]=0,tr[rA+12>>0]=0,ar[iA>>2]=0,ar[iA+4>>2]=0,ar[iA+8>>2]=0,tr[iA+12>>0]=0,rA=(iA=R)+60|0;((ar[iA>>2]=0)|(iA=iA+4|0))<(0|rA););for(tr[R+60>>0]=0,rA=(iA=F)+52|0;((ar[iA>>2]=0)|(iA=iA+4|0))<(0|rA););ar[y>>2]=V,ar[O>>2]=Y,N=V,bu(_=Y),V=0|ar[W>>2];do{if(V){for(R=z;;)if(F=0|ar[V+16>>2],J>>>0>>0){if(!(F=0|ar[V>>2])){me=41;break}R=V,V=F}else{if(J>>>0<=F>>>0){me=45;break}if(!(F=0|ar[(R=V+4|0)>>2])){me=44;break}V=F}if(41==(0|me)){me=0,R=F=V;break}if(44==(0|me)){me=0,F=V;break}if(45==(0|me)){me=0,F=V;break}}else R=F=W}while(0);0|ar[R>>2]?du(Y):(V=0|hu(28),ar[V+16>>2]=J,ar[V+20>>2]=N,ar[V+24>>2]=_,ar[V>>2]=0,ar[V+4>>2]=0,ar[V+8>>2]=F,ar[R>>2]=V,(F=0|ar[ar[ge>>2]>>2])&&(ar[ge>>2]=F,V=0|ar[R>>2]),so(0|ar[z>>2],V),ar[P>>2]=1+(0|ar[P>>2]));do{if(!(0|tr[Q+124>>0])){do{if((0|J)==(0|ar[56+(0|ar[84+(0|ar[g>>2])>>2])>>2])){if(V=0|ar[y>>2],tr[V+40>>0]=1,0|(F=0|ar[O>>2])&&bu(F),ar[H>>2]=V,V=0|ar[x>>2],ar[x>>2]=F,!V)break;du(V)}}while(0);if((0|(V=0|ar[K>>2]))==(0|ar[j>>2])){kl(L,y);break}ar[V>>2]=ar[y>>2],F=0|ar[O>>2],(ar[V+4>>2]=F)&&(bu(F),V=0|ar[K>>2]),ar[K>>2]=V+8}}while(0);0|(V=0|ar[O>>2])&&du(V)}0|D&&du(D)}}}while(0);G=G+4|0}while((0|G)!=(0|M))}A:do{if(0|ar[H>>2]){if((0|(G=0|ar[ge>>2]))!=(0|W))for(M=ye+4|0,T=ye+8|0,U=uA+4|0,S=e+72|0,j=Ee+12|0,H=Ee+4|0,x=O=Ee+64|0,P=Ee+136|0,L=Ee+140|0,q=Ee+60|0,$=11+y|0,AA=z=Ee+8|0,eA=e+76|0,rA=lA+11|0,iA=(K=Ee+44|0)+11|0,nA=(fA=Be+8|0)+11|0,tA=A+8|0,J=G;;){if(Q=J+20|0,ar[ye>>2]=0,ar[M>>2]=0,ar[T>>2]=0,vo(Be,0|ar[g>>2],0|ar[J+16>>2],ye),0|ar[Be>>2])ve=0|ar[(we=Be)+4>>2],ar[(G=A)>>2]=ar[we>>2],ar[G+4>>2]=ve,ar[tA>>2]=ar[fA>>2],ar[tA+4>>2]=ar[fA+4>>2],ar[tA+8>>2]=ar[fA+8>>2],ar[fA>>2]=0,ar[fA+4>>2]=0,ar[fA+8>>2]=0,G=1;else{G=0|ar[ye>>2],D=0|ar[M>>2];e:do{if((0|G)==(0|D))G=6;else for(N=0;;){V=0|ar[(_=G+4|0)>>2];do{if(0!=(0|V)&&0!=(0|(oA=0|qu(V,128,872,0)))){if((V=0|ar[G+8>>2])?bu(V):V=0,F=0|ar[oA+56>>2],R=0|ar[oA+60>>2],F>>>0<=(0|ar[S>>2])>>>0&&R>>>0<=(0|ar[eA>>2])>>>0){Y=0|ar[Q>>2],ar[Y+24>>2]=F,ar[Y+28>>2]=R,ar[Y+32>>2]=F,ar[Y+36>>2]=R,Y=V,me=94;break}ar[z>>2]=4524,ar[Ee>>2]=188,ar[O>>2]=208,ar[H>>2]=0,Jf(x,j),ar[P>>2]=0,ar[L>>2]=-1,ar[Ee>>2]=4504,ar[O>>2]=4544,ar[z>>2]=4524,Sf(j),ar[j>>2]=4340,ar[K>>2]=0,ar[K+4>>2]=0,ar[K+8>>2]=0,ar[K+12>>2]=0,ar[q>>2]=24,ar[y>>2]=0,ar[4+y>>2]=0,ar[8+y>>2]=0,Xe(j,y),(0|tr[$>>0])<0&&vu(0|ar[y>>2]),ve=0|We(0|Lf(0|We(0|Lf(0|We(AA,30366,11),F),30170,1),R),30378,32),ve=0|We(0|Lf(ve,0|ar[S>>2]),30170,1),We(0|Lf(ve,0|ar[eA>>2]),30086,1),Ie(lA,j),oo(A,6,1e3,lA),(0|tr[rA>>0])<0&&vu(0|ar[lA>>2]),ar[Ee>>2]=4504,ar[O>>2]=4544,ar[AA>>2]=4524,ar[j>>2]=4340,(0|tr[iA>>0])<0&&vu(0|ar[K>>2]),kf(j),bf(O),R=1,F=N}else me=83}while(0);if(83==(0|me)&&(me=N?(Y=0,94):(Y=F=0,109)),94==(0|me))if(V=(me=0)|ar[_>>2]){F=(F=0|qu(V,128,744,0))?((V=0|ar[G+8>>2])?bu(V):V=0,me=0|ar[Q>>2],ve=0|eo(F),F=0|ro(F),ar[me+24>>2]=ve,ar[me+28>>2]=F,V):0,V=0|ar[_>>2];do{if(0|V&&0|(aA=0|qu(V,128,808,0))){switch((V=0|ar[G+8>>2])?bu(V):V=0,0|ar[aA+56>>2]){case 270:case 90:we=0|ar[Q>>2],me=we+28|0,ve=0|ar[(we=we+24|0)>>2],ar[we>>2]=ar[me>>2],ar[me>>2]=ve}if(!V)break;du(V)}}while(0);me=(F=(F&&du(F),1),109)}else R=0,F=1,V=Y;do{if(109==(0|me))if((me=0)!=(0|(V=0|ar[_>>2]))&&0!=(0|(cA=0|qu(V,128,384,0)))){if((V=0|ar[G+8>>2])?bu(V):V=0,R=0|ar[cA+56>>2],N=0|ar[cA+60>>2],Zl(R=((_=0==(0|N))?(ve=0|ar[Q>>2],ar[uA>>2]=R,ar[U>>2]=0):(bu(N),ve=0|ar[Q>>2],ar[uA>>2]=R,bu(ar[U>>2]=N)),ve),uA),0|(R=0|ar[U>>2])&&du(R),_||du(N),!V){R=0,V=Y;break}du(V),R=0,V=Y}else R=0,V=Y}while(0);if(0|V&&du(V),G=G+12|0,0|R){G=1;break e}if((0|G)==(0|D)){G=6;break}N=F}}while(0);G=6==(0|G)?0:G,(0|tr[nA>>0])<0&&vu(0|ar[fA>>2])}if(0|(V=0|ar[ye>>2])){if((0|(F=0|ar[M>>2]))!=(0|V)){for(;R=F+-12|0,ar[M>>2]=R,(0|(F=(F=0|ar[F+-4>>2])?(du(F),0|ar[M>>2]):R))!=(0|V););V=0|ar[ye>>2]}vu(V)}if(0|G)break A;if(G=0|ar[J+4>>2])for(;V=0|ar[G>>2];)G=V;else if(G=0|ar[(V=J+8|0)>>2],(0|ar[G>>2])!=(0|J))for(;ve=0|ar[V>>2],G=0|ar[(V=ve+8|0)>>2],(0|ar[G>>2])!=(0|ve););if((0|G)==(0|W))break;J=G}we=0|ar[g>>2],ke=0|ar[we+76>>2],we=0|ar[we+80>>2],(ve=0==(0|we))||bu(we),he=0!=(0|ke);e:do{if(he&&(bA=0|ar[ge>>2],(0|bA)!=(0|W))){S=ye+4|0,z=8+i|0,j=4+i|0,H=11+i|0,x=8+n|0,P=4+n|0,L=11+n|0,K=4+t|0,q=8+f|0,$=4+f|0,AA=11+f|0,fA=8+r|0,nA=4+r|0,tA=11+r|0,oA=Be+4|0,aA=Be+8|0,uA=12+p|0,dA=cA=64+p|0,kA=136+p|0,hA=140+p|0,vA=60+p|0,mA=11+y|0,ZA=11+o|0,pA=(wA=44+p|0)+11|0,yA=O=4+y|0,XA=8+u|0,WA=4+u|0,IA=11+u|0,CA=8+b|0,GA=4+b|0,VA=11+b|0,NA=8+s|0,_A=4+s|0,YA=11+s|0,QA=8+d|0,DA=4+d|0,JA=11+d|0,MA=RA=EA=sA=4+p|0,SA=8+c|0,zA=(OA=8+l|0)+11|0,jA=TA=gA=lA=8+p|0,HA=FA=BA=11+p|0,xA=8+k|0,PA=4+k|0,LA=11+k|0,KA=8+h|0,qA=4+h|0,$A=11+h|0,Ae=4+w|0,ee=de+4|0,fe=re=11+c|0,ne=ie=UA=4+c|0,te=11+l|0,oe=4+l|0,ae=8+a|0,ce=4+a|0,le=11+a|0,be=(ue=Ee+8|0)+11|0,se=A+8|0;r:for(;;){if(io(ye,ke,0|ar[20+(0|ar[(M=bA+20|0)>>2])>>2]),V=0|ar[ye>>2],T=0|ar[S>>2],(0|V)==(0|T))G=10;else{U=bA+24|0;i:for(;;){G=0|ar[V+20>>2];f:do{if((0|G)<1953000802){switch(0|G){case 1635088492:break;default:break f}if(ar[Be>>2]=0,ar[oA>>2]=0,ar[aA>>2]=0,vo(Ee,0|ar[g>>2],0|ar[20+(0|ar[M>>2])>>2],Be),0|ar[Ee>>2])iA=0|ar[(rA=Ee)+4>>2],ar[(G=A)>>2]=ar[rA>>2],ar[G+4>>2]=iA,ar[se>>2]=ar[ue>>2],ar[se+4>>2]=ar[ue+4>>2],ar[se+8>>2]=ar[ue+8>>2],ar[ue>>2]=0,ar[ue+4>>2]=0,ar[ue+8>>2]=0,G=1;else{G=0|ar[Be>>2],Q=0|ar[oA>>2];do{if((0|G)==(0|Q))F=0,me=197;else{for(F=Y=0;;){R=0|ar[G+4>>2];do{if(R){if(!(_=0|qu(R,128,840,0))){R=Y;break}R=_,(N=0|ar[G+8>>2])?bu(N):N=0;do{if(_){if(0|(_=N)&&bu(N),!F){F=_;break}du(F),F=_}else R=Y}while(0);if(!N)break;du(N)}else R=Y}while(0);if((0|(G=G+12|0))==(0|Q))break;Y=R}if(!(D=R)){me=197;break}Ge(y,V+52|0);n:do{if(4==((0|ar[yA>>2])-(0|ar[y>>2])|0)){yu(p,J=D+56|0),25==(0|((iA=0|tr[BA>>0])<<24>>24<0?0|ar[EA>>2]:255&iA))&&0==(0|Yu(p,0,-1,30621,25))?G=1:(yu(c,J),26==(0|((iA=0|tr[fe>>0])<<24>>24<0?0|ar[ne>>2]:255&iA))&&0==(0|Yu(c,0,-1,30647,26))?G=1:(yu(l,J),43==(0|((R=0|tr[te>>0])<<24>>24<0?0|ar[oe>>2]:255&R))?(G=0==(0|Yu(l,0,-1,30674,43)),R=0|tr[te>>0]):G=0,R<<24>>24<0&&vu(0|ar[l>>2])),(0|tr[fe>>0])<0&&vu(0|ar[c>>2])),(0|tr[BA>>0])<0&&vu(0|ar[p>>2]);t:do{if(G){R=0|ar[W>>2];do{if(0|R){_=0|ar[ar[y>>2]>>2],G=W;o:for(;;){for(N=R;!((0|ar[N+16>>2])>>>0>=_>>>0);){if(!(R=0|ar[N+4>>2]))break o;N=R}if(!(R=0|ar[N>>2])){G=N;break}G=N}if((0|G)==(0|W))break;if(_>>>0<(0|ar[G+16>>2])>>>0)break;_=0|ar[G+20>>2],Y=0|ar[G+24>>2],(Q=0==(0|Y))||bu(Y),G=0|ar[M>>2],R=G;do{if((0|G)==(0|_)){for(ar[b>>2]=0,ar[4+b>>2]=0,ar[8+b>>2]=0,G=0|hu(32),ar[b>>2]=G,ar[CA>>2]=-2147483616,ar[GA>>2]=30,eA=30754,rA=(iA=G)+30|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+30>>0]=0,oo(A,2,2e3,b),0<=(0|tr[VA>>0])){G=1;break}vu(0|ar[b>>2]),G=1}else{if((0|ar[G+24>>2])!=(0|ar[_+24>>2])){G=0;break}if((0|ar[G+28>>2])!=(0|ar[_+28>>2])){G=0;break}if(N=0|ar[ar[y>>2]>>2],tr[G+60>>0]=1,ar[G+64>>2]=N,tr[G+61>>0]=1,0|(N=0|ar[U>>2])&&bu(N),ar[_+68>>2]=R,G=0|ar[(iA=_+72|0)>>2],ar[iA>>2]=N,!G){G=0;break}du(G),G=0}}while(0);if(Q||du(Y),G){G=1;break n}break t}}while(0);for(ar[u>>2]=0,ar[4+u>>2]=0,ar[8+u>>2]=0,G=0|hu(48),ar[u>>2]=G,ar[XA>>2]=-2147483600,ar[WA>>2]=35,eA=30718,rA=(iA=G)+35|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+35>>0]=0,oo(A,2,2e3,u),0<=(0|tr[IA>>0])){G=1;break n}vu(0|ar[u>>2]),G=1;break n}}while(0);yu(p,J),26==(0|((iA=0|tr[FA>>0])<<24>>24<0?0|ar[RA>>2]:255&iA))&&0==(0|Yu(p,0,-1,30785,26))?G=1:(yu(c,J),43==(0|((R=0|tr[re>>0])<<24>>24<0?0|ar[ie>>2]:255&R))?(G=0==(0|Yu(c,0,-1,30812,43)),R=0|tr[re>>0]):G=0,R<<24>>24<0&&vu(0|ar[c>>2])),(0|tr[FA>>0])<0&&vu(0|ar[p>>2]);t:do{if(G){Y=0|ar[M>>2],G=0|ar[y>>2],N=0|ar[G>>2],tr[Y+76>>0]=1,ar[Y+80>>2]=N,N=0|ar[W>>2],Q=Y;do{if(0|N){_=0|ar[G>>2],G=W;o:for(;;){for(R=N;!((0|ar[R+16>>2])>>>0>=_>>>0);)if(!(R=0|ar[R+4>>2]))break o;if(!(N=0|ar[R>>2])){G=R;break}G=R}if((0|G)==(0|W))break;if(_>>>0<(0|ar[G+16>>2])>>>0)break;if(G=0|ar[G+20>>2],(0|Y)==(0|G)){for(ar[d>>2]=0,ar[4+d>>2]=0,ar[8+d>>2]=0,G=0|hu(32),ar[d>>2]=G,ar[QA>>2]=-2147483616,ar[DA>>2]=30,eA=30892,rA=(iA=G)+30|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+30>>0]=0,oo(A,2,2e3,d),0<=(0|tr[JA>>0])){G=1;break n}vu(0|ar[d>>2]),G=1;break n}if(0|(R=0|ar[U>>2])&&bu(R),ar[G+84>>2]=Q,G=0|ar[(iA=G+88|0)>>2],ar[iA>>2]=R,0|G&&du(G),ar[p>>2]=0,ar[MA>>2]=0,ar[TA>>2]=0,R=0|ar[D+68>>2],0|(G=(0|ar[D+72>>2])-R|0)){if((0|G)<0)break r;rA=0|hu(G),ar[MA>>2]=rA,ar[p>>2]=rA,iA=rA+G|0,ar[jA>>2]=iA,hb(0|rA,0|R,0|G),ar[MA>>2]=iA}if(ar[c>>2]=0,ar[UA>>2]=0,ar[SA>>2]=0,Vl(l,p,c),G=0|ar[c>>2],_=0|ar[UA>>2],(0|G)!=(0|_))do{R=0|ar[G>>2];do{if(0|R){if(!(N=0|qu(R,1472,1480,0)))break;for((R=0|ar[G+4>>2])?bu(R):R=0,iA=0|ar[M>>2],tr[iA+92>>0]=1,eA=N+8|0,rA=(iA=iA+96|0)+56|0;ar[iA>>2]=ar[eA>>2],eA=eA+4|0,(0|(iA=iA+4|0))<(0|rA););if(!R)break;du(R)}}while(0);G=G+8|0}while((0|G)!=(0|_));if((0|tr[zA>>0])<0&&vu(0|ar[OA>>2]),0|(G=0|ar[c>>2])){if((0|(R=0|ar[UA>>2]))!=(0|G)){for(;N=R+-8|0,ar[UA>>2]=N,(0|(R=(R=0|ar[R+-4>>2])?(du(R),0|ar[UA>>2]):N))!=(0|G););G=0|ar[c>>2]}vu(G)}0|(G=0|ar[p>>2])&&((0|ar[MA>>2])!=(0|G)&&(ar[MA>>2]=G),vu(G));break t}}while(0);for(ar[s>>2]=0,ar[4+s>>2]=0,ar[8+s>>2]=0,G=0|hu(48),ar[s>>2]=G,ar[NA>>2]=-2147483600,ar[_A>>2]=35,eA=30856,rA=(iA=G)+35|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+35>>0]=0,oo(A,2,2e3,s),0<=(0|tr[YA>>0])){G=1;break n}vu(0|ar[s>>2]),G=1;break n}}while(0);iA=0|ar[M>>2],rA=0|ar[ar[y>>2]>>2],yu(p,J),tr[iA+156>>0]=1,ar[iA+152>>2]=rA,Eu(iA+160|0,p),(0|tr[HA>>0])<0&&vu(0|ar[p>>2]),R=0|ar[W>>2];do{if(0|R){_=0|ar[ar[y>>2]>>2],G=W;t:for(;;){for(N=R;!((0|ar[N+16>>2])>>>0>=_>>>0);){if(!(R=0|ar[N+4>>2]))break t;N=R}if(!(R=0|ar[N>>2])){G=N;break}G=N}if((0|G)==(0|W))break;if(_>>>0<(0|ar[G+16>>2])>>>0)break;if(R=0|ar[M>>2],N=0|ar[G+20>>2],(0|R)==(0|N)){for(ar[h>>2]=0,ar[4+h>>2]=0,ar[8+h>>2]=0,G=0|hu(32),ar[h>>2]=G,ar[KA>>2]=-2147483616,ar[qA>>2]=28,eA=30957,rA=(iA=G)+28|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+28>>0]=0,oo(A,2,2e3,h),0<=(0|tr[$A>>0])){G=1;break n}vu(0|ar[h>>2]),G=1;break n}ar[w>>2]=R,G=0|ar[U>>2],0|(ar[Ae>>2]=G)&&bu(G),R=0|ar[(G=N+176|0)>>2];do{if(R>>>0<(0|ar[N+180>>2])>>>0)ar[R>>2]=ar[w>>2],ar[R+4>>2]=ar[Ae>>2],ar[w>>2]=0,ar[Ae>>2]=0,ar[G>>2]=R+8;else{if(yl(N+172|0,w),!(G=0|ar[Ae>>2]))break;du(G)}}while(0);if(ar[de>>2]=ar[M>>2],G=0|ar[U>>2],ar[ee>>2]=G){bu(G),pl(e,de),du(G),G=0;break n}pl(e,de),G=0;break n}}while(0);for(ar[k>>2]=0,ar[4+k>>2]=0,ar[8+k>>2]=0,G=0|hu(48),ar[k>>2]=G,ar[xA>>2]=-2147483600,ar[PA>>2]=33,eA=30923,rA=(iA=G)+33|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+33>>0]=0,oo(A,2,2e3,k),0<=(0|tr[LA>>0])){G=1;break}vu(0|ar[k>>2]),G=1}else{for(ar[a>>2]=0,ar[4+a>>2]=0,ar[8+a>>2]=0,G=0|hu(48),ar[a>>2]=G,ar[ae>>2]=-2147483600,ar[ce>>2]=35,eA=30585,rA=(iA=G)+35|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+35>>0]=0,oo(A,2,0,a),0<=(0|tr[le>>0])){G=1;break}vu(0|ar[a>>2]),G=1}}while(0);0|(R=0|ar[y>>2])&&((0|(N=0|ar[yA>>2]))!=(0|R)&&(ar[yA>>2]=N+(~((N+-4-R|0)>>>2)<<2)),vu(R))}}while(0);197==(0|me)&&(me=0,ar[lA>>2]=4524,ar[p>>2]=188,ar[cA>>2]=208,ar[sA>>2]=0,Jf(dA,uA),ar[kA>>2]=0,ar[hA>>2]=-1,ar[p>>2]=4504,ar[cA>>2]=4544,ar[lA>>2]=4524,Sf(uA),ar[uA>>2]=4340,ar[wA>>2]=0,ar[wA+4>>2]=0,ar[wA+8>>2]=0,ar[wA+12>>2]=0,ar[vA>>2]=24,ar[y>>2]=0,ar[4+y>>2]=0,ar[8+y>>2]=0,Xe(uA,y),(0|tr[mA>>0])<0&&vu(0|ar[y>>2]),Lf(iA=0|We(gA,30557,27),0|ar[20+(0|ar[M>>2])>>2]),Ie(o,uA),oo(A,2,123,o),(0|tr[ZA>>0])<0&&vu(0|ar[o>>2]),ar[p>>2]=4504,ar[cA>>2]=4544,ar[gA>>2]=4524,ar[uA>>2]=4340,(0|tr[pA>>0])<0&&vu(0|ar[wA>>2]),kf(uA),bf(cA),G=1),F&&du(F)}if((0|tr[be>>0])<0&&vu(0|ar[ue>>2]),0|(F=0|ar[Be>>2])){if((0|(R=0|ar[oA>>2]))!=(0|F)){for(;N=R+-12|0,ar[oA>>2]=N,(0|(R=(R=0|ar[R+-4>>2])?(du(R),0|ar[oA>>2]):N))!=(0|F););F=0|ar[Be>>2]}vu(F)}if(0|G)break i}else{switch(0|G){case 1953000802:break;default:break f}Ge(y,V+52|0),iA=0|ar[y>>2],G=iA;n:do{if(4==((0|ar[O>>2])-iA|0)){_=0|ar[M>>2],R=0|ar[G>>2],tr[_+41>>0]=1,ar[_+44>>2]=R,R=0|ar[W>>2],Y=_;do{if(0|R){N=0|ar[G>>2],G=W;t:for(;;){for(F=R;!((0|ar[F+16>>2])>>>0>=N>>>0);)if(!(F=0|ar[F+4>>2]))break t;if(!(R=0|ar[F>>2])){G=F;break}G=F}if((0|G)==(0|W))break;if(N>>>0<(0|ar[G+16>>2])>>>0)break;if(F=0|ar[G+20>>2],0|tr[F+41>>0]){for(ar[f>>2]=0,ar[4+f>>2]=0,ar[8+f>>2]=0,G=0|hu(48),ar[f>>2]=G,ar[q>>2]=-2147483600,ar[$>>2]=38,eA=30483,rA=(iA=G)+38|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+38>>0]=0,oo(A,2,2e3,f),0<=(0|tr[AA>>0])){G=1;break n}vu(0|ar[f>>2]),G=1;break n}if((0|_)==(0|F)){for(ar[n>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,G=0|hu(48),ar[n>>2]=G,ar[x>>2]=-2147483600,ar[P>>2]=34,eA=30522,rA=(iA=G)+34|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+34>>0]=0,oo(A,2,2e3,n),0<=(0|tr[L>>0])){G=1;break n}vu(0|ar[n>>2]),G=1;break n}if((0|(G=0|ar[(R=F+52|0)>>2]))==(0|ar[F+56>>2])?kl(F+48|0,M):(ar[G>>2]=Y,F=0|ar[U>>2],(ar[G+4>>2]=F)&&(bu(F),G=0|ar[R>>2]),ar[R>>2]=G+8),ar[t>>2]=ar[M>>2],G=0|ar[U>>2],ar[K>>2]=G){bu(G),pl(e,t),du(G),G=0;break n}pl(e,t),G=0;break n}}while(0);for(ar[i>>2]=0,ar[4+i>>2]=0,ar[8+i>>2]=0,G=0|hu(48),ar[i>>2]=G,ar[z>>2]=-2147483600,ar[j>>2]=41,eA=30441,rA=(iA=G)+41|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););tr[G+41>>0]=0,oo(A,2,2e3,i),G=((0|tr[H>>0])<0&&vu(0|ar[i>>2]),1)}else{for(ar[r>>2]=0,ar[4+r>>2]=0,ar[8+r>>2]=0,G=0|hu(32),ar[r>>2]=G,ar[fA>>2]=-2147483616,ar[nA>>2]=29,eA=30411,rA=(iA=G)+29|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););tr[G+29>>0]=0,oo(A,2,0,r),G=((0|tr[tA>>0])<0&&vu(0|ar[r>>2]),1)}}while(0);if(0|(F=0|ar[y>>2])&&((0|(R=0|ar[O>>2]))!=(0|F)&&(ar[O>>2]=R+(~((R+-4-F|0)>>>2)<<2)),vu(F)),0|G){G=1;break i}}}while(0);if((0|(V=V+64|0))==(0|T)){G=10;break}}V=0|ar[ye>>2]}if(Y=10==(0|G)?0:G,0|V){if((0|(G=0|ar[S>>2]))==(0|V))G=V;else{for(;F=G+-64|0,ar[S>>2]=F,0|(R=0|ar[G+-12>>2])&&((0|(_=0|ar[(N=G+-8|0)>>2]))!=(0|R)&&(ar[N>>2]=_+(~((_+-4-R|0)>>>2)<<2)),vu(R)),ar[F>>2]=4264,0|(F=0|ar[G+-40>>2])&&((0|ar[(G=G+-36|0)>>2])!=(0|F)&&(ar[G>>2]=F),vu(F)),(0|(G=0|ar[S>>2]))!=(0|V););G=0|ar[ye>>2]}vu(G)}switch(0|Y){case 8:me=362;break e;case 0:break;default:break e}if(G=0|ar[bA+4>>2])for(;V=0|ar[G>>2];)G=V;else if(G=0|ar[(V=bA+8|0)>>2],(0|ar[G>>2])!=(0|bA))for(;bA=0|ar[V>>2],G=0|ar[(V=bA+8|0)>>2],(0|ar[G>>2])!=(0|bA););if((0|G)==(0|W)){me=362;break e}bA=G}zl()}else me=362}while(0);e:do{if(362==(0|me)){G=0|ar[ge>>2];r:do{if((0|G)!=(0|W)){for(Q=11+y|0,J=D=4+y|0,M=4+v|0,T=8+m|0,U=4+m|0,S=11+m|0,Y=G;;){if(R=0|ar[20+(0|ar[(_=Y+20|0)>>2])>>2],N=112+(0|ar[g>>2])|0,G=0|ar[N>>2]){V=N;i:for(;;){for(F=G;!((0|ar[F+16>>2])>>>0>=R>>>0);){if(!(G=0|ar[F+4>>2]))break i;F=G}if(!(G=0|ar[F>>2])){V=F;break}V=F}N=(0|V)!=(0|N)&&(0|ar[V+16>>2])>>>0<=R>>>0?(G=0|ar[V+20>>2],(V=0|ar[V+24>>2])?(bu(V),V):0):G=0}else N=G=0;if(yu(y,G+64|0),4==(0|((G=0|tr[Q>>0])<<24>>24<0?0|ar[D>>2]:255&G))?(V=0==(0|Yu(y,0,-1,30298,4)),G=0|tr[Q>>0]):V=0,G<<24>>24<0&&vu(0|ar[y>>2]),V){G=0|ar[g>>2],ar[y>>2]=ar[G+52>>2],V=0|ar[G+56>>2],(ar[J>>2]=V)&&(bu(V),G=0|ar[g>>2]),V=0|ar[G+44>>2],F=0|ar[G+48>>2],(R=0==(0|F))||bu(F),Lt(v,V,0|ar[20+(0|ar[_>>2])>>2],y,1752589123),G=0==(0|ar[v>>2]),0|(V=0|ar[M>>2])&&du(V);do{if(G){for(ar[m>>2]=0,ar[4+m>>2]=0,ar[8+m>>2]=0,G=0|hu(48),ar[m>>2]=G,ar[T>>2]=-2147483600,ar[U>>2]=35,eA=30986,rA=(iA=G)+35|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[G+35>>0]=0,oo(A,2,106,m),0<=(0|tr[S>>0])){G=1;break}vu(0|ar[m>>2]),G=1}else G=0}while(0);R||du(F),0|(V=0|ar[J>>2])&&du(V),G||(me=392)}else me=392;if(392==(0|me)&&(G=me=0),0|N&&du(N),0|G)break e;G=0|ar[Y+4>>2];do{if(G)for(;V=0|ar[G>>2];)G=V;else{if(G=0|ar[(V=Y+8|0)>>2],(0|ar[G>>2])==(0|Y))break;for(;de=0|ar[V>>2],G=0|ar[(V=de+8|0)>>2],(0|ar[G>>2])!=(0|de););}}while(0);if((0|G)==(0|W))break;Y=G}if((0|(G=0|ar[ge>>2]))!=(0|W)){M=1^he,T=11+y|0,S=U=4+y|0,O=Ze+4|0,z=pe+4|0;do{if(D=G+20|0,_=0|ar[G+16>>2],N=112+(0|ar[g>>2])|0,0|(F=0|ar[N>>2])){V=N;i:for(;;){for(R=F;!((0|ar[R+16>>2])>>>0>=_>>>0);){if(!(F=0|ar[R+4>>2]))break i;R=F}if(!(F=0|ar[R>>2])){V=R;break}V=R}if((0|V)!=(0|N)&&(0|ar[V+16>>2])>>>0<=_>>>0){F=0|ar[V+20>>2],V=0|ar[V+24>>2],J=V?(bu(V),V):0,V=0==(0|F);do{if(V|M)V=V?19:18;else{if(yu(y,F+64|0),4==(0|((V=0|tr[T>>0])<<24>>24<0?0|ar[U>>2]:255&V))?(F=0==(0|Yu(y,0,-1,30303,4)),V=0|tr[T>>0]):F=0,V<<24>>24<0&&vu(0|ar[y>>2]),F){if(fo(y,ke,_,1684630887),(0|(F=0|ar[y>>2]))==(0|ar[S>>2]))V=19;else{N=0|ar[F>>2],F=0|ar[W>>2];do{if(F){V=W;i:for(;;){for(R=F;!((0|ar[R+16>>2])>>>0>=N>>>0);){if(!(F=0|ar[R+4>>2]))break i;R=F}if(!(F=0|ar[R>>2])){V=R;break}V=R}if((0|V)==(0|W)){V=19;break}if(N>>>0<(0|ar[V+16>>2])>>>0){V=19;break}_=0|ar[V+20>>2],Y=0|ar[V+24>>2],(Q=0==(0|Y))||bu(Y),R=0|ar[D>>2],V=0|ar[R+204>>2],R=0|ar[R+208>>2],(N=0==(0|R))||bu(R);do{if(!V){if(V=0|ar[(F=_)+204>>2],F=0|ar[F+208>>2]){bu(F),du(F),V=0!=(0|V);break}V=0!=(0|V);break}V=0}while(0);N||du(R);do{if(V){if(V=0|ar[D>>2],F=0|ar[(R=_)+204>>2],0|(R=0|ar[R+208>>2])&&bu(R),ar[Ze>>2]=F,ar[O>>2]=R,Zl(V,Ze),!(V=0|ar[O>>2]))break;du(V)}}while(0);R=0|ar[D>>2],V=0|ar[R+196>>2],R=0|ar[R+200>>2],(N=0==(0|R))||bu(R);do{if(!V){if(V=0|ar[(F=_)+196>>2],F=0|ar[F+200>>2]){bu(F),du(F),V=0!=(0|V);break}V=0!=(0|V);break}V=0}while(0);N||du(R);do{if(V){if(R=0|ar[D>>2],V=0|ar[(F=_)+196>>2],0|(F=0|ar[F+200>>2])&&bu(F),ar[pe>>2]=V,ar[z>>2]=F,Zl(R,pe),!(V=0|ar[z>>2]))break;du(V)}}while(0);if(Q){V=0;break}du(Y),V=0}else V=19}while(0);F=0|ar[y>>2]}if(0|F&&((0|(R=0|ar[S>>2]))!=(0|F)&&(ar[S>>2]=R+(~((R+-4-F|0)>>>2)<<2)),vu(F)),0|V)break}V=0}}while(0);switch(0|J&&du(J),0|V){case 19:case 0:break;default:break r}}}if(V=0|ar[G+4>>2])for(G=V;V=0|ar[G>>2];)G=V;else if(F=0|ar[(V=G+8|0)>>2],(0|ar[F>>2])==(0|G))G=F;else for(;ge=0|ar[V>>2],G=0|ar[(V=ge+8|0)>>2],(0|ar[G>>2])!=(0|ge););}while((0|G)!=(0|W))}}}while(0);if(V=0|ar[I>>2],T=0|ar[Z>>2],(0|V)==(0|T))G=A+8|0;else{U=Ee+4|0,S=4+p|0,O=8+E|0,z=4+E|0,j=11+E|0,H=4+X|0,x=8+B|0,P=4+B|0,L=11+B|0,q=(K=Be+8|0)+11|0,$=ye+11|0,AA=11+y|0,G=A+8|0;do{for(F=0|ar[V>>2],ho(y,0|ar[g>>2],F),wo(ye,0|ar[g>>2],F),M=0|hu(52),ar[M+4>>2]=0,ar[M+8>>2]=0,ar[M>>2]=6420,R=M+12|0,rA=(iA=M+16|0)+36|0;((ar[iA>>2]=0)|(iA=iA+4|0))<(0|rA););ar[(D=R)>>2]=F,Eu(M+16|0,y),Eu(M+28|0,ye),mo(Be,0|ar[g>>2],F,M+40|0);do{if(0|ar[Be>>2])pe=0|ar[(Ze=Be)+4>>2],ar[(F=A)>>2]=ar[Ze>>2],ar[F+4>>2]=pe,ar[G>>2]=ar[K>>2],ar[G+4>>2]=ar[K+4>>2],ar[G+8>>2]=ar[K+8>>2],ar[K>>2]=0,ar[K+4>>2]=0,ar[K+8>>2]=0,F=1;else{if(he){if(io(Ee,ke,F),R=0|ar[Ee>>2],Q=0|ar[U>>2],(0|R)==(0|Q))F=22;else{for(;;){if(1667527523==(0|ar[R+20>>2])){Ge(p,R+52|0),F=0|ar[p>>2];r:do{if(4==((0|ar[S>>2])-F|0)){Y=0|ar[F>>2],N=0|ar[W>>2];do{if(0|N){F=W;i:for(;;){for(_=N;!((0|ar[_+16>>2])>>>0>=Y>>>0);){if(!(N=0|ar[_+4>>2]))break i;_=N}if(!(N=0|ar[_>>2])){F=_;break}F=_}if((0|F)==(0|W))break;if(Y>>>0<(0|ar[F+16>>2])>>>0)break;if(F=0|ar[F+20>>2],ar[X>>2]=D,bu(ar[H>>2]=M),(_=0|ar[(N=F+188|0)>>2])>>>0<(0|ar[F+192>>2])>>>0){ar[_>>2]=ar[X>>2],ar[_+4>>2]=ar[H>>2],ar[X>>2]=0,ar[H>>2]=0,ar[N>>2]=_+8,F=0;break r}if(Bl(F+184|0,X),!(F=0|ar[H>>2])){F=0;break r}du(F),F=0;break r}}while(0);for(ar[E>>2]=0,ar[4+E>>2]=0,ar[8+E>>2]=0,F=0|hu(48),ar[E>>2]=F,ar[O>>2]=-2147483600,ar[z>>2]=39,eA=31063,rA=(iA=F)+39|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[F+39>>0]=0,oo(A,2,2e3,E),0<=(0|tr[j>>0])){F=1;break}vu(0|ar[E>>2]),F=1}else{for(ar[B>>2]=0,ar[4+B>>2]=0,ar[8+B>>2]=0,F=0|hu(48),ar[B>>2]=F,ar[x>>2]=-2147483600,ar[P>>2]=40,eA=31022,rA=(iA=F)+40|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););if(tr[F+40>>0]=0,oo(A,2,0,B),0<=(0|tr[L>>0])){F=1;break}vu(0|ar[B>>2]),F=1}}while(0);if(0|(N=0|ar[p>>2])&&((0|(_=0|ar[S>>2]))!=(0|N)&&(ar[S>>2]=_+(~((_+-4-N|0)>>>2)<<2)),vu(N)),0|F){F=1;break}}if((0|(R=R+64|0))==(0|Q)){F=22;break}}R=0|ar[Ee>>2]}if(J=22==(0|F),0|R){if((0|(N=0|ar[U>>2]))!=(0|R)){for(;_=N+-64|0,ar[U>>2]=_,0|(Y=0|ar[N+-12>>2])&&((0|(D=0|ar[(Q=N+-8|0)>>2]))!=(0|Y)&&(ar[Q>>2]=D+(~((D+-4-Y|0)>>>2)<<2)),vu(Y)),ar[_>>2]=4264,0|(_=0|ar[N+-40>>2])&&((0|ar[(N=N+-36|0)>>2])!=(0|_)&&(ar[N>>2]=_),vu(_)),(0|(N=0|ar[U>>2]))!=(0|R););R=0|ar[Ee>>2]}vu(R)}if(!J)break}F=0}}while(0);if((0|tr[q>>0])<0&&vu(0|ar[K>>2]),du(M),(0|tr[$>>0])<0&&vu(0|ar[ye>>2]),(0|tr[AA>>0])<0&&vu(0|ar[y>>2]),V=V+4|0,0|F)break e}while((0|V)!=(0|T))}Be=0|ar[(ye=56592)+4>>2],ar[(Ee=A)>>2]=ar[ye>>2],ar[Ee+4>>2]=Be,yu(G,56600)}}while(0);ve||du(we)}else{for(ar[q>>2]=0,ar[q+4>>2]=0,ar[q+8>>2]=0,G=0|hu(48),ar[q>>2]=G,ar[q+8>>2]=-2147483600,ar[q+4>>2]=42,eA=30323,rA=(iA=G)+42|0;tr[iA>>0]=0|tr[eA>>0],eA=eA+1|0,(0|(iA=iA+1|0))<(0|rA););tr[G+42>>0]=0,oo(A,2,2e3,q),(0|tr[q+11>>0])<0&&vu(0|ar[q>>2])}}while(0);if(!(A=0|ar[I>>2]))return ur=C;(0|(G=0|ar[Z>>2]))!=(0|A)&&(ar[Z>>2]=G+(~((G+-4-A|0)>>>2)<<2));vu(A),ur=C}(A,e),0<=(0|tr[o+8+11>>0]))return ur=a;vu(0|ar[o+8>>2]),ur=a}(f,0|ar[e>>2],t?0|ar[r>>2]:r,t?0|ar[r+4>>2]:255&n,1),ao(A,f,0|ar[e>>2]),ur=(0<=(0|tr[(A=f+8|0)+11>>0])||vu(0|ar[A>>2]),i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0,o=0;if(ur=(f=ur)+32|0,n=(i=f)+20|0,t=f+8|0,o=0|oA(),!e)return ar[A>>2]=o,iA((o=0)|o),void(ur=f);!function(A,e,r,i){A|=0,e|=0,r|=0;var f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0;if(ur=(o=ur)+64|0,t=o+44|0,a=o+32|0,f=o+12|0,b=o,!(i|=0))return ar[a>>2]=0,ar[a+4>>2]=0,ar[a+8>>2]=0,oo(t,5,2001,a),(0|tr[a+11>>0])<0&&vu(0|ar[a>>2]),ao(A,t,0|ar[e>>2]),(0|tr[(a=8+t|0)+11>>0])<0&&vu(0|ar[a>>2]),ur=o;sl(t,40+(0|ar[e>>2])|0),a=0|ar[t>>2],c=0|ar[(n=4+t|0)>>2];A:do{if((0|a)!=(0|c)){for(;l=0|ar[a>>2],(0|ar[l+20>>2])!=(0|r);)if((0|(a=a+8|0))==(0|c)){a=0,s=13;break A}u=l,c=0|ar[a+4>>2],0|(a=c)&&bu(c),l?(r=0|hu(16),ar[r>>2]=0,ar[r+4>>2]=0,ar[r+8>>2]=0,ar[r+12>>2]=0,ar[i>>2]=r,c?(bu(c),c=0|ar[(b=r+4|0)>>2],ar[r>>2]=u,ar[b>>2]=a,0|c&&du(c)):(ar[r>>2]=u,ar[r+4>>2]=a),c=0|ar[i>>2],r=0|ar[e>>2],0|(l=0|ar[e+4>>2])&&bu(l),ar[c+8>>2]=r,c=0|ar[(i=c+12|0)>>2],ar[i>>2]=l,0|c&&du(c),ao(A,56592,0|ar[e>>2])):s=13}else a=0,s=13}while(0);13==(0|s)&&(ar[b>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,oo(f,5,2e3,b),(0|tr[b+11>>0])<0&&vu(0|ar[b>>2]),ao(A,f,0|ar[e>>2]),(0|tr[(c=8+f|0)+11>>0])<0&&vu(0|ar[c>>2]));0|a&&du(a);if(0|(a=0|ar[t>>2])){if((0|(c=0|ar[n>>2]))!=(0|a)){for(;r=c+-8|0,ar[n>>2]=r,(0|(c=(c=0|ar[c+-4>>2])?(du(c),0|ar[n>>2]):r))!=(0|a););a=0|ar[t>>2]}vu(a)}ur=o}(t,e,r,n),t=0|ar[t>>2]?(n=0|hu(12),ar[n>>2]=ar[t>>2],ar[n+4>>2]=ar[t+4>>2],ar[n+8>>2]=ar[t+8>>2],ar[i>>2]=n,0|cA(1392,0|i)):(ar[i>>2]=ar[n>>2],0|cA(1320,0|i)),ar[A>>2]=t,iA(0|o),ur=f},function(A,e,r){r|=0,ar[(e|=0)+(0|ar[(A|=0)>>2])>>2]=r},function(A,e,r){r|=0,ar[(e|=0)+(0|ar[(A|=0)>>2])>>2]=r},function(A,e,r){sr(44456,35137,51,35153)},function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0;if(0<(0|(r|=0))){f=0;do{for(n=0|br(f,r),i=0;ar[A+((t=i+n|0)<<2)>>2]=or[e+(t<<1)>>1],(0|(i=i+1|0))!=(0|r););f=f+1|0}while((0|f)!=(0|r))}},function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0,o=0;if(0<(0|(r|=0))){f=0;do{for(t=0|br(f,r),n=i=0;i=(0|or[e+((o=n+t|0)<<1)>>1])+i|0,ar[A+(o<<2)>>2]=i,(0|(n=n+1|0))!=(0|r););f=f+1|0}while((0|f)!=(0|r))}},function(A,e,r){A|=0,e|=0;var i=0,f=0,n=0,t=0;if(0<(0|(r|=0))){f=0;do{for(n=i=0;t=(0|br(n,r))+f|0,i=(0|or[e+(t<<1)>>1])+i|0,ar[A+(t<<2)>>2]=i,(0|(n=n+1|0))!=(0|r););f=f+1|0}while((0|f)!=(0|r))}},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0;for(ur=(f=ur)+32|0,i=f,n=0;t=0|or[e+(n<<1)>>1],l=(74*(o=0|or[e+(n+4<<1)>>1])|0)+(29*t|0)+(84*(a=0|or[e+(n+8<<1)>>1])|0)+(55*(c=0|or[e+(n+12<<1)>>1])|0)+64>>7,or[i+(n<<1)>>1]=(0|l)<-32768?-32768:65535&((0|l)<32767?l:32767),l=(0|br(c,-84))+((0|br(a,-29))+((74*o|0)+(55*t|0)))+64>>7,or[i+8+(n<<1)>>1]=(0|l)<-32768?-32768:65535&((0|l)<32767?l:32767),l=(74*c|0)+((0|br(a,-74))+(74*t|0))+64>>7,or[i+16+(n<<1)>>1]=(0|l)<-32768?-32768:65535&((0|l)<32767?l:32767),t=(0|br(c,-29))+((55*a|0)+((0|br(o,-74))+(84*t|0)))+64>>7,or[i+24+(n<<1)>>1]=(0|t)<-32768?-32768:65535&((0|t)<32767?t:32767),4!=(0|(n=n+1|0)););for(n=0;l=0|br(n,r),c=0|or[i+(n<<3)>>1],u=(74*(a=0|or[i+(n<<3)+2>>1])|0)+(29*c|0)+(84*(o=0|or[i+(n<<3)+4>>1])|0)+(55*(t=0|or[i+(n<<3)+6>>1])|0)+2048>>12,u=(0|cr[(e=A+l|0)>>0])+((0|u)<-32768?-32768:(0|u)<32767?u:32767)|0,tr[e>>0]=(0|u)<0?0:255&((0|u)<255?u:255),e=(0|br(t,-84))+((0|br(o,-29))+((74*a|0)+(55*c|0)))+2048>>12,e=(0|cr[(u=A+(l+1)|0)>>0])+((0|e)<-32768?-32768:(0|e)<32767?e:32767)|0,tr[u>>0]=(0|e)<0?0:255&((0|e)<255?e:255),u=(74*t|0)+((0|br(o,-74))+(74*c|0))+2048>>12,u=(0|cr[(e=A+(l+2)|0)>>0])+((0|u)<-32768?-32768:(0|u)<32767?u:32767)|0,tr[e>>0]=(0|u)<0?0:255&((0|u)<255?u:255),c=(0|br(t,-29))+((55*o|0)+((0|br(a,-74))+(84*c|0)))+2048>>12,c=(0|cr[(l=A+(l+3)|0)>>0])+((0|c)<-32768?-32768:(0|c)<32767?c:32767)|0,tr[l>>0]=(0|c)<0?0:255&((0|c)<255?c:255),4!=(0|(n=n+1|0)););ur=f},function(A,e,r){Oo(A|=0,r|=0,4,e|=0,8)},function(A,e,r){Oo(A|=0,r|=0,8,e|=0,8)},function(A,e,r){Oo(A|=0,r|=0,16,e|=0,8)},function(A,e,r){Oo(A|=0,r|=0,32,e|=0,8)},function(A,e,r){A|=0,e|=0;var i,f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0;for(ur=(t=ur)+32|0,n=t,i=(r|=0)<<1,f=3*r|0,o=0;a=0|or[e+(o<<1)>>1],s=(55*(c=0|or[e+(o+r<<1)>>1])|0)+(29*a|0)+(74*(l=0|or[e+(i+o<<1)>>1])|0)+(84*(u=0|or[e+(f+o<<1)>>1])|0)+1>>1,or[n+(o<<1)>>1]=(0|s)<-32768?-32768:65535&((0|s)<32767?s:32767),b=(s=(0|br(u,-74))+(74*(c+a|0)|0)|0)>>1,or[n+(o+4<<1)>>1]=(0|s)<-65536?-32768:65535&((0|b)<32767?b:32767),b=(55*u|0)+((0|br(l,-74))+((0|br(c,-29))+(84*a|0)))+1>>1,or[n+(o+8<<1)>>1]=(0|b)<-32768?-32768:65535&((0|b)<32767?b:32767),a=(0|br(u,-29))+((74*l|0)+((0|br(c,-84))+(55*a|0)))+1>>1,or[n+(o+12<<1)>>1]=(0|a)<-32768?-32768:65535&((0|a)<32767?a:32767),4!=(0|(o=o+1|0)););for(o=0;b=0|or[n+((s=o<<2)<<1)>>1],u=0|or[n+((1|s)<<1)>>1],l=0|or[n+((2|s)<<1)>>1],c=0|or[n+((3|s)<<1)>>1],or[A+(s<<1)>>1]=((55*u|0)+(29*b|0)+(74*l|0)+(84*c|0)+128|0)>>>8,a=((0|br(c,-74))+(74*(u+b|0)|0)+128|0)>>>8&65535,or[A+((1|s)<<1)>>1]=a,a=((55*c|0)+((0|br(l,-74))+((0|br(u,-29))+(84*b|0)))+128|0)>>>8&65535,or[A+((2|s)<<1)>>1]=a,b=((0|br(c,-29))+((74*l|0)+((0|br(u,-84))+(55*b|0)))+128|0)>>>8&65535,or[A+((3|s)<<1)>>1]=b,4!=(0|(o=o+1|0)););ur=t},function(A,e,r){jo(A|=0,4,e|=0,r|=0)},function(A,e,r){jo(A|=0,8,e|=0,r|=0)},function(A,e,r){jo(A|=0,16,e|=0,r|=0)},function(A,e,r){jo(A|=0,32,e|=0,r|=0)},function(A,e,r){A|=0,r|=0;var i,f=0,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0;ur=(i=ur)+32|0,w=i,n=0|or[(e|=0)>>1],o=0|or[e+4>>1],c=0|or[e+2>>1],m=o+n<<16>>16,a=(f=0|or[e+6>>1])+c<<16>>16,or[w>>1]=a+m,or[(s=w+2|0)>>1]=m-a,o=n-o<<16>>16,f=c-f<<16>>16,or[(c=w+4|0)>>1]=f+o,or[(n=w+6|0)>>1]=o-f,f=0|or[e+(r<<1)>>1],o=0|or[e+(r+2<<1)>>1],a=0|or[e+(r+1<<1)>>1],t=o+f<<16>>16,g=(m=0|or[e+(r+3<<1)>>1])+a<<16>>16,or[(h=w+8|0)>>1]=g+t,or[(b=w+10|0)>>1]=t-g,o=f-o<<16>>16,m=a-m<<16>>16,or[(a=w+12|0)>>1]=m+o,or[(f=w+14|0)>>1]=o-m,o=0|or[e+((m=r<<1)<<1)>>1],g=0|or[e+(m+2<<1)>>1],t=0|or[e+((1|m)<<1)>>1],d=(l=(m=0|or[e+(m+3<<1)>>1])+t<<16>>16)+(v=g+o<<16>>16)|0,or[w+16>>1]=d,l=v-l|0,or[w+18>>1]=l,g=o-g<<16>>16,m=t-m<<16>>16,or[(t=w+20|0)>>1]=m+g,or[(o=w+22|0)>>1]=g-m,g=0|or[e+((m=3*r|0)<<1)>>1],v=0|or[e+(m+2<<1)>>1],r=0|or[e+(m+1<<1)>>1],k=(u=(m=0|or[e+(m+3<<1)>>1])+r<<16>>16)+(e=v+g<<16>>16)|0,or[w+24>>1]=k,u=e-u|0,or[w+26>>1]=u,e=(m=r-m<<16>>16)+(v=g-v<<16>>16)|0,or[w+28>>1]=e,or[(r=w+30|0)>>1]=v-m,m=(d=d<<16>>16)+(w=0|or[w>>1])<<16>>16,v=(k=k<<16>>16)+(h=0|or[h>>1])<<16>>16,or[A>>1]=v+m,or[A+8>>1]=m-v,d=w-d<<16>>16,k=h-k<<16>>16,or[A+16>>1]=k+d,or[A+24>>1]=d-k,k=(l=l<<16>>16)+(s=0|or[s>>1])<<16>>16,d=(u=u<<16>>16)+(b=0|or[b>>1])<<16>>16,or[A+2>>1]=d+k,or[A+10>>1]=k-d,l=s-l<<16>>16,u=b-u<<16>>16,or[A+18>>1]=u+l,or[A+26>>1]=l-u,c=0|or[c>>1],u=(t=0|or[t>>1])+c<<16>>16,l=(e=e<<16>>16)+(a=0|or[a>>1])<<16>>16,or[A+4>>1]=l+u,or[A+12>>1]=u-l,t=c-t<<16>>16,e=a-e<<16>>16,or[A+20>>1]=e+t,or[A+28>>1]=t-e,n=0|or[n>>1],e=0|or[o>>1],f=0|or[f>>1],o=e+n<<16>>16,t=(r=0|or[r>>1])+f<<16>>16,or[A+6>>1]=t+o,or[A+14>>1]=o-t,e=n-e<<16>>16,r=f-r<<16>>16,or[A+22>>1]=r+e,or[A+30>>1]=e-r,ur=i},function(A,e,r){A|=0,e|=0,r|=0;var i,f,n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;for(ur=(f=ur)+128|0,i=f,n=0;o=0|br(n,r),w=0|or[e+(o<<1)>>1],l=0|or[e+(o+4<<1)>>1],k=0|or[e+(o+1<<1)>>1],c=0|or[e+(o+5<<1)>>1],t=0|or[e+(o+2<<1)>>1],a=0|or[e+(o+6<<1)>>1],h=0|or[e+(o+3<<1)>>1],d=l+w<<16>>16,u=a+t<<16>>16,s=c+k<<16>>16,b=(o=0|or[e+(o+7<<1)>>1])+h<<16>>16,l=w-l<<16>>16,a=t-a<<16>>16,c=k-c<<16>>16,o=h-o<<16>>16,h=u+d<<16>>16,k=b+s<<16>>16,or[i+((t=n<<3)<<1)>>1]=k+h,or[i+((1|t)<<1)>>1]=h-k,u=d-u<<16>>16,b=s-b<<16>>16,or[i+((2|t)<<1)>>1]=b+u,or[i+((3|t)<<1)>>1]=u-b,b=a+l<<16>>16,u=o+c<<16>>16,or[i+((4|t)<<1)>>1]=u+b,or[i+((5|t)<<1)>>1]=b-u,a=l-a<<16>>16,o=c-o<<16>>16,or[i+((6|t)<<1)>>1]=o+a,or[i+((7|t)<<1)>>1]=a-o,8!=(0|(n=n+1|0)););for(n=0;p=0|or[i+(n<<1)>>1],b=0|or[i+((a=n+32|0)<<1)>>1],m=0|or[i+((v=n+8|0)<<1)>>1],s=0|or[i+((u=n+40|0)<<1)>>1],Z=0|or[i+((t=n+16|0)<<1)>>1],k=0|or[i+((d=n+48|0)<<1)>>1],g=0|or[i+((c=n+24|0)<<1)>>1],e=b+p<<16>>16,o=k+Z<<16>>16,r=s+m<<16>>16,l=(h=0|or[i+((w=n+56|0)<<1)>>1])+g<<16>>16,b=p-b<<16>>16,k=Z-k<<16>>16,s=m-s<<16>>16,h=g-h<<16>>16,g=o+e<<16>>16,m=l+r<<16>>16,or[A+(n<<1)>>1]=m+g,or[A+(v<<1)>>1]=g-m,o=e-o<<16>>16,l=r-l<<16>>16,or[A+(t<<1)>>1]=l+o,or[A+(c<<1)>>1]=o-l,c=k+b<<16>>16,l=h+s<<16>>16,or[A+(a<<1)>>1]=l+c,or[A+(u<<1)>>1]=c-l,k=b-k<<16>>16,h=s-h<<16>>16,or[A+(d<<1)>>1]=h+k,or[A+(w<<1)>>1]=k-h,8!=(0|(n=n+1|0)););ur=f},function(A,e,r){Ho(A|=0,16,e|=0,r|=0)},function(A,e,r){Ho(A|=0,32,e|=0,r|=0)},Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb,Qb],ts=[Db,function(A,e,r,i){A|=0,i|=0,r=(r|=0)+8|0,as[15&ar[16+(0|ar[(e|=0)>>2])>>2]](A,e,0|ar[r>>2],0|ar[r+4>>2],0,i)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0;A:do{if(0|i){for(f=0;;){if((i-f|0)>>>0<4){f=4;break}if(n=(0|cr[r+(f+1)>>0])<<16|(0|cr[r+f>>0])<<24|(0|cr[r+(f+2)>>0])<<8|0|cr[r+(f+3)>>0],(i-(f=f+4|0)|0)>>>0>>0){f=7;break}if(Ve(0|ar[e>>2],r+f|0,n,0,0,0),i>>>0<=(f=n+f|0)>>>0)break A}if(4==(0|f))return ar[A>>2]=ar[1919],ar[A+4>>2]=ar[1920],void(ar[A+8>>2]=ar[1921]);if(7==(0|f))return ar[A>>2]=ar[1919],ar[A+4>>2]=ar[1920],void(ar[A+8>>2]=ar[1921])}}while(0);ar[A>>2]=ar[1904],ar[A+4>>2]=ar[1905],ar[A+8>>2]=ar[1906]},function(A,e,r,i){i|=0,ar[(i=A|=0)>>2]=0,ar[i+4>>2]=0,ar[(i=A+8|0)>>2]=-1,ar[i+4>>2]=-1},function(A,e,r,i){i|=0,ar[(i=A|=0)>>2]=0,ar[i+4>>2]=0,ar[(i=A+8|0)>>2]=-1,ar[i+4>>2]=-1},function(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o=0;for(f=ur=(t=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,4294967279<(n=i-r|(ar[A+8>>2]=0))>>>0&&pu(),n>>>0<11?(tr[A+11>>0]=n,o=A):(o=0|hu(e=16+n&-16),ar[A>>2]=o,ar[A+8>>2]=-2147483648|e,ar[A+4>>2]=n),e=r,A=o;(0|e)!=(0|i);)Qf(A,e),e=e+1|0,A=A+1|0;Qf(o+n|(tr[f>>0]=0),f),ur=t},function(A,e,r,i){e|=0,r|=0,i|=0;var f,n,t,o=0,a=0;f=ur=(t=ur)+31&-32,ur=ur+16|0,ar[(A|=0)>>2]=0,ar[A+4>>2]=0,1073741807<(n=i-r>>2)>>>(ar[A+8>>2]=0)&&pu();do{if(2<=n>>>0){if(!(1073741823<(e=4+n&-4)>>>0)){a=0|hu(e<<2),ar[A>>2]=a,ar[A+8>>2]=-2147483648|e,ar[A+4>>2]=n,o=r;break}lA()}else tr[A+8+3>>0]=n,o=r,a=A}while(0);for(;(0|o)!=(0|i);)ln(a,o),o=o+4|0,a=a+4|0;ar[f>>2]=0,ln(a,f),ur=t},function(A,e,r,i){r|=0,i|=0,0|xu(A|=0,0|ar[(e|=0)+8>>2])&&Pu(0,e,r,i)},function(A,e,r,i){r|=0,i|=0,0|xu(A|=0,0|ar[(e|=0)+8>>2])?Pu(0,e,r,i):(A=0|ar[A+8>>2],ts[31&ar[28+(0|ar[A>>2])>>2]](A,e,r,i))},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,n=0;A:do{if(0|xu(A,0|ar[e+8>>2]))Pu(0,e,r,i);else if(f=A+16+((n=0|ar[A+12>>2])<<3)|0,Ab(A+16|0,e,r,i),1<(0|n)){n=e+54|0,A=A+24|0;do{if(Ab(A,e,r,i),0|tr[n>>0])break A;A=A+8|0}while(A>>>0>>0)}}while(0)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0;if(ur=(u=ur)+64|0,l=(o=u)+56|0,c=u+52|0,s=u+40|0,a=u+36|0,v=u+24|0,n=u+20|0,f=u+16|0,t=u+12|0,b=0|oA(),ar[l>>2]=b,!e)return ar[A>>2]=b,ar[l>>2]=0,iA((v=0)|v),void(ur=u);if(!function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0;var t,o,a,c;ur=(c=ur)+32|0,ar[(t=(o=c)+24|0)>>2]=0,ar[(a=4+t|0)>>2]=0,function(A,e,r,i,f,n,t){A|=0,n|=0,t|=0;var o,a,c=0,l=0,u=0,b=0,s=0,d=0;ur=(a=ur)+48|0,b=(o=a)+40|0,u=a+32|0,d=a+20|0,Xl(o,e|=0,r|=0,i|=0,f|=0,0);do{if(0|ar[o>>2])i=0|ar[(s=o)+4>>2],ar[(d=A)>>2]=ar[s>>2],ar[d+4>>2]=i,i=o+8|0,ar[(d=A+8|0)>>2]=ar[i>>2],ar[d+4>>2]=ar[i+4>>2],ar[d+8>>2]=ar[i+8>>2],ar[i>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0;else{if(99==(0|f)&&(f=0|ar[32+(0|ar[i>>2])>>2]),c=0|ar[i>>2],l=0|ar[c+36>>2],r=99==(0|n)?l:n,e=t&&0|tr[t+20>>0]?8:0,!((0|r)==(0|l)&&(0|f)==(0|ar[c+32>>2])||(ar[u>>2]=0,ar[(c=u+4|0)>>2]=0,me(b,i,f,r,u,e),e=0|ar[b>>2],u=0|ar[(r=b+4|0)>>2],ar[b>>2]=0,ar[r>>2]=0,ar[i>>2]=e,e=0|ar[(b=i+4|0)>>2],ar[b>>2]=u,0|e&&(du(e),0|(s=0|ar[r>>2]))&&du(s),0|(e=0|ar[c>>2])&&du(e),0|ar[i>>2]))){if(ar[d>>2]=0,ar[d+4>>2]=0,ar[d+8>>2]=0,oo(A,4,3003,d),0<=(0|tr[d+11>>0]))break;vu(0|ar[d>>2]);break}d=0|ar[(s=56592)+4>>2],ar[(i=A)>>2]=ar[s>>2],ar[i+4>>2]=d,yu(A+8|0,56600)}}while(0);if(0<=(0|tr[11+(e=o+8|0)>>0]))return ur=a;vu(0|ar[e>>2]),ur=a}(o,0|ar[e+8>>2],0|ar[20+(0|ar[e>>2])>>2],t,i,f,n),0|ar[o>>2]?ao(A,o,0|ar[e>>2]):(n=0|hu(8),ar[r>>2]=n,i=0|ar[t>>2],f=0|ar[a>>2],ar[t>>2]=0,ar[a>>2]=0,ar[n>>2]=i,ar[n+4>>2]=f,ao(A,56592,0|ar[e>>2]));(0|tr[11+(A=o+8|0)>>0])<0&&vu(0|ar[A>>2]);(A=0|ar[a>>2])&&du(A),ur=c}(s,e,c,r,i,0),0|ar[s>>2])v=0|hu(12),ar[v>>2]=ar[s>>2],ar[v+4>>2]=ar[s+4>>2],ar[v+8>>2]=ar[s+8>>2],ar[o>>2]=v,v=0|cA(1392,0|o),ar[A>>2]=v;else{if(ar[o>>2]=cr[40+(0|ar[e>>2])>>0],bl(l,29636,o),sl(o,48+(0|ar[e>>2])|0),s=(b=0|ar[(i=o+4|0)>>2])-(e=0|ar[o>>2])>>3,0|(r=e)){if((0|b)!=(0|r)){for(;e=b+-8|0,ar[i>>2]=e,(b=0|ar[b+-4>>2])&&(du(b),e=0|ar[i>>2]),(0|e)!=(0|r);)b=e;e=0|ar[o>>2]}vu(e)}switch(ar[a>>2]=s,bl(l,29647,a),b=0|ar[c>>2],e=0|Xo(0|ar[b>>2],0),ar[o>>2]=e,function(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(4144,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29658,o),e=0|Wo(0|ar[b>>2],0),ar[a>>2]=e,function(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(4144,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29664,a),ar[v>>2]=0,ar[v+4>>2]=0,ar[v+8>>2]=0,ar[n>>2]=ar[36+(0|ar[b>>2])>>2],function(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(1248,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29671,n),ar[n>>2]=ar[32+(0|ar[b>>2])>>2],function(A,e,r){e|=0,r|=0;var i,f;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),ar[f>>2]=ar[r>>2],r=0|cA(1256,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29678,n),e=0|ar[b>>2],0|ar[e+32>>2]){case 0:if(r=e?0|Fo(e,0,n):ar[n>>2]=0,h=(e=0|ar[b>>2])?0|Fo(e,1,f):ar[f>>2]=0,e=(e=0|ar[b>>2])?0|Fo(e,2,t):ar[t>>2]=0,w=0|ar[o>>2],d=0|ar[a>>2],Vu(v,(0|br(~~(.5*(0|w)+.5)<<1,~~(.5*(0|d)+.5)))+(0|br(d,w))|0,0),w=(0|tr[v+11>>0])<0?0|ar[v>>2]:v,d=0|ar[o>>2],k=0|ar[a>>2],(0|d)!=(0|(s=0|ar[n>>2]))){if(0<(0|k))for(i=w,b=r,r=0;hb(0|i,0|b,0|s),(0|(r=r+1|0))!=(0|k);)i=i+d|0,b=b+s|0}else hb(0|w,0|r,0|br(k,d));if(d=0|ar[o>>2],k=0|ar[a>>2],b=w+(0|br(k,d))|0,k=~~(.5*(0|k)+.5),(0|(d=~~(.5*(0|d)+.5)))!=(0|(s=0|ar[f>>2]))){if(0<(0|k))for(i=b,b=h,r=0;hb(0|i,0|b,0|s),(0|(r=r+1|0))!=(0|k);)i=i+d|0,b=b+s|0}else hb(0|b,0|h,0|br(k,d));if(r=0|ar[o>>2],i=0|ar[a>>2],b=0|br(d=~~(.5*(0|i)+.5),s=~~(.5*(0|r)+.5)),r=w+(0|br(i,r))+b|0,(0|s)!=(0|(i=0|ar[t>>2]))){if(0<(0|d))for(b=0;hb(0|r,0|e,0|i),(0|(b=b+1|0))!=(0|d);)r=r+s|0,e=e+i|0}else hb(0|r,0|e,0|b);break;case 1:if(10!=(0|ar[e+36>>2])&&sr(29689,29758,140,26426),e=0|Fo(e,10,n),Vu(v,0|br(3*(0|ar[o>>2])|0,0|ar[a>>2]),0),r=(0|tr[v+11>>0])<0?0|ar[v>>2]:v,d=3*(0|ar[o>>2])|0,s=0|ar[a>>2],(0|d)!=(0|(i=0|ar[n>>2]))){if(0<(0|s))for(b=0;hb(0|r,0|e,0|i),(0|(b=b+1|0))!=(0|s);)r=r+d|0,e=e+i|0}else hb(0|r,0|e,0|br(s,d));break;case 2:if(0|ar[e+36>>2]&&sr(29778,29758,151,26426),e=0|Fo(e,0,n),Vu(v,0|br(0|ar[a>>2],0|ar[o>>2]),0),r=(0|tr[v+11>>0])<0?0|ar[v>>2]:v,d=0|ar[o>>2],s=0|ar[a>>2],(0|d)!=(0|(i=0|ar[n>>2]))){if(0<(0|s))for(b=0;hb(0|r,0|e,0|i),(0|(b=b+1|0))!=(0|s);)r=r+d|0,e=e+i|0}else hb(0|r,0|e,0|br(s,d))}!function(A,e,r){e|=0,r|=0;var i,f,n,t,o=0;ur=(i=ur)+16|0,f=i,A=0|ar[(A=A|0)>>2],e=0|tA(0|e),o=0|tr[r+11>>0],o=(t=o<<24>>24<0)?0|ar[r+4>>2]:255&o,n=0|yc(o+4|0),ar[n>>2]=o,hb(4+n|0,0|(t?0|ar[r>>2]:r),0|o),ar[f>>2]=n,r=0|cA(1408,0|f),aA(0|A,0|e,0|r),iA(0|r),iA(0|e),ur=i}(l,29840,v),0|(e=0|ar[c>>2])&&(0|(b=0|ar[e+4>>2])&&du(b),vu(e)),ar[A>>2]=ar[l>>2],((ar[l>>2]=0)|tr[v+11>>0])<0&&vu(0|ar[v>>2])}v=0|ar[l>>2],iA(0|v),ur=u},function(A,e,r,i){A|=0,e|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0,u=0,b=0;if(f=(r|=0)+5|0,n=1<>1]<>12)+o|0)+(0|cr[(u=A+(t+l)|0)>>0])|0,tr[u>>0]=(0|b)<0?0:255&((0|b)<255?b:255),(0|(t=t+1|0))<(0|n););a=a+1|0}while((0|a)<(0|n))}},function(A,e,r,i){A|=0,e|=0,i|=0;var f,n,t=0,o=0,a=0,c=0,l=0;if(f=(r|=0)+5|0,n=1<>1]<>12)+o|0,c=A+((0|br(t,i))+a)|0,l=o+(0|cr[c>>0])|0,tr[c>>0]=(0|l)<0?0:255&((0|l)<255?l:255),(0|(t=t+1|0))<(0|n););a=a+1|0}while((0|a)<(0|n))}},function(A,e,r,i){sr(44456,35137,68,35179)},function(A,e,r,i){A|=0,e|=0,r|=0;var f,n,t,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0;for(ur=(t=ur)+32|0,f=t,a=(n=20-(i|=0)|0)-1|0,o=0;c=0|or[e+(o<<1)>>1],s=(74*(l=0|or[e+(o+4<<1)>>1])|0)+(29*c|0)+(84*(u=0|or[e+(o+8<<1)>>1])|0)+(55*(b=0|or[e+(o+12<<1)>>1])|0)+64>>7,or[f+(o<<1)>>1]=(0|s)<-32768?-32768:65535&((0|s)<32767?s:32767),s=(0|br(b,-84))+((0|br(u,-29))+((74*l|0)+(55*c|0)))+64>>7,or[f+8+(o<<1)>>1]=(0|s)<-32768?-32768:65535&((0|s)<32767?s:32767),s=(74*b|0)+((0|br(u,-74))+(74*c|0))+64>>7,or[f+16+(o<<1)>>1]=(0|s)<-32768?-32768:65535&((0|s)<32767?s:32767),c=(0|br(b,-29))+((55*u|0)+((0|br(l,-74))+(84*c|0)))+64>>7,or[f+24+(o<<1)>>1]=(0|c)<-32768?-32768:65535&((0|c)<32767?c:32767),4!=(0|(o=o+1|0)););for(c=1<>1],k=(74*(u=0|or[f+(o<<3)+2>>1])|0)+(29*b|0)+(84*(l=0|or[f+(o<<3)+4>>1])|0)+(55*(i=0|or[f+(o<<3)+6>>1])|0)+c>>n,k=(0|lr[(d=A+(s<<1)|0)>>1])+((0|k)<-32768?-32768:(0|k)<32767?k:32767)|0,or[d>>1]=(0|k)<0?0:65535&((0|k)<(0|e)?k:a),d=(0|br(i,-84))+((0|br(l,-29))+((74*u|0)+(55*b|0)))+c>>n,d=(0|lr[(k=A+(s+1<<1)|0)>>1])+((0|d)<-32768?-32768:(0|d)<32767?d:32767)|0,or[k>>1]=(0|d)<0?0:65535&((0|d)<(0|e)?d:a),k=(74*i|0)+((0|br(l,-74))+(74*b|0))+c>>n,k=(0|lr[(d=A+(s+2<<1)|0)>>1])+((0|k)<-32768?-32768:(0|k)<32767?k:32767)|0,or[d>>1]=(0|k)<0?0:65535&((0|k)<(0|e)?k:a),b=(0|br(i,-29))+((55*l|0)+((0|br(u,-74))+(84*b|0)))+c>>n,b=(0|lr[(s=A+(s+3<<1)|0)>>1])+((0|b)<-32768?-32768:(0|b)<32767?b:32767)|0,or[s>>1]=(0|b)<0?0:65535&((0|b)<(0|e)?b:a),4!=(0|(o=o+1|0)););ur=t},function(A,e,r,i){zo(A|=0,r|=0,4,e|=0,i|=0)},function(A,e,r,i){zo(A|=0,r|=0,8,e|=0,i|=0)},function(A,e,r,i){zo(A|=0,r|=0,16,e|=0,i|=0)},function(A,e,r,i){zo(A|=0,r|=0,32,e|=0,i|=0)},function(A,e,r,i){A|=0,e|=0;var f,n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0;for(ur=(o=ur)+32|0,t=o,c=(r|=0)+-1|0,f=(a=1<<(i|=0))+65535|0,n=0-a|0,i=0;l=0|or[e+(i<<1)>>1],d=(74*(u=0|or[e+(i+4<<1)>>1])|0)+(29*l|0)+(84*(b=0|or[e+(i+8<<1)>>1])|0)+(55*(s=0|or[e+(i+12<<1)>>1])|0)+64>>7,or[t+(i<<1)>>1]=(0|d)<(0|n)?n:(0|d)<(0|a)?d:f,d=(0|br(s,-84))+((0|br(b,-29))+((74*u|0)+(55*l|0)))+64>>7,or[t+8+(i<<1)>>1]=(0|d)<(0|n)?n:(0|d)<(0|a)?d:f,d=(74*s|0)+((0|br(b,-74))+(74*l|0))+64>>7,or[t+16+(i<<1)>>1]=(0|d)<(0|n)?n:(0|d)<(0|a)?d:f,l=(0|br(s,-29))+((55*b|0)+((0|br(u,-74))+(84*l|0)))+64>>7,or[t+24+(i<<1)>>1]=(0|l)<(0|n)?n:(0|l)<(0|a)?l:f,4!=(0|(i=i+1|0)););for(a=1<>1],c=74*(b=0|or[t+(i<<3)+2>>1])|0,u=0|or[t+(i<<3)+4>>1],l=0|or[t+(i<<3)+6>>1],ar[A+(d<<2)>>2]=(55*l|0)+((84*u|0)+(c+(29*s|0)))+a>>r,c=(0|br(l,-84))+((0|br(u,-29))+(c+(55*s|0)))+a>>r,ar[A+((1|d)<<2)>>2]=c,c=(74*l|0)+((0|br(u,-74))+(74*s|0))+a>>r,ar[A+((2|d)<<2)>>2]=c,s=(0|br(l,-29))+((55*u|0)+((0|br(b,-74))+(84*s|0)))+a>>r,ar[A+((3|d)<<2)>>2]=s,4!=(0|(i=i+1|0)););ur=o},function(A,e,r,i){So(A|=0,4,e|=0,r|=0,i|=0)},function(A,e,r,i){So(A|=0,8,e|=0,r|=0,i|=0)},function(A,e,r,i){So(A|=0,16,e|=0,r|=0,i|=0)},function(A,e,r,i){So(A|=0,32,e|=0,r|=0,i|=0)},Db,Db,Db,Db,Db,Db,Db,Db],os=[Jb,function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a=0,c=0,l=0,u=0,b=0;if(ur=(o=ur)+64|0,t=o+36|0,n=o+48|0,u=o,1==(0|ar[(r|=0)>>2])&&3==(0|ar[r+4>>2])&&8==(0|ar[r+12>>2]))return ar[t>>2]=0,ar[(b=4+t|0)>>2]=0,a=(ar[8+t>>2]=0)==(0|tr[(f=r+8|0)>>0])&&0==(0|tr[i+8>>0])?.25:0,ar[u>>2]=1,ar[u+4>>2]=11,tr[u+8>>0]=1,tr[(e=u+9|0)>>0]=0|tr[n>>0],tr[e+1>>0]=0|tr[1+n>>0],tr[e+2>>0]=0|tr[2+n>>0],ar[u+12>>2]=8,ar[u+16>>2]=0,ar[(e=u+20|0)>>2]=0,gA[u+24>>2]=.10000000149011612,gA[u+28>>2]=0,gA[u+32>>2]=a,l=8+t|0,Nl(t,u),0|(e=0|ar[e>>2])&&du(e),0!=(0|tr[f>>0])&&0!=(0|tr[i+8>>0])?c=.10000000149011612:(c=.20000000298023224,a=0),ar[u>>2]=1,ar[u+4>>2]=10,tr[u+8>>0]=0,tr[(f=u+9|0)>>0]=0|tr[n>>0],tr[f+1>>0]=0|tr[1+n>>0],tr[f+2>>0]=0|tr[2+n>>0],ar[u+12>>2]=8,ar[(f=u+16|0)>>2]=0,ar[(r=u+20|0)>>2]=0,gA[u+24>>2]=c,gA[u+28>>2]=0,gA[u+32>>2]=a,(e=0|ar[b>>2])>>>0>=(0|ar[l>>2])>>>0?(Nl(t,u),0|(e=0|ar[r>>2])&&du(e)):(ar[e>>2]=ar[u>>2],ar[e+4>>2]=ar[u+4>>2],ar[e+8>>2]=ar[u+8>>2],ar[e+12>>2]=ar[u+12>>2],ar[e+16>>2]=ar[f>>2],ar[e+20>>2]=ar[r>>2],ar[f>>2]=0,u=u+24|(ar[r>>2]=0),ar[(i=e+24|0)>>2]=ar[u>>2],ar[i+4>>2]=ar[u+4>>2],ar[i+8>>2]=ar[u+8>>2],ar[b>>2]=e+36),ar[A>>2]=ar[t>>2],ar[A+4>>2]=ar[b>>2],ar[A+8>>2]=ar[l>>2],void(ur=o);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=o},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;if(ur=(b=ur)+32|0,o=b+16|0,a=b+12|0,c=b+8|0,l=b+4|0,u=b,t=0|Eo(0|ar[(r|=0)>>2],6),n=0!=(0|tr[i+8>>0]),(0|Vo(0|ar[r>>2],3))<<24>>24==8&&(0|Vo(0|ar[r>>2],4))<<24>>24==8&&(0|Vo(0|ar[r>>2],5))<<24>>24==8){if(t&&(0|Vo(0|ar[r>>2],6))<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=b);f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(i=f+12|0)>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,Z=f+52|0,ar[(g=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[Z>>2]=0,ar[Z+4>>2]=0,ar[Z+8>>2]=0,ar[Z+12>>2]=0,ar[f+68>>2]=g,g=i,m=(Z=f)+16|0,bu(f),su(f),e=0|ar[m>>2],ar[i>>2]=g,ar[m>>2]=Z,0|e&&ku(e),du(f),h=0|ar[r>>2],yo(i,k=0|ar[h+24>>2],h=0|ar[h+28>>2],1,n?11:10),Bo(i,10,k,h,8),ar[o>>2]=0,ar[a>>2]=0,ar[c>>2]=0,ar[l>>2]=0,w=(ar[u>>2]=0)|Ro(0|ar[r>>2],3,o),v=0|Ro(0|ar[r>>2],4,a),m=0|Ro(0|ar[r>>2],5,c),d=0|Fo(i,10,u),f=t?0|Ro(0|ar[r>>2],6,l):0;A:do{if(0<(0|h)){s=t&n,r=0<(0|k),i=0;e:for(;;){r:do{if(s){if(r)for(e=0;B=w+((0|br(0|ar[o>>2],i))+e)|0,p=e<<2,y=d+((0|br(0|ar[u>>2],i))+p)|0,tr[y>>0]=0|tr[B>>0],y=v+((0|br(0|ar[a>>2],i))+e)|0,B=d+((1|p)+(0|br(0|ar[u>>2],i)))|0,tr[B>>0]=0|tr[y>>0],B=m+((0|br(0|ar[c>>2],i))+e)|0,y=d+((2|p)+(0|br(0|ar[u>>2],i)))|0,tr[y>>0]=0|tr[B>>0],y=f+((0|br(0|ar[l>>2],i))+e)|0,p=d+((3|p)+(0|br(0|ar[u>>2],i)))|0,tr[p>>0]=0|tr[y>>0],(0|(e=e+1|0))!=(0|k););}else{if(!n){if(!r)break;for(e=0;;)if(y=w+((0|br(0|ar[o>>2],i))+e)|0,B=3*e|0,p=d+((0|br(0|ar[u>>2],i))+B)|0,tr[p>>0]=0|tr[y>>0],p=v+((0|br(0|ar[a>>2],i))+e)|0,y=d+(B+1+(0|br(0|ar[u>>2],i)))|0,tr[y>>0]=0|tr[p>>0],y=m+((0|br(0|ar[c>>2],i))+e)|0,B=d+(B+2+(0|br(0|ar[u>>2],i)))|0,tr[B>>0]=0|tr[y>>0],(0|(e=e+1|0))==(0|k))break r}if(t)break e;if(r)for(e=0;p=w+((0|br(0|ar[o>>2],i))+e)|0,B=e<<2,y=d+((0|br(0|ar[u>>2],i))+B)|0,tr[y>>0]=0|tr[p>>0],y=v+((0|br(0|ar[a>>2],i))+e)|0,p=d+((1|B)+(0|br(0|ar[u>>2],i)))|0,tr[p>>0]=0|tr[y>>0],p=m+((0|br(0|ar[c>>2],i))+e)|0,y=d+((2|B)+(0|br(0|ar[u>>2],i)))|0,tr[y>>0]=0|tr[p>>0],B=d+((3|B)+(0|br(0|ar[u>>2],i)))|0,tr[B>>0]=-1,(0|(e=e+1|0))!=(0|k););}}while(0);if((0|h)<=(0|(i=i+1|0)))break A}sr(32223,32248,281,32272)}}while(0);return ar[A>>2]=g,ar[A+4>>2]=Z,void(ur=b)}ar[A>>2]=0,ar[A+4>>2]=0,ur=b},function(A,e,r,i,f){var n,t;if(A|=0,e|=0,i|=0,f|=0,ur=(t=ur)+48|0,n=t+36|0,f=t,0==(0|ar[(r|=0)>>2])&&1==(0|ar[r+4>>2])&&8==(0|ar[r+12>>2])&&0==(0|tr[r+8>>0])){if(0|(e=0|ar[r+16>>2])){switch(0|or[e+8>>1]){case 0:case 8:case 11:case 14:return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}if(!(0|tr[e+10>>0]))return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}return ar[n>>2]=0,ar[(i=4+n|0)>>2]=0,ar[8+n>>2]=0,ar[f>>2]=1,ar[f+4>>2]=10,tr[f+8>>0]=0,ar[f+12>>2]=8,ar[f+16>>2]=0,ar[(e=f+20|0)>>2]=0,gA[f+24>>2]=.5,gA[f+28>>2]=0,gA[f+32>>2]=0,Nl(n,f),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[8+n>>2],void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0;if(ur=(c=ur)+64|0,f=c+32|0,n=c+12|0,t=c+8|0,o=c+4|0,a=c,(0|Vo(0|ar[(r|=0)>>2],0))<<24>>24==8&&(0|Vo(0|ar[r>>2],1))<<24>>24==8&&(0|Vo(0|ar[r>>2],2))<<24>>24==8){if(i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(l=i+12|0)>>2]=0,ar[l+4>>2]=0,ar[l+8>>2]=0,ar[l+12>>2]=0,ar[l+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,p=i+52|0,ar[(Z=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[p>>2]=0,ar[p+4>>2]=0,ar[p+8>>2]=0,ar[p+12>>2]=0,ar[i+68>>2]=Z,Z=l,g=(p=i)+16|0,bu(i),su(i),e=0|ar[g>>2],ar[l>>2]=Z,ar[g>>2]=p,0|e&&ku(e),du(i),v=0|ar[r>>2],yo(l,w=0|ar[v+24>>2],v=0|ar[v+28>>2],1,10),Bo(l,10,w,v,8),m=0|ar[r>>2],e=0|ar[m+40>>2],(g=0==(0|(m=0|ar[m+44>>2])))||bu(m),Ze(f),0|e&&(pe(n,0|or[e+8>>1],0|or[e+4>>1]),ar[f>>2]=ar[n>>2],ar[f+4>>2]=ar[4+n>>2],ar[f+8>>2]=ar[8+n>>2],ar[f+12>>2]=ar[12+n>>2],ar[f+16>>2]=ar[16+n>>2]),d=0|ef(256*gA[f+4>>2]),k=0|ef(256*gA[f+12>>2]),h=0|ef(256*gA[f+8>>2]),u=0|ef(256*gA[f+16>>2]),ar[n>>2]=0,ar[t>>2]=0,ar[o>>2]=0,b=(ar[a>>2]=0)|Ro(0|ar[r>>2],0,n),s=0|Ro(0|ar[r>>2],1,t),r=0|Ro(0|ar[r>>2],2,o),f=0|Fo(l,10,a),0<(0|v)&0<(0|w)){i=0;do{for(l=(0|i)/2|0,e=0;B=b+((0|br(0|ar[n>>2],i))+e)|0,B=0|cr[B>>0],W=(0|e)/2|0,E=s+((0|br(0|ar[t>>2],l))+W)|0,E=(0|cr[E>>0])-128|0,W=r+((0|br(0|ar[o>>2],l))+W)|0,W=(0|cr[W>>0])-128|0,I=(128+(0|br(W,d))>>8)+B|0,y=3*e|0,X=f+((0|br(0|ar[a>>2],i))+y)|0,tr[X>>0]=(0|I)<0?0:255<(0|I)?-1:255&I,W=(128+(0|br(E,h))+(0|br(W,k))>>8)+B|0,X=f+(y+1+(0|br(0|ar[a>>2],i)))|0,tr[X>>0]=(0|W)<0?0:255<(0|W)?-1:255&W,B=(128+(0|br(E,u))>>8)+B|0,y=f+(y+2+(0|br(0|ar[a>>2],i)))|0,tr[y>>0]=(0|B)<0?0:255<(0|B)?-1:255&B,(0|(e=e+1|0))!=(0|w););i=i+1|0}while((0|i)!=(0|v))}return(ar[A>>2]=Z,ar[A+4>>2]=p,g)?void(ur=c):(du(m),void(ur=c))}ar[A>>2]=0,ar[A+4>>2]=0,ur=c},function(A,e,r,i,f){var n,t;if(A|=0,e|=0,i|=0,f|=0,ur=(t=ur)+48|0,n=t+36|0,f=t,0==(0|ar[(r|=0)>>2])&&1==(0|ar[r+4>>2])&&8==(0|ar[r+12>>2])){if(0|(e=0|ar[r+16>>2])){switch(0|or[e+8>>1]){case 0:case 8:case 11:case 14:return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}if(!(0|tr[e+10>>0]))return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}return ar[n>>2]=0,ar[(i=4+n|0)>>2]=0,ar[8+n>>2]=0,ar[f>>2]=1,ar[f+4>>2]=11,tr[f+8>>0]=1,ar[f+12>>2]=8,ar[f+16>>2]=0,ar[(e=f+20|0)>>2]=0,gA[f+24>>2]=.5,gA[f+28>>2]=0,gA[f+32>>2]=0,Nl(n,f),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[8+n>>2],void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0;if(ur=(l=ur)+64|0,f=l+36|0,t=l+16|0,o=l+12|0,a=l+8|0,c=l+4|0,n=l,(0|Vo(0|ar[(r|=0)>>2],0))<<24>>24==8&&(0|Vo(0|ar[r>>2],1))<<24>>24==8&&(0|Vo(0|ar[r>>2],2))<<24>>24==8){if(i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(u=i+12|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,X=i+52|0,ar[(E=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[X>>2]=0,ar[X+4>>2]=0,ar[X+8>>2]=0,ar[X+12>>2]=0,ar[i+68>>2]=E,E=u,B=(X=i)+16|0,bu(i),su(i),e=0|ar[B>>2],ar[u>>2]=E,ar[B>>2]=X,0|e&&ku(e),du(i),p=0|ar[r>>2],yo(u,Z=0|ar[p+24>>2],p=0|ar[p+28>>2],1,11),Bo(u,10,Z,p,8),y=0|ar[r>>2],e=0|ar[y+40>>2],(B=0==(0|(y=0|ar[y+44>>2])))||bu(y),Ze(f),0|e&&(pe(t,0|or[e+8>>1],0|or[e+4>>1]),ar[f>>2]=ar[t>>2],ar[f+4>>2]=ar[4+t>>2],ar[f+8>>2]=ar[8+t>>2],ar[f+12>>2]=ar[12+t>>2],ar[f+16>>2]=ar[16+t>>2]),v=0|ef(256*gA[f+4>>2]),m=0|ef(256*gA[f+12>>2]),g=0|ef(256*gA[f+8>>2]),s=0|ef(256*gA[f+16>>2]),d=0|Eo(0|ar[r>>2],6),ar[t>>2]=0,ar[o>>2]=0,ar[a>>2]=0,ar[c>>2]=0,k=(ar[n>>2]=0)|Ro(0|ar[r>>2],0,t),h=0|Ro(0|ar[r>>2],1,o),w=0|Ro(0|ar[r>>2],2,a),b=d?0|Ro(0|ar[r>>2],6,c):0,f=0|Fo(u,10,n),0<(0|p)){u=0<(0|Z),i=0;do{if(u)if(r=(0|i)/2|0,d)for(e=0;C=k+((0|br(0|ar[t>>2],i))+e)|0,C=0|cr[C>>0],V=(0|e)/2|0,W=h+((0|br(0|ar[o>>2],r))+V)|0,W=(0|cr[W>>0])-128|0,V=w+((0|br(0|ar[a>>2],r))+V)|0,V=(0|cr[V>>0])-128|0,F=(128+(0|br(V,v))>>8)+C|0,I=e<<2,G=f+((0|br(0|ar[n>>2],i))+I)|0,tr[G>>0]=(0|F)<0?0:255<(0|F)?-1:255&F,V=(128+(0|br(W,g))+(0|br(V,m))>>8)+C|0,G=f+((1|I)+(0|br(0|ar[n>>2],i)))|0,tr[G>>0]=(0|V)<0?0:255<(0|V)?-1:255&V,C=(128+(0|br(W,s))>>8)+C|0,W=f+((2|I)+(0|br(0|ar[n>>2],i)))|0,tr[W>>0]=(0|C)<0?0:255<(0|C)?-1:255&C,W=0|br(0|ar[n>>2],i),C=b+((0|br(0|ar[c>>2],i))+e)|0,tr[f+((3|I)+W)>>0]=0|tr[C>>0],(0|(e=e+1|0))!=(0|Z););else for(e=0;G=k+((0|br(0|ar[t>>2],i))+e)|0,G=0|cr[G>>0],I=(0|e)/2|0,V=h+((0|br(0|ar[o>>2],r))+I)|0,V=(0|cr[V>>0])-128|0,I=w+((0|br(0|ar[a>>2],r))+I)|0,I=(0|cr[I>>0])-128|0,W=(128+(0|br(I,v))>>8)+G|0,F=e<<2,C=f+((0|br(0|ar[n>>2],i))+F)|0,tr[C>>0]=(0|W)<0?0:255<(0|W)?-1:255&W,I=(128+(0|br(V,g))+(0|br(I,m))>>8)+G|0,C=f+((1|F)+(0|br(0|ar[n>>2],i)))|0,tr[C>>0]=(0|I)<0?0:255<(0|I)?-1:255&I,G=(128+(0|br(V,s))>>8)+G|0,V=f+((2|F)+(0|br(0|ar[n>>2],i)))|0,tr[V>>0]=(0|G)<0?0:255<(0|G)?-1:255&G,F=f+((3|F)+(0|br(0|ar[n>>2],i)))|0,tr[F>>0]=-1,(0|(e=e+1|0))!=(0|Z););i=i+1|0}while((0|i)!=(0|p))}return(ar[A>>2]=E,ar[A+4>>2]=X,B)?void(ur=l):(du(y),void(ur=l))}ar[A>>2]=0,ar[A+4>>2]=0,ur=l},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0,b=0;if(ur=(t=ur)+64|0,n=t+36|0,c=t+48|0,u=t,1==(0|ar[(r|=0)>>2])&&3==(0|ar[r+4>>2])&&8!=(0|(o=0|ar[(a=r+12|0)>>2])))return ar[n>>2]=0,ar[(b=4+n|0)>>2]=0,(ar[8+n>>2]=0)|tr[r+8>>0]?(l=8+n|0,e=o,r=f=o=0):(ar[u>>2]=1,ar[u+4>>2]=12,tr[u+8>>0]=0,tr[(e=u+9|0)>>0]=0|tr[c>>0],tr[e+1>>0]=0|tr[c+1>>0],tr[e+2>>0]=0|tr[c+2>>0],ar[u+12>>2]=o,ar[u+16>>2]=0,ar[(e=u+20|0)>>2]=0,gA[u+24>>2]=.5,gA[u+28>>2]=0,i=8+n|(gA[u+32>>2]=0),Nl(n,u),0|(e=0|ar[e>>2])&&du(e),r=0|ar[b>>2],l=i,e=0|ar[a>>2],o=r,f=0|ar[i>>2]),ar[u>>2]=1,ar[u+4>>2]=13,tr[u+8>>0]=1,tr[(i=u+9|0)>>0]=0|tr[c>>0],tr[i+1>>0]=0|tr[c+1>>0],tr[i+2>>0]=0|tr[c+2>>0],ar[u+12>>2]=e,ar[(e=u+16|0)>>2]=0,ar[(i=u+20|0)>>2]=0,gA[u+24>>2]=.5,gA[u+28>>2]=0,f>>>(gA[u+32>>2]=0)<=o>>>0?(Nl(n,u),0|(e=0|ar[i>>2])&&du(e)):(ar[r>>2]=ar[u>>2],ar[r+4>>2]=ar[u+4>>2],ar[r+8>>2]=ar[u+8>>2],ar[r+12>>2]=ar[u+12>>2],ar[o+16>>2]=ar[e>>2],ar[o+20>>2]=ar[i>>2],ar[e>>2]=0,u=u+24|(ar[i>>2]=0),ar[(c=o+24|0)>>2]=ar[u>>2],ar[c+4>>2]=ar[u+4>>2],ar[c+8>>2]=ar[u+8>>2],ar[b>>2]=o+36),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[b>>2],ar[A+8>>2]=ar[l>>2],ar[l>>2]=0,void(ur=t);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;if(ur=(l=ur)+32|0,n=l+16|0,t=l+12|0,o=l+8|0,a=l+4|0,c=l,(0|Vo(0|ar[(r|=0)>>2],3))<<24>>24!=8&&(0|Vo(0|ar[r>>2],4))<<24>>24!=8&&(0|Vo(0|ar[r>>2],5))<<24>>24!=8){v=0|Eo(0|ar[r>>2],6);do{if(v){if((0|Vo(0|ar[r>>2],6))<<24>>24==8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=l);if((0|(g=0|Xo(0|ar[r>>2],6)))==(0|Xo(0|ar[r>>2],4))&&(0|(g=0|Wo(0|ar[r>>2],6)))==(0|Wo(0|ar[r>>2],4)))break;return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=l)}}while(0);if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(u=f+12|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,g=f+52|0,ar[(m=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g+12>>2]=0,ar[f+68>>2]=m,m=u,w=(g=f)+16|0,bu(f),su(f),e=0|ar[w>>2],ar[u>>2]=m,ar[w>>2]=g,0|e&&ku(e),du(f),w=0|ar[r>>2],yo(u,h=0|ar[w+24>>2],w=0|ar[w+28>>2],1,0|tr[i+8>>0]?13:12),Bo(u,10,h,w,255&(0|Vo(0|ar[r>>2],3))),ar[n>>2]=0,ar[t>>2]=0,ar[o>>2]=0,ar[a>>2]=0,s=(ar[c>>2]=0)|Ro(0|ar[r>>2],3,n),d=0|Ro(0|ar[r>>2],4,t),k=0|Ro(0|ar[r>>2],5,o),b=0|Fo(u,10,c),e=v?(u=0|Ro(0|ar[r>>2],6,a),(0|ar[a>>2])/2|0):u=0,ar[n>>2]=(0|ar[n>>2])/2|0,ar[t>>2]=(0|ar[t>>2])/2|0,ar[o>>2]=(0|ar[o>>2])/2|0,ar[a>>2]=e,0<(0|w)){i=0<(0|h),f=0;do{if(v){if(i)for(e=0;E=s+((0|br(0|ar[n>>2],f))+e<<1)|0,E=0|or[E>>1],B=d+((0|br(0|ar[t>>2],f))+e<<1)|0,B=0|or[B>>1],y=k+((0|br(0|ar[o>>2],f))+e<<1)|0,y=0|or[y>>1],Z=u+((0|br(0|ar[a>>2],f))+e<<1)|0,Z=0|or[Z>>1],r=e<<3,p=b+((0|br(0|ar[c>>2],f))+r)|0,tr[p>>0]=(65535&E)>>>8,p=b+((1|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=E,p=b+((2|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=(65535&B)>>>8,p=b+((3|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=B,p=b+((4|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=(65535&y)>>>8,p=b+((5|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=y,p=b+((6|r)+(0|br(0|ar[c>>2],f)))|0,tr[p>>0]=(65535&Z)>>>8,r=b+((7|r)+(0|br(0|ar[c>>2],f)))|0,tr[r>>0]=Z,(0|(e=e+1|0))!=(0|h););}else if(i)for(e=0;Z=s+((0|br(0|ar[n>>2],f))+e<<1)|0,Z=0|or[Z>>1],p=d+((0|br(0|ar[t>>2],f))+e<<1)|0,p=0|or[p>>1],B=k+((0|br(0|ar[o>>2],f))+e<<1)|0,B=0|or[B>>1],E=6*e|0,y=b+((0|br(0|ar[c>>2],f))+E)|0,tr[y>>0]=(65535&Z)>>>8,y=b+((1|E)+(0|br(0|ar[c>>2],f)))|0,tr[y>>0]=Z,y=b+(E+2+(0|br(0|ar[c>>2],f)))|0,tr[y>>0]=(65535&p)>>>8,y=b+(E+3+(0|br(0|ar[c>>2],f)))|0,tr[y>>0]=p,y=b+(E+4+(0|br(0|ar[c>>2],f)))|0,tr[y>>0]=(65535&B)>>>8,E=b+(E+5+(0|br(0|ar[c>>2],f)))|0,tr[E>>0]=B,(0|(e=e+1|0))!=(0|h););f=f+1|0}while((0|f)!=(0|w))}return ar[A>>2]=m,ar[A+4>>2]=g,void(ur=l)}ar[A>>2]=0,ar[A+4>>2]=0,ur=l},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0;if(ur=(t=ur)+64|0,n=t+36|0,a=t+48|0,l=t,1==(0|ar[(r|=0)>>2])&&3==(0|ar[r+4>>2])&&8==(0|ar[(o=r+12|0)>>2]))return ar[n>>2]=0,ar[(u=4+n|0)>>2]=0,(ar[8+n>>2]=0)|tr[r+8>>0]?(c=8+n|0,e=8,r=f=o=0):(ar[l>>2]=1,ar[l+4>>2]=12,tr[l+8>>0]=0,tr[(e=l+9|0)>>0]=0|tr[a>>0],tr[e+1>>0]=0|tr[a+1>>0],tr[e+2>>0]=0|tr[a+2>>0],ar[l+12>>2]=8,ar[l+16>>2]=0,ar[(e=l+20|0)>>2]=0,gA[l+24>>2]=.5,gA[l+28>>2]=0,i=8+n|(gA[l+32>>2]=0),Nl(n,l),0|(e=0|ar[e>>2])&&du(e),r=0|ar[u>>2],c=i,e=0|ar[o>>2],o=r,f=0|ar[i>>2]),ar[l>>2]=1,ar[l+4>>2]=13,tr[l+8>>0]=1,tr[(i=l+9|0)>>0]=0|tr[a>>0],tr[i+1>>0]=0|tr[a+1>>0],tr[i+2>>0]=0|tr[a+2>>0],ar[l+12>>2]=e,ar[(e=l+16|0)>>2]=0,ar[(i=l+20|0)>>2]=0,gA[l+24>>2]=.5,gA[l+28>>2]=0,f>>>(gA[l+32>>2]=0)<=o>>>0?(Nl(n,l),0|(e=0|ar[i>>2])&&du(e)):(ar[r>>2]=ar[l>>2],ar[r+4>>2]=ar[l+4>>2],ar[r+8>>2]=ar[l+8>>2],ar[r+12>>2]=ar[l+12>>2],ar[o+16>>2]=ar[e>>2],ar[o+20>>2]=ar[i>>2],ar[e>>2]=0,l=l+24|(ar[i>>2]=0),ar[(a=o+24|0)>>2]=ar[l>>2],ar[a+4>>2]=ar[l+4>>2],ar[a+8>>2]=ar[l+8>>2],ar[u>>2]=o+36),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[u>>2],ar[A+8>>2]=ar[c>>2],ar[c>>2]=0,void(ur=t);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0;if(ur=(l=ur)+32|0,n=l+16|0,t=l+12|0,o=l+8|0,a=l+4|0,c=l,(0|Vo(0|ar[(r|=0)>>2],3))<<24>>24==8&&(0|Vo(0|ar[r>>2],4))<<24>>24==8&&(0|Vo(0|ar[r>>2],5))<<24>>24==8){if((v=0|Eo(0|ar[r>>2],6))&&(0|Vo(0|ar[r>>2],6))<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=l);if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(u=f+12|0)>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[u+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,g=f+52|0,ar[(m=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[g>>2]=0,ar[g+4>>2]=0,ar[g+8>>2]=0,ar[g+12>>2]=0,ar[f+68>>2]=m,m=u,w=(g=f)+16|0,bu(f),su(f),e=0|ar[w>>2],ar[u>>2]=m,ar[w>>2]=g,0|e&&ku(e),du(f),w=0|ar[r>>2],yo(u,h=0|ar[w+24>>2],w=0|ar[w+28>>2],1,0|tr[i+8>>0]?13:12),Bo(u,10,h,w,255&(0|Vo(0|ar[r>>2],3))),ar[n>>2]=0,ar[t>>2]=0,ar[o>>2]=0,ar[a>>2]=0,s=(ar[c>>2]=0)|Ro(0|ar[r>>2],3,n),d=0|Ro(0|ar[r>>2],4,t),k=0|Ro(0|ar[r>>2],5,o),b=0|Fo(u,10,c),f=v?0|Ro(0|ar[r>>2],6,a):0,0<(0|w)){u=0<(0|h),i=0;do{if(v){if(u)for(e=0;r=e<<3,p=b+((0|br(0|ar[c>>2],i))+r)|0,p=s+(((tr[p>>0]=0)|br(0|ar[n>>2],i))+e)|0,Z=b+((1|r)+(0|br(0|ar[c>>2],i)))|0,tr[Z>>0]=0|tr[p>>0],Z=b+((2|r)+(0|br(0|ar[c>>2],i)))|0,Z=d+(((tr[Z>>0]=0)|br(0|ar[t>>2],i))+e)|0,p=b+((3|r)+(0|br(0|ar[c>>2],i)))|0,tr[p>>0]=0|tr[Z>>0],p=b+((4|r)+(0|br(0|ar[c>>2],i)))|0,p=k+(((tr[p>>0]=0)|br(0|ar[o>>2],i))+e)|0,Z=b+((5|r)+(0|br(0|ar[c>>2],i)))|0,tr[Z>>0]=0|tr[p>>0],Z=b+((6|r)+(0|br(0|ar[c>>2],i)))|0,Z=f+(((tr[Z>>0]=0)|br(0|ar[a>>2],i))+e)|0,r=b+((7|r)+(0|br(0|ar[c>>2],i)))|0,tr[r>>0]=0|tr[Z>>0],(0|(e=e+1|0))!=(0|h););}else if(u)for(e=0;p=e<<3,Z=b+((0|br(0|ar[c>>2],i))+p)|0,Z=s+(((tr[Z>>0]=0)|br(0|ar[n>>2],i))+e)|0,r=b+((1|p)+(0|br(0|ar[c>>2],i)))|0,tr[r>>0]=0|tr[Z>>0],r=b+((2|p)+(0|br(0|ar[c>>2],i)))|0,r=d+(((tr[r>>0]=0)|br(0|ar[t>>2],i))+e)|0,Z=b+((3|p)+(0|br(0|ar[c>>2],i)))|0,tr[Z>>0]=0|tr[r>>0],Z=b+((4|p)+(0|br(0|ar[c>>2],i)))|0,Z=k+(((tr[Z>>0]=0)|br(0|ar[o>>2],i))+e)|0,p=b+((5|p)+(0|br(0|ar[c>>2],i)))|0,tr[p>>0]=0|tr[Z>>0],(0|(e=e+1|0))!=(0|h););i=i+1|0}while((0|i)!=(0|w))}return ar[A>>2]=m,ar[A+4>>2]=g,void(ur=l)}ar[A>>2]=0,ar[A+4>>2]=0,ur=l},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t=0,o=0;if(ur=(n=ur)+48|0,f=n+36|0,e=n,1==(0|ar[(r|=0)>>2])&&12==(-2&(t=0|ar[r+4>>2])|0)&&8!=(0|(o=0|ar[r+12>>2])))return ar[f>>2]=0,ar[(i=f+4|0)>>2]=0,ar[f+8>>2]=0,ar[e>>2]=1,ar[e+4>>2]=3,tr[e+8>>0]=15==(2|t)&1,ar[e+12>>2]=o,ar[e+16>>2]=0,ar[(o=e+20|0)>>2]=0,gA[e+24>>2]=.20000000298023224,gA[e+28>>2]=0,gA[e+32>>2]=0,Nl(f,e),0|(e=0|ar[o>>2])&&du(e),ar[A>>2]=ar[f>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[f+8>>2],void(ur=n);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=n},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0;if(ur=(k=ur)+32|0,d=k+16|0,h=k+12|0,w=k+8|0,v=k+4|0,m=k,s=15==(2|ar[36+(0|ar[(r|=0)>>2])>>2]),i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(f=i+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,e=i+52|0,ar[(y=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[i+68>>2]=y,ar[A>>2]=f,y=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[y>>2],ar[f>>2]=f,ar[y>>2]=i,0|e&&ku(e),du(i),p=0|ar[r>>2],yo(f,b=0|ar[p+24>>2],p=0|ar[p+28>>2],1,3),Bo(f,3,b,p,255&(0|Vo(0|ar[r>>2],10))),Bo(f,4,b,p,255&(0|Vo(0|ar[r>>2],10))),Bo(f,5,b,p,255&(0|Vo(0|ar[r>>2],10))),s&&Bo(f,6,b,p,255&(0|Vo(0|ar[r>>2],10))),ar[d>>2]=0,y=s?8:6,ar[h>>2]=0,ar[w>>2]=0,ar[v>>2]=0,a=(ar[m>>2]=0)|Ro(0|ar[r>>2],10,d),c=0|Fo(f,3,h),l=0|Fo(f,4,w),u=0|Fo(f,5,v),Z=s?(g=0|Fo(f,6,m),(0|ar[m>>2])/2|0):g=0,o=(0|ar[h>>2])/2|0,ar[h>>2]=o,t=(0|ar[w>>2])/2|0,ar[w>>2]=t,n=(0|ar[v>>2])/2|0,ar[v>>2]=n,ar[m>>2]=Z,(0|p)<=0)ur=k;else{A=0<(0|b),f=0;do{A:do{if(A){if(r=0|br(0|ar[d>>2],f),h=0|br(o,f),w=0|br(t,f),v=0|br(n,f),!s)for(e=0;;)if(B=r+(0|br(e,y))|0,i=65535&((0|cr[a+(B+2)>>0])<<8|0|cr[a+(B+3)>>0]),m=65535&((0|cr[a+(B+4)>>0])<<8|0|cr[a+(B+5)>>0]),or[c+(h+e<<1)>>1]=(0|cr[a+B>>0])<<8|0|cr[a+(B+1)>>0],or[l+(w+e<<1)>>1]=i,or[u+(v+e<<1)>>1]=m,(0|(e=e+1|0))==(0|b))break A;for(i=0|br(Z,f),e=0;E=r+(0|br(e,y))|0,m=65535&((0|cr[a+(E+2)>>0])<<8|0|cr[a+(E+3)>>0]),B=65535&((0|cr[a+(E+4)>>0])<<8|0|cr[a+(E+5)>>0]),or[c+(h+e<<1)>>1]=(0|cr[a+E>>0])<<8|0|cr[a+(E+1)>>0],or[l+(w+e<<1)>>1]=m,or[u+(v+e<<1)>>1]=B,B=r+(e<<3)|0,or[g+(i+e<<1)>>1]=(0|cr[a+(B+6)>>0])<<8|0|cr[a+(B+7)>>0],(0|(e=e+1|0))!=(0|b););}}while(0);f=f+1|0}while((0|f)!=(0|p));ur=k}},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+64|0,n=t+36|0,i=t+48|0,c=t,1==(0|ar[(r|=0)>>2])&&12==(-4&(o=0|ar[(a=r+4|0)>>2])|0)){switch(ar[n>>2]=0,ar[(l=4+n|0)>>2]=0,(ar[8+n>>2]=0)|o){case 12:case 14:e=0|ar[r+12>>2],ar[c>>2]=1,ar[c+4>>2]=14==(0|o)?12:14,tr[c+8>>0]=0,tr[(o=c+9|0)>>0]=0|tr[i>>0],tr[o+1>>0]=0|tr[i+1>>0],tr[o+2>>0]=0|tr[i+2>>0],ar[c+12>>2]=e,ar[c+16>>2]=0,ar[(e=c+20|0)>>2]=0,gA[c+24>>2]=.10000000149011612,gA[c+28>>2]=0,gA[c+32>>2]=0,Nl(n,c),0|(e=0|ar[e>>2])&&du(e),e=0|ar[a>>2];break;default:e=o}switch(0|e){case 13:case 15:f=0|ar[r+12>>2],ar[c>>2]=1,ar[c+4>>2]=15==(0|e)?13:15,tr[c+8>>0]=1,tr[(o=c+9|0)>>0]=0|tr[i>>0],tr[o+1>>0]=0|tr[i+1>>0],tr[o+2>>0]=0|tr[i+2>>0],ar[c+12>>2]=f,ar[(i=c+16|0)>>2]=0,ar[(f=c+20|0)>>2]=0,gA[c+24>>2]=.10000000149011612,gA[c+28>>2]=0,(o=(gA[c+32>>2]=0)|ar[l>>2])>>>0>=(0|ar[(e=8+n|0)>>2])>>>0?(Nl(n,c),0|(i=0|ar[f>>2])&&du(i)):(ar[o>>2]=ar[c>>2],ar[o+4>>2]=ar[c+4>>2],ar[o+8>>2]=ar[c+8>>2],ar[o+12>>2]=ar[c+12>>2],ar[o+16>>2]=ar[i>>2],ar[o+20>>2]=ar[f>>2],ar[i>>2]=0,c=c+24|(ar[f>>2]=0),ar[(r=o+24|0)>>2]=ar[c>>2],ar[r+4>>2]=ar[c+4>>2],ar[r+8>>2]=ar[c+8>>2],ar[l>>2]=o+36);break;default:e=8+n|0}return ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[l>>2],ar[A+8>>2]=ar[e>>2],ar[e>>2]=0,void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a=0,c=0,l=0,u=0,b=0,s=0,d=0;switch(ur=(o=ur)+16|0,n=o+4|0,t=o,a=0|hu(80),ar[a+4>>2]=0,ar[a+8>>2]=0,ar[a>>2]=6208,ar[(i=a+12|0)>>2]=0,ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i+12>>2]=0,ar[i+16>>2]=0,ar[a+32>>2]=32215,ar[a+36>>2]=0,ar[a+40>>2]=0,ar[a+44>>2]=99,ar[a+48>>2]=99,u=a+52|0,ar[(l=a+72|0)>>2]=0,ar[a+76>>2]=0,ar[u>>2]=0,ar[u+4>>2]=0,ar[u+8>>2]=0,ar[u+12>>2]=0,ar[a+68>>2]=l,l=i,c=(u=a)+16|0,bu(a),su(a),e=0|ar[c>>2],ar[i>>2]=l,ar[c>>2]=u,0|e&&ku(e),du(a),e=0|ar[r>>2],f=0|ar[e+24>>2],c=0|ar[e+28>>2],0|ar[e+36>>2]){case 14:yo(i,f,c,1,12),e=i;break;case 12:yo(i,f,c,1,14),e=i;break;case 15:yo(i,f,c,1,13),e=i;break;case 13:yo(i,f,c,1,15),e=i;break;default:return ar[A>>2]=0,ar[A+4>>2]=0,du(a),void(ur=o)}if(Bo(e,10,f,c,255&(0|Vo(0|ar[r>>2],10))),ar[n>>2]=0,r=(ar[t>>2]=0)|Ro(0|ar[r>>2],10,n),f=0|Fo(e,10,t),0<(0|c)&0<(0|(a=(0|(i=0|ar[t>>2]))<(0|(a=0|ar[n>>2]))?i:a))){i=0;do{for(e=0;d=r+((b=1|e)+(0|br(0|ar[n>>2],i)))|0,s=f+((0|br(0|ar[t>>2],i))+e)|0,tr[s>>0]=0|tr[d>>0],s=r+((0|br(0|ar[n>>2],i))+e)|0,b=f+(b+(0|br(0|ar[t>>2],i)))|0,tr[b>>0]=0|tr[s>>0],(0|(e=e+2|0))<(0|a););i=i+1|0}while((0|i)!=(0|c))}ar[A>>2]=l,ar[A+4>>2]=u,ur=o},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t=0;if(ur=(n=ur)+48|0,f=n+36|0,e=n,2==(0|ar[(r|=0)>>2])&&0==(0|ar[r+4>>2]))return ar[f>>2]=0,ar[(i=f+4|0)>>2]=0,t=(ar[f+8>>2]=0)|tr[r+8>>0],r=0|ar[r+12>>2],ar[e>>2]=0,ar[e+4>>2]=1,tr[e+8>>0]=t,ar[e+12>>2]=r,ar[e+16>>2]=0,ar[(r=e+20|0)>>2]=0,gA[e+24>>2]=.10000000149011612,gA[e+28>>2]=0,gA[e+32>>2]=0,Nl(f,e),0|(e=0|ar[r>>2])&&du(e),ar[A>>2]=ar[f>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[f+8>>2],void(ur=n);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=n},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0;if(ur=(s=ur)+16|0,u=s+12|0,b=s+8|0,a=s+4|0,c=s,i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(l=i+12|0)>>2]=0,ar[4+l>>2]=0,ar[8+l>>2]=0,ar[12+l>>2]=0,ar[16+l>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,e=i+52|0,ar[(B=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[i+68>>2]=B,ar[A>>2]=l,B=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[B>>2],ar[l>>2]=l,ar[B>>2]=i,0|e&&ku(e),du(i),B=0|ar[r>>2],yo(l,o=0|ar[B+24>>2],B=0|ar[B+28>>2],0,1),n=(1+o|0)/2|0,p=(B+1|0)/2|0,Bo(l,0,o,B,i=255&(e=0|Vo(0|ar[r>>2],0))),Bo(l,1,n,p,i),Bo(l,2,n,p,i),(t=0|Eo(0|ar[r>>2],6))?Bo(l,6,o,B,y=255&(0|Vo(0|ar[r>>2],6))):y=0,e<<24>>24==8){if(ar[u>>2]=0,ar[b>>2]=0,ar[a>>2]=0,i=(ar[c>>2]=0)|Ro(0|ar[r>>2],0,c),f=0|Fo(l,0,a),g=0|Fo(l,1,u),Z=0|Fo(l,2,b),vb(0|g,-128,0|br(0|ar[u>>2],p)),vb(0|Z,-128,0|br(0|ar[b>>2],p)),0<(0|B))for(e=0;hb(0|(p=f+(0|br(0|ar[a>>2],e))|0),i+(0|br(0|ar[c>>2],e))|0,0|o),(0|(e=e+1|0))!=(0|B););}else{ar[u>>2]=0,ar[b>>2]=0,ar[a>>2]=0,g=(ar[c>>2]=0)|Ro(0|ar[r>>2],0,c),Z=0|Fo(l,0,a),k=0|Fo(l,1,u),h=0|Fo(l,2,b),ar[c>>2]=(0|ar[c>>2])/2|0,ar[a>>2]=(0|ar[a>>2])/2|0,w=(0|ar[u>>2])/2|0,ar[u>>2]=w,v=(0|ar[b>>2])/2|0,ar[b>>2]=v,m=0<(0|B);do{if(m){if(f=128<>1]=f,or[h+(d+e<<1)>>1]=f,(0|(e=e+1|0))<(0|n););i=i+1|0}while((0|i)<(0|p));if(!m)break}if(hb(0|Z,0|g,0|(e=o<<1)),1!=(0|B))for(i=1;hb(Z+((0|br(0|ar[a>>2],i))<<1)|0,g+((0|br(0|ar[c>>2],i))<<1)|0,0|e),(0|(i=i+1|0))!=(0|B););}}while(0)}if(t){if(ar[u>>2]=0,A=(ar[b>>2]=0)|Ro(0|ar[r>>2],6,u),f=0|Fo(l,6,b),i=o<<(8>>0&1),0<(0|B))for(e=0;hb(0|(r=f+(0|br(0|ar[b>>2],e))|0),A+(0|br(0|ar[u>>2],e))|0,0|i),(0|(e=e+1|0))!=(0|B););ur=s}else ur=s},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0;switch(ur=(t=ur)+64|0,n=t+36|0,o=t+48|0,l=t,0|ar[(r|=0)>>2]){case 0:case 2:if(0==(0|ar[r+4>>2])&&8==(0|ar[r+12>>2]))return ar[n>>2]=0,ar[(u=4+n|0)>>2]=0,(ar[8+n>>2]=0)|tr[r+8>>0]?(c=8+n|0,r=f=a=0):(ar[l>>2]=1,ar[l+4>>2]=10,tr[l+8>>0]=0,tr[(e=l+9|0)>>0]=0|tr[o>>0],tr[e+1>>0]=0|tr[o+1>>0],tr[e+2>>0]=0|tr[o+2>>0],ar[l+12>>2]=8,ar[l+16>>2]=0,ar[(e=l+20|0)>>2]=0,gA[l+24>>2]=.10000000149011612,gA[l+28>>2]=0,i=8+n|(gA[l+32>>2]=0),Nl(n,l),0|(e=0|ar[e>>2])&&du(e),a=r=0|ar[u>>2],f=0|ar[(c=i)>>2]),ar[l>>2]=1,ar[l+4>>2]=11,tr[l+8>>0]=1,tr[(e=l+9|0)>>0]=0|tr[o>>0],tr[e+1>>0]=0|tr[o+1>>0],tr[e+2>>0]=0|tr[o+2>>0],ar[l+12>>2]=8,ar[(e=l+16|0)>>2]=0,ar[(i=l+20|0)>>2]=0,gA[l+24>>2]=.15000000596046448,gA[l+28>>2]=0,f>>>(gA[l+32>>2]=0)<=a>>>0?(Nl(n,l),0|(e=0|ar[i>>2])&&du(e)):(ar[r>>2]=ar[l>>2],ar[r+4>>2]=ar[l+4>>2],ar[r+8>>2]=ar[l+8>>2],ar[r+12>>2]=ar[l+12>>2],ar[a+16>>2]=ar[e>>2],ar[a+20>>2]=ar[i>>2],ar[e>>2]=0,l=l+24|(ar[i>>2]=0),ar[(o=a+24|0)>>2]=ar[l>>2],ar[o+4>>2]=ar[l+4>>2],ar[o+8>>2]=ar[l+8>>2],ar[u>>2]=a+36),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[u>>2],ar[A+8>>2]=ar[c>>2],ar[c>>2]=0,void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0,v=0;if(ur=(u=ur)+16|0,c=u+8|0,t=u+4|0,l=u,k=0|ar[(r|=0)>>2],o=0|ar[k+24>>2],a=0|ar[k+28>>2],(0|Vo(k,0))<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=u);if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(b=f+12|0)>>2]=0,ar[b+4>>2]=0,ar[b+8>>2]=0,ar[b+12>>2]=0,ar[b+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,k=f+52|0,ar[(d=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[k>>2]=0,ar[k+4>>2]=0,ar[k+8>>2]=0,ar[k+12>>2]=0,ar[f+68>>2]=d,d=b,s=(k=f)+16|0,bu(f),su(f),e=0|ar[s>>2],ar[b>>2]=d,ar[s>>2]=k,0|e&&ku(e),du(f),e=0|Eo(0|ar[r>>2],6),0|tr[(n=i+8|0)>>0]?yo(b,o,a,1,11):yo(b,o,a,1,10),Bo(b,10,o,a,8),ar[c>>2]=0,s=(ar[l>>2]=0)|Ro(0|ar[r>>2],0,c),i=e?0|Ro(0|ar[r>>2],6,t):0,b=0|Fo(b,10,l),0<(0|a))if(r=0<(0|o),e){f=0;do{if(0|tr[n>>0]){if(r)for(e=0;h=s+((0|br(0|ar[c>>2],f))+e)|0,h=0|tr[h>>0],v=e<<2,w=b+((0|br(0|ar[l>>2],f))+v)|0,tr[w>>0]=h,w=b+((1|v)+(0|br(0|ar[l>>2],f)))|0,tr[w>>0]=h,w=b+((2|v)+(0|br(0|ar[l>>2],f)))|0,tr[w>>0]=h,w=i+((0|br(0|ar[t>>2],f))+e)|0,v=b+((3|v)+(0|br(0|ar[l>>2],f)))|0,tr[v>>0]=0|tr[w>>0],(0|(e=e+1|0))!=(0|o););}else if(r)for(e=0;w=s+((0|br(0|ar[c>>2],f))+e)|0,w=0|tr[w>>0],h=3*e|0,v=b+((0|br(0|ar[l>>2],f))+h)|0,tr[v>>0]=w,v=b+(h+1+(0|br(0|ar[l>>2],f)))|0,tr[v>>0]=w,h=b+(h+2+(0|br(0|ar[l>>2],f)))|0,tr[h>>0]=w,(0|(e=e+1|0))!=(0|o););f=f+1|0}while((0|f)!=(0|a))}else{f=0;do{if(0|tr[n>>0]){if(r)for(e=0;h=s+((0|br(0|ar[c>>2],f))+e)|0,h=0|tr[h>>0],v=e<<2,w=b+((0|br(0|ar[l>>2],f))+v)|0,tr[w>>0]=h,w=b+((1|v)+(0|br(0|ar[l>>2],f)))|0,tr[w>>0]=h,w=b+((2|v)+(0|br(0|ar[l>>2],f)))|0,tr[w>>0]=h,v=b+((3|v)+(0|br(0|ar[l>>2],f)))|0,tr[v>>0]=-1,(0|(e=e+1|0))!=(0|o););}else if(r)for(e=0;w=s+((0|br(0|ar[c>>2],f))+e)|0,w=0|tr[w>>0],v=3*e|0,h=b+((0|br(0|ar[l>>2],f))+v)|0,tr[h>>0]=w,h=b+(v+1+(0|br(0|ar[l>>2],f)))|0,tr[h>>0]=w,v=b+(v+2+(0|br(0|ar[l>>2],f)))|0,tr[v>>0]=w,(0|(e=e+1|0))!=(0|o););f=f+1|0}while((0|f)!=(0|a))}ar[A>>2]=d,ar[A+4>>2]=k,ur=u},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a=0,c=0,l=0,u=0;if(ur=(o=ur)+64|0,t=o+36|0,n=o+48|0,u=o,1==(0|ar[(r|=0)>>2])&&10==(-2&(a=0|ar[(c=r+4|0)>>2])|0))return 3<=((e=0|ar[(f=i+4|0)>>2])+-1|0)>>>0||0|(l=0|ar[i+16>>2])&&0==(0|or[l+8>>1])?(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0):(ar[t>>2]=0,ar[(l=4+t|0)>>2]=0,11==((ar[8+t>>2]=0)|(e=10==(0|a)?(ar[u>>2]=0,ar[u+4>>2]=e,tr[u+8>>0]=0,tr[(e=u+9|0)>>0]=0|tr[n>>0],tr[e+1>>0]=0|tr[1+n>>0],tr[e+2>>0]=0|tr[2+n>>0],ar[u+12>>2]=8,ar[u+16>>2]=0,ar[(e=u+20|0)>>2]=0,gA[u+24>>2]=.75,gA[u+28>>2]=.5,gA[u+32>>2]=0,Nl(t,u),0|(e=0|ar[e>>2])&&du(e),0|ar[c>>2]):a))?(f=0|ar[f>>2],ar[u>>2]=0,ar[u+4>>2]=f,tr[u+8>>0]=1,tr[(f=u+9|0)>>0]=0|tr[n>>0],tr[f+1>>0]=0|tr[1+n>>0],tr[f+2>>0]=0|tr[2+n>>0],ar[u+12>>2]=8,ar[(f=u+16|0)>>2]=0,ar[(r=u+20|0)>>2]=0,gA[u+24>>2]=.75,gA[u+28>>2]=.5,(i=(gA[u+32>>2]=0)|ar[l>>2])>>>0>=(0|ar[(e=8+t|0)>>2])>>>0?(Nl(t,u),0|(f=0|ar[r>>2])&&du(f)):(ar[i>>2]=ar[u>>2],ar[i+4>>2]=ar[u+4>>2],ar[i+8>>2]=ar[u+8>>2],ar[i+12>>2]=ar[u+12>>2],ar[i+16>>2]=ar[f>>2],ar[i+20>>2]=ar[r>>2],ar[f>>2]=0,u=u+24|(ar[r>>2]=0),ar[(c=i+24|0)>>2]=ar[u>>2],ar[c+4>>2]=ar[u+4>>2],ar[c+8>>2]=ar[u+8>>2],ar[l>>2]=i+36)):e=8+t|0,ar[A>>2]=ar[t>>2],ar[A+4>>2]=ar[l>>2],ar[A+8>>2]=ar[e>>2],ar[e>>2]=0),void(ur=o);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=o},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d=0,k=0,h=0,w=0,v=0,m=0,g=0,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0;if(ur=(s=ur)+112|0,G=s+96|0,V=s+92|0,p=s+88|0,u=s+84|0,b=s+80|0,E=s+40|0,k=s,F=0|ar[(r|=0)>>2],l=0|ar[F+24>>2],F=0|ar[F+28>>2],f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(d=f+12|0)>>2]=0,ar[d+4>>2]=0,ar[d+8>>2]=0,ar[d+12>>2]=0,ar[d+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,e=f+52|0,ar[(C=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[f+68>>2]=C,ar[A>>2]=d,C=(ar[A+4>>2]=f)+16|0,bu(f),su(f),e=0|ar[C>>2],ar[d>>2]=d,ar[C>>2]=f,0|e&&ku(e),du(f),W=0|go(X=0|ar[i+4>>2]),I=0|Zo(X),yo(d,l,F,0,X),X=(l-1+(W&=255)|0)/(0|W)|0,C=(F+-1+(I&=255)|0)/(0|I)|0,c=11==(0|ar[36+(0|ar[r>>2])>>2]),Bo(d,0,l,F,8),Bo(d,1,X,C,8),Bo(d,2,X,C,8),c&&Bo(d,6,l,F,8),ar[G>>2]=0,ar[V>>2]=0,ar[p>>2]=0,ar[u>>2]=0,C=(ar[b>>2]=0)|Ro(0|ar[r>>2],10,b),Z=0|Fo(d,0,p),o=0|Fo(d,1,G),a=0|Fo(d,2,V),X=c?0|Fo(d,6,u):0,Be(E),e=0|ar[i+16>>2])for(A=0|tr[e+10>>0],ye(k,0|or[e+8>>1],0|or[e+4>>1]),A=A<<24>>24!=0,e=k,f=(r=E)+40|0;ar[r>>2]=ar[e>>2],e=e+4|0,(0|(r=r+4|0))<(0|f););else A=1;if(g=c?4:3,t=0<(0|F)){i=0<(0|l),k=E+4|0,v=E+8|0,m=E+12|0,d=0;do{e=C+(0|br(0|ar[b>>2],d))|0;A:do{if(i){if(A)r=0;else for(f=0;;){if(y=0|ef(.8554700016975403*((0|cr[e>>0])*gA[k>>2]+(0|cr[e+1>>0])*gA[v>>2]+(0|cr[e+2>>0])*gA[m>>2])),B=Z+((0|br(0|ar[p>>2],d))+f)|0,tr[B>>0]=(0|y)<0?16:((0|y)<219?y:219)+16&255,(0|(f=f+1|0))==(0|l))break A;e=e+g|0}for(;f=(0|(f=0|ef((0|cr[e>>0])*gA[k>>2]+(0|cr[e+1>>0])*gA[v>>2]+(0|cr[e+2>>0])*gA[m>>2])))<0?0:255<(0|f)?-1:255&f,B=Z+((0|br(0|ar[p>>2],d))+r)|0,tr[B>>0]=f,(0|(r=r+1|0))!=(0|l);)e=e+g|0}}while(0);d=d+1|0}while((0|d)!=(0|F));if(t){B=0<(0|l),m=0|br(g,W),g=E+16|0,Z=E+20|0,p=E+24|0,n=E+28|0,y=E+32|0,v=E+36|0,k=0;do{if(B)for(i=C+((d=0)|br(0|ar[b>>2],k))|0;N=+(0|cr[i>>0]),R=+(0|cr[i+1>>0]),w=+(0|cr[i+2>>0]),h=N*gA[g>>2]+R*gA[Z>>2]+w*gA[p>>2],w=N*gA[n>>2]+R*gA[y>>2]+w*gA[v>>2],r=(f=A?(E=0|ef(h+128),r=(0|k)/(0|I)|0,e=(0|d)/(0|W)|0,f=o+((0|br(0|ar[G>>2],r))+e)|0,tr[f>>0]=(0|E)<0?0:255<(0|E)?-1:255&E,(0|(f=0|ef(w+128)))<0?0:255<(0|f)?-1:255&f):(E=0|ef(.875*h+128),r=(0|k)/(0|I)|0,e=(0|d)/(0|W)|0,f=o+((0|br(0|ar[G>>2],r))+e)|0,tr[f>>0]=(0|E)<0?0:255<(0|E)?-1:255&E,(0|(f=0|ef(.875*w+128)))<0?0:255<(0|f)?-1:255&f),0|br(0|ar[V>>2],r)),tr[a+(e+r)>>0]=f,!((0|l)<=(0|(d=d+W|0)));)i=i+m|0;k=k+I|0}while((0|k)<(0|F));if(c&t&0<(0|l)){e=0;do{for(f=0;G=C+((f<<2|3)+(0|br(0|ar[b>>2],e)))|0,V=X+((0|br(0|ar[u>>2],e))+f)|0,tr[V>>0]=0|tr[G>>0],(0|(f=f+1|0))!=(0|l););e=e+1|0}while((0|e)!=(0|F));ur=s}else ur=s}else ur=s}else ur=s},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+64|0,n=t+36|0,f=t+48|0,l=t,1==(0|ar[(r|=0)>>2])&&10==(-2&(o=0|ar[(a=r+4|0)>>2])|0))return!(e=0|ar[i+16>>2])||0|or[e+8>>1]||0|(c=0|ar[r+16>>2])&&0==(0|tr[c+10>>0])?(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0):(ar[n>>2]=0,ar[(c=4+n|0)>>2]=0,11==((ar[8+n>>2]=0)|(e=10==(0|o)?(ar[l>>2]=0,ar[l+4>>2]=3,tr[l+8>>0]=0,tr[(e=l+9|0)>>0]=0|tr[f>>0],tr[e+1>>0]=0|tr[f+1>>0],tr[e+2>>0]=0|tr[f+2>>0],ar[l+12>>2]=8,ar[l+16>>2]=0,ar[(e=l+20|0)>>2]=0,gA[l+24>>2]=.75,gA[l+28>>2]=.5,gA[l+32>>2]=0,Nl(n,l),0|(e=0|ar[e>>2])&&du(e),0|ar[a>>2]):o))?(ar[l>>2]=0,ar[l+4>>2]=3,tr[l+8>>0]=1,tr[(i=l+9|0)>>0]=0|tr[f>>0],tr[i+1>>0]=0|tr[f+1>>0],tr[i+2>>0]=0|tr[f+2>>0],ar[l+12>>2]=8,ar[(f=l+16|0)>>2]=0,ar[(i=l+20|0)>>2]=0,gA[l+24>>2]=.75,gA[l+28>>2]=.5,(r=(gA[l+32>>2]=0)|ar[c>>2])>>>0>=(0|ar[(e=8+n|0)>>2])>>>0?(Nl(n,l),0|(f=0|ar[i>>2])&&du(f)):(ar[r>>2]=ar[l>>2],ar[r+4>>2]=ar[l+4>>2],ar[r+8>>2]=ar[l+8>>2],ar[r+12>>2]=ar[l+12>>2],ar[r+16>>2]=ar[f>>2],ar[r+20>>2]=ar[i>>2],ar[f>>2]=0,l=l+24|(ar[i>>2]=0),ar[(a=r+24|0)>>2]=ar[l>>2],ar[a+4>>2]=ar[l+4>>2],ar[a+8>>2]=ar[l+8>>2],ar[c>>2]=r+36)):e=8+n|0,ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[c>>2],ar[A+8>>2]=ar[e>>2],ar[e>>2]=0),void(ur=t);ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s=0,d=0,k=0,h=0,w=0,v=0,m=0;if(ur=(b=ur)+32|0,a=b+16|0,c=b+12|0,l=b+8|0,k=b+4|0,u=b,h=0|ar[(r|=0)>>2],o=0|ar[h+24>>2],h=0|ar[h+28>>2],f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(s=f+12|0)>>2]=0,ar[s+4>>2]=0,ar[s+8>>2]=0,ar[s+12>>2]=0,ar[s+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,e=f+52|0,ar[(d=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[f+68>>2]=d,ar[A>>2]=s,d=(ar[A+4>>2]=f)+16|0,bu(f),su(f),e=0|ar[d>>2],ar[s>>2]=s,ar[d>>2]=f,0|e&&ku(e),du(f),yo(s,o,h,0,3),f=11==(0|ar[36+(0|ar[r>>2])>>2]),Bo(s,0,o,h,8),Bo(s,1,o,h,8),Bo(s,2,o,h,8),f&&Bo(s,6,o,h,8),ar[a>>2]=0,ar[c>>2]=0,ar[l>>2]=0,ar[k>>2]=0,r=(ar[u>>2]=0)|Ro(0|ar[r>>2],10,u),n=0|Fo(s,0,l),t=0|Fo(s,1,a),d=0|Fo(s,2,c),A=f?0|Fo(s,6,k):0,(e=0|ar[i+16>>2])||sr(32569,32248,2161,32272),0|or[e+8>>1]&&sr(32595,32248,2162,32272),e=0<(0|h)&0<(0|o),f){if(!e)return void(ur=b);f=0;do{for(e=0;m=(0|br(0|ar[u>>2],f))+(e<<2)|0,w=0|tr[r+m>>0],v=0|tr[r+(m+2)>>0],s=0|tr[r+(m+3)>>0],i=n+((0|br(0|ar[l>>2],f))+e)|0,tr[i>>0]=0|tr[r+(m+1)>>0],i=t+((0|br(0|ar[a>>2],f))+e)|0,tr[i>>0]=v,i=d+((0|br(0|ar[c>>2],f))+e)|0,tr[i>>0]=w,i=A+((0|br(0|ar[k>>2],f))+e)|0,tr[i>>0]=s,(0|(e=e+1|0))!=(0|o););f=f+1|0}while((0|f)!=(0|h));ur=b}else if(e){e=0;do{for(f=0;k=(0|br(0|ar[u>>2],e))+(3*f|0)|0,v=0|tr[r+k>>0],w=0|tr[r+(k+2)>>0],m=n+((0|br(0|ar[l>>2],e))+f)|0,tr[m>>0]=0|tr[r+(k+1)>>0],m=t+((0|br(0|ar[a>>2],e))+f)|0,tr[m>>0]=w,m=d+((0|br(0|ar[c>>2],e))+f)|0,tr[m>>0]=v,(0|(f=f+1|0))!=(0|o););e=e+1|0}while((0|e)!=(0|h));ur=b}else ur=b},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l=0,u=0;if(ur=(c=ur)+64|0,a=c+36|0,n=c+48|0,o=c,(t=0|ar[(r|=0)+4>>2])>>>0<4&&0|tr[r+8>>0]&&0==(0|tr[i+8>>0])){if(ar[a>>2]=0,ar[(u=4+a|0)>>2]=0,e=(ar[8+a>>2]=0)|ar[r>>2],f=r+9|0,tr[n>>0]=0|tr[f>>0],tr[1+n>>0]=0|tr[f+1>>0],tr[2+n>>0]=0|tr[f+2>>0],f=0|ar[r+12>>2],i=0|ar[r+16>>2],(l=0==(0|(r=0|ar[r+20>>2])))||bu(r),ar[o>>2]=e,ar[o+4>>2]=t,tr[o+8>>0]=0,tr[(e=o+9|0)>>0]=0|tr[n>>0],tr[e+1>>0]=0|tr[1+n>>0],tr[e+2>>0]=0|tr[2+n>>0],ar[o+12>>2]=f,ar[o+16>>2]=i,ar[(e=o+20|0)>>2]=r,l||bu(r),gA[o+24>>2]=.10000000149011612,gA[o+28>>2]=0,f=8+a|(gA[o+32>>2]=0),Nl(a,o),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[a>>2],ar[A+4>>2]=ar[u>>2],ar[A+8>>2]=ar[f>>2],ar[f>>2]=0,ar[u>>2]=0,ar[a>>2]=0,!l&&(du(r),0|(e=0|ar[a>>2]))){if((0|(f=0|ar[u>>2]))!=(0|e)){for(;i=f+-36|0,ar[u>>2]=i,(0|(f=(f=0|ar[f+-16>>2])?(du(f),0|ar[u>>2]):i))!=(0|e););e=0|ar[a>>2]}vu(e)}ur=c}else ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=c},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t=0,o=0;t=0|ar[(r|=0)>>2],n=0|ar[t+24>>2],t=0|ar[t+28>>2],i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(f=i+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,o=i+52|0,ar[(e=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[o>>2]=0,ar[o+4>>2]=0,ar[o+8>>2]=0,ar[o+12>>2]=0,ar[i+68>>2]=e,ar[A>>2]=f,A=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[A>>2],ar[f>>2]=f,ar[A>>2]=i,0|e&&ku(e),du(i),o=0|ar[r>>2],yo(f,n,t,0|ar[o+32>>2],0|ar[o+36>>2]),0|Eo(0|ar[r>>2],0)&&No(f,r,0,0),0|Eo(0|ar[r>>2],1)&&No(f,r,1,1),0|Eo(0|ar[r>>2],2)&&No(f,r,2,2),0|Eo(0|ar[r>>2],3)&&No(f,r,3,3),0|Eo(0|ar[r>>2],4)&&No(f,r,4,4),0|Eo(0|ar[r>>2],5)&&No(f,r,5,5)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0;if(ur=(a=ur)+64|0,o=a+36|0,c=a+48|0,t=a,(n=0|ar[(r|=0)+4>>2])>>>0<4&&8==(0|ar[r+12>>2])){if(ar[o>>2]=0,ar[(b=4+o|0)>>2]=0,e=(ar[8+o>>2]=0)|ar[r>>2],f=0|tr[r+8>>0],l=r+9|0,tr[c>>0]=0|tr[l>>0],tr[c+1>>0]=0|tr[l+1>>0],tr[c+2>>0]=0|tr[l+2>>0],l=0|ar[r+16>>2],(u=0==(0|(r=0|ar[r+20>>2])))||bu(r),i=0|ar[i+12>>2],ar[t>>2]=e,ar[t+4>>2]=n,tr[t+8>>0]=f,tr[(e=t+9|0)>>0]=0|tr[c>>0],tr[e+1>>0]=0|tr[c+1>>0],tr[e+2>>0]=0|tr[c+2>>0],ar[t+12>>2]=i,ar[t+16>>2]=l,ar[(e=t+20|0)>>2]=r,u||bu(r),gA[t+24>>2]=.20000000298023224,gA[t+28>>2]=0,gA[t+32>>2]=.5,f=8+o|0,Nl(o,t),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[o>>2],ar[A+4>>2]=ar[b>>2],ar[A+8>>2]=ar[f>>2],ar[f>>2]=0,ar[b>>2]=0,ar[o>>2]=0,!u&&(du(r),0|(e=0|ar[o>>2]))){if((0|(f=0|ar[b>>2]))!=(0|e)){for(;c=f+-36|0,ar[b>>2]=c,(0|(f=(f=0|ar[f+-16>>2])?(du(f),0|ar[b>>2]):c))!=(0|e););e=0|ar[o>>2]}vu(e)}ur=a}else ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=a},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0,w=0,v=0,m=0;ur=(a=ur)+16|0,t=a+4|0,o=a,f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(n=f+12|0)>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,ar[12+n>>2]=0,ar[16+n>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,e=f+52|0,ar[(u=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[f+68>>2]=u,ar[A>>2]=n,u=(ar[A+4>>2]=f)+16|0,bu(f),su(f),e=0|ar[u>>2],ar[n>>2]=n,ar[u>>2]=f,0|e&&ku(e),du(f),u=0|ar[r>>2],yo(n,0|ar[u+24>>2],0|ar[u+28>>2],0|ar[u+32>>2],0|ar[u+36>>2]),u=i+12|0,l=6796;do{if(e=0|ar[l>>2],0|Eo(0|ar[r>>2],e)&&(Bo(n,e,b=0|Xo(0|ar[r>>2],e),s=0|Wo(0|ar[r>>2],e),0|ar[u>>2]),d=255&(0|Vo(0|ar[r>>2],e)),k=8-(d=(0|ar[u>>2])-d|0)|0,h=0|Ro(0|ar[r>>2],e,t),w=0|Fo(n,e,o),v=(0|ar[o>>2])/2|0,ar[o>>2]=v,0<(0|s)&0<(0|b))){A=0|ar[t>>2],f=0;do{for(i=0|br(A,f),c=0|br(v,f),e=0;m=0|cr[h+(i+e)>>0],or[w+(c+e<<1)>>1]=m<>>k,(0|(e=e+1|0))!=(0|b););f=f+1|0}while((0|f)!=(0|s))}l=l+4|0}while(6824!=(0|l));ur=a},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0;if(ur=(a=ur)+64|0,o=a+36|0,f=a+48|0,t=a,(n=0|ar[(r|=0)+4>>2])>>>0<4&&8!=(0|ar[r+12>>2])){if(ar[o>>2]=0,ar[(u=4+o|0)>>2]=0,e=(ar[8+o>>2]=0)|ar[r>>2],i=0|tr[r+8>>0],c=r+9|0,tr[f>>0]=0|tr[c>>0],tr[f+1>>0]=0|tr[c+1>>0],tr[f+2>>0]=0|tr[c+2>>0],c=0|ar[r+16>>2],(l=0==(0|(r=0|ar[r+20>>2])))||bu(r),ar[t>>2]=e,ar[t+4>>2]=n,tr[t+8>>0]=i,tr[(e=t+9|0)>>0]=0|tr[f>>0],tr[e+1>>0]=0|tr[f+1>>0],tr[e+2>>0]=0|tr[f+2>>0],ar[t+12>>2]=8,ar[t+16>>2]=c,ar[(e=t+20|0)>>2]=r,l||bu(r),gA[t+24>>2]=.20000000298023224,gA[t+28>>2]=0,gA[t+32>>2]=.5,i=8+o|0,Nl(o,t),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[o>>2],ar[A+4>>2]=ar[u>>2],ar[A+8>>2]=ar[i>>2],ar[i>>2]=0,ar[u>>2]=0,ar[o>>2]=0,!l&&(du(r),0|(e=0|ar[o>>2]))){if((0|(i=0|ar[u>>2]))!=(0|e)){for(;f=i+-36|0,ar[u>>2]=f,(0|(i=(i=0|ar[i+-16>>2])?(du(i),0|ar[u>>2]):f))!=(0|e););e=0|ar[o>>2]}vu(e)}ur=a}else ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=a},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n,t,o,a,c=0,l=0,u=0,b=0,s=0,d=0;ur=(a=ur)+16|0,t=a+4|0,o=a,i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(n=i+12|0)>>2]=0,ar[4+n>>2]=0,ar[8+n>>2]=0,ar[12+n>>2]=0,ar[16+n>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,f=i+52|0,ar[(e=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[f>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[i+68>>2]=e,ar[A>>2]=n,A=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[A>>2],ar[n>>2]=n,ar[A>>2]=i,0|e&&ku(e),du(i),f=0|ar[r>>2],yo(n,0|ar[f+24>>2],0|ar[f+28>>2],0|ar[f+32>>2],0|ar[f+36>>2]),f=6848;do{if(e=0|ar[f>>2],0|Eo(0|ar[r>>2],e)&&(Bo(n,e,c=0|Xo(0|ar[r>>2],e),l=0|Wo(0|ar[r>>2],e),8),u=(255&(0|Vo(0|ar[r>>2],e)))-8|0,b=0|Ro(0|ar[r>>2],e,t),ar[t>>2]=(0|ar[t>>2])/2|0,s=0|Fo(n,e,o),0<(0|l)&0<(0|c))){e=0;do{for(i=0;d=b+((0|br(0|ar[t>>2],e))+i<<1)|0,A=s+((0|br(0|ar[o>>2],e))+i)|0,tr[A>>0]=(0|lr[d>>1])>>>u,(0|(i=i+1|0))!=(0|c););e=e+1|0}while((0|e)!=(0|l))}f=f+4|0}while(6876!=(0|f));ur=a},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0;if(ur=(t=ur)+48|0,n=t+36|0,f=t,1==(0|ar[(r|=0)>>2])&&12==(-4&ar[r+4>>2]|0)&&8!=(0|(o=0|ar[r+12>>2]))){if(0|(e=0|ar[r+16>>2])){switch(0|or[e+8>>1]){case 0:case 8:case 11:case 14:return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}if(!(0|tr[e+10>>0]))return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}return ar[n>>2]=0,ar[(i=4+n|0)>>2]=0,e=(ar[8+n>>2]=0)|tr[r+8>>0],ar[f>>2]=0,ar[f+4>>2]=1,tr[f+8>>0]=e,ar[f+12>>2]=o,ar[f+16>>2]=0,ar[(e=f+20|0)>>2]=0,gA[f+24>>2]=.5,gA[f+28>>2]=0,gA[f+32>>2]=0,Nl(n,f),0|(e=0|ar[e>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[8+n>>2],void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0;if(ur=(y=ur)+112|0,g=y+96|0,a=y+92|0,Z=y+88|0,p=y+84|0,c=y+80|0,b=y+40|0,X=y,E=0|ar[(r|=0)>>2],v=0|ar[E+24>>2],m=0|ar[E+28>>2],E=255&(0|Vo(E,10)),o=15==(2|ar[36+(0|ar[r>>2])>>2]),f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(B=f+12|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,e=f+52|0,ar[(K=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[f+68>>2]=K,ar[A>>2]=B,K=(ar[A+4>>2]=f)+16|0,bu(f),su(f),e=0|ar[K>>2],ar[B>>2]=B,ar[K>>2]=f,0|e&&ku(e),du(f),yo(B,v,m,0,1),h=o?8:6,L=(1+v|0)/2|0,K=(1+m|0)/2|0,Bo(B,0,v,m,E),Bo(B,1,L,K,E),Bo(B,2,L,K,E),o&&Bo(B,6,v,m,E),ar[g>>2]=0,ar[a>>2]=0,ar[Z>>2]=0,ar[p>>2]=0,w=(ar[c>>2]=0)|Ro(0|ar[r>>2],10,g),n=0|Fo(B,0,a),L=0|Fo(B,1,Z),K=0|Fo(B,2,p),x=o?0|Fo(B,6,c):0,ar[a>>2]=(0|ar[a>>2])/2|0,ar[Z>>2]=(0|ar[Z>>2])/2|0,ar[p>>2]=(0|ar[p>>2])/2|0,ar[c>>2]=(0|ar[c>>2])/2|0,l=1<>2],s=1&(t=15==(1|ar[P+36>>2])),e=0|ar[P+40>>2],(d=0==(0|(P=0|ar[P+44>>2])))||bu(P),Be(b),e)for(A=0|tr[10+(0|ar[i+16>>2])>>0],ye(X,0|or[e+8>>1],0|or[e+4>>1]),A=A<<24>>24!=0,e=X,f=(B=b)+40|0;ar[B>>2]=ar[e>>2],e=e+4|0,(0|(B=B+4|0))<(0|f););else A=1;if(r=0<(0|m)){X=0<(0|v),i=1^s,G=t?3:2,V=3^s,F=t?5:4,R=5-s|0,N=4+b|0,_=8+b|0,Y=12+b|0,Q=t?7:6,D=7^s,J=65535&u,E=0;do{if(X)if(W=+gA[N>>2],I=+gA[_>>2],C=+gA[Y>>2],M=0|br(0|ar[g>>2],E),A)for(f=0;B=w+(M+(0|br(f,h)))|0,e=(0|(e=0|ef(((0|cr[B+s>>0])<<8|0|cr[B+i>>0]|0)*W+((0|cr[B+G>>0])<<8|0|cr[B+V>>0]|0)*I+((0|cr[B+F>>0])<<8|0|cr[B+R>>0]|0)*C)))<0?0:(0|e)<(0|k)?65535&e:J,q=n+((0|br(0|ar[a>>2],E))+f<<1)|0,or[q>>1]=e,o&&(q=x+((0|br(0|ar[c>>2],E))+f<<1)|0,or[q>>1]=(0|cr[B+Q>>0])<<8|0|cr[B+D>>0]),(0|(f=f+1|0))!=(0|v););else for(f=0;B=w+(M+(0|br(f,h)))|0,e=(0|(e=0|ef(.8554700016975403*(((0|cr[B+s>>0])<<8|0|cr[B+i>>0]|0)*W+((0|cr[B+G>>0])<<8|0|cr[B+V>>0]|0)*I+((0|cr[B+F>>0])<<8|0|cr[B+R>>0]|0)*C)+16)))<0?0:(0|e)<(0|k)?65535&e:J,q=n+((0|br(0|ar[a>>2],E))+f<<1)|0,or[q>>1]=e,o&&(q=x+((0|br(0|ar[c>>2],E))+f<<1)|0,or[q>>1]=(0|cr[B+Q>>0])<<8|0|cr[B+D>>0]),(0|(f=f+1|0))!=(0|v););E=E+1|0}while((0|E)!=(0|m));if(r){D=0<(0|v),J=1^s,M=t?3:2,x=3^s,V=t?5:4,F=5-s|0,R=16+b|0,N=20+b|0,_=24+b|0,Y=28+b|0,Q=32+b|0,G=36+b|0,H=+(65535&l|0),r=65535&u,E=0;do{if(D)if(X=(0|E)/2|0,T=+gA[R>>2],U=+gA[N>>2],S=+gA[_>>2],O=+gA[Y>>2],z=+gA[Q>>2],j=+gA[G>>2],i=0|br(0|ar[g>>2],E),A)for(B=0;e=w+(i+(0|br(B,h)))|0,e=(0|(e=0|ef(H+((W=+((0|cr[e+s>>0])<<8|0|cr[e+J>>0]|0))*T+(I=+((0|cr[e+M>>0])<<8|0|cr[e+x>>0]|0))*U+(C=+((0|cr[e+V>>0])<<8|0|cr[e+F>>0]|0))*S))))<0?0:(0|e)<(0|k)?65535&e:r,f=(0|B)/2|0,q=L+((0|br(0|ar[Z>>2],X))+f<<1)|0,or[q>>1]=e,e=(0|(e=0|ef(H+(W*O+I*z+C*j))))<0?0:(0|e)<(0|k)?65535&e:r,q=K+((0|br(0|ar[p>>2],X))+f<<1)|0,or[q>>1]=e,(0|(B=B+2|0))<(0|v););else for(B=0;e=w+(i+(0|br(B,h)))|0,e=(0|(e=0|ef(H+.8554700016975403*((W=+((0|cr[e+s>>0])<<8|0|cr[e+J>>0]|0))*T+(I=+((0|cr[e+M>>0])<<8|0|cr[e+x>>0]|0))*U+(C=+((0|cr[e+V>>0])<<8|0|cr[e+F>>0]|0))*S))))<0?0:(0|e)<(0|k)?65535&e:r,f=(0|B)/2|0,q=L+((0|br(0|ar[Z>>2],X))+f<<1)|0,or[q>>1]=e,e=(0|(e=0|ef(H+.8554700016975403*(W*O+I*z+C*j))))<0?0:(0|e)<(0|k)?65535&e:r,q=K+((0|br(0|ar[p>>2],X))+f<<1)|0,or[q>>1]=e,(0|(B=B+2|0))<(0|v););E=E+2|0}while((0|E)<(0|m))}}ur=(d||du(P),y)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0,c=0,l=0;if(ur=(t=ur)+64|0,n=t+36|0,f=t+48|0,l=t,0==(0|ar[(r|=0)>>2])&&1==(0|ar[r+4>>2])&&8!=(0|(o=0|ar[(a=r+12|0)>>2]))){e=0|ar[r+16>>2];A:do{if(0|e){switch(0|or[e+8>>1]){case 0:case 8:case 11:case 14:break;default:break A}return ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,void(ur=t)}}while(0);return ar[n>>2]=0,ar[(c=4+n|0)>>2]=0,e=(ar[8+n>>2]=0)|tr[(i=r+8|0)>>0],ar[l>>2]=1,ar[l+4>>2]=e<<24>>24?15:14,tr[l+8>>0]=e,ar[l+12>>2]=o,ar[l+16>>2]=0,ar[(e=l+20|0)>>2]=0,gA[l+24>>2]=.5,gA[l+28>>2]=0,r=8+n|(gA[l+32>>2]=0),Nl(n,l),0|(e=0|ar[e>>2])&&du(e),i=0|tr[i>>0],e=0|ar[a>>2],ar[l>>2]=1,ar[l+4>>2]=i<<24>>24?13:12,tr[l+8>>0]=i,tr[(i=l+9|0)>>0]=0|tr[f>>0],tr[i+1>>0]=0|tr[f+1>>0],tr[i+2>>0]=0|tr[f+2>>0],ar[l+12>>2]=e,ar[(e=l+16|0)>>2]=0,ar[(i=l+20|0)>>2]=0,gA[l+24>>2]=.5,gA[l+28>>2]=0,(f=(gA[l+32>>2]=0)|ar[c>>2])>>>0>=(0|ar[r>>2])>>>0?(Nl(n,l),0|(e=0|ar[i>>2])&&du(e)):(ar[f>>2]=ar[l>>2],ar[f+4>>2]=ar[l+4>>2],ar[f+8>>2]=ar[l+8>>2],ar[f+12>>2]=ar[l+12>>2],ar[f+16>>2]=ar[e>>2],ar[f+20>>2]=ar[i>>2],ar[e>>2]=0,l=l+24|(ar[i>>2]=0),ar[(a=f+24|0)>>2]=ar[l>>2],ar[a+4>>2]=ar[l+4>>2],ar[a+8>>2]=ar[l+8>>2],ar[c>>2]=f+36),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[c>>2],ar[A+8>>2]=ar[r>>2],void(ur=t)}ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0,ur=t},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z=0,p=0,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0;if(ur=(g=ur)+64|0,k=g+56|0,h=g+52|0,w=g+48|0,v=g+44|0,m=g+40|0,B=g+20|0,p=g,y=0|ar[(r|=0)>>2],b=0|ar[y+24>>2],s=0|ar[y+28>>2],y=255&(0|Vo(y,0)),d=0|Eo(0|ar[r>>2],6),u=1&(X=15==(1|ar[(f=i+4|0)>>2])),W=X<<31>>31,i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(Z=i+12|0)>>2]=0,ar[Z+4>>2]=0,ar[Z+8>>2]=0,ar[Z+12>>2]=0,ar[Z+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,e=i+52|0,ar[(j=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[e>>2]=0,ar[e+4>>2]=0,ar[e+8>>2]=0,ar[e+12>>2]=0,ar[i+68>>2]=j,ar[A>>2]=Z,j=(ar[A+4>>2]=i)+16|0,bu(i),su(i),e=0|ar[j>>2],ar[Z>>2]=Z,ar[j>>2]=i,0|e&&ku(e),du(i),yo(Z,b,s,1,0|ar[f>>2]),j=d?8:6,Bo(Z,10,b,s,y),d&&Bo(Z,6,b,s,y),ar[k>>2]=0,ar[h>>2]=0,ar[w>>2]=0,ar[v>>2]=0,t=(ar[m>>2]=0)|Fo(Z,10,k),o=0|Ro(0|ar[r>>2],0,h),a=0|Ro(0|ar[r>>2],1,w),c=0|Ro(0|ar[r>>2],2,v),z=d?0|Ro(0|ar[r>>2],6,m):0,f=(l=1<>2],e=0|ar[O+40>>2],(n=0==(0|(O=0|ar[O+44>>2])))||bu(O),U=e?(U=0|tr[e+10>>0],pe(p,0|or[e+8>>1],0|or[e+4>>1]),ar[B>>2]=ar[p>>2],ar[B+4>>2]=ar[p+4>>2],ar[B+8>>2]=ar[p+8>>2],ar[B+12>>2]=ar[p+12>>2],ar[B+16>>2]=ar[p+16>>2],U<<24>>24!=0):1,0<(0|s)){S=0<(0|b),D=1<>>8&255,y=0;do{if(S)for(B=(0|y)/2|0,p=0;e=o+(((0|br(0|ar[h>>2],y))/2|0)+p<<1)|0,I=+(0|lr[e>>1]),e=(0|p)/2|0,r=a+(((0|br(0|ar[w>>2],B))/2|0)+e<<1)|0,C=+((0|lr[r>>1])-D|0),e=c+(((0|br(0|ar[v>>2],B))/2|0)+e<<1)|0,E=+((0|lr[e>>1])-D|0),C=U?C:1.142899990081787*C,E=U?E:1.142899990081787*E,A=0<=(0|(e=0|ef((I=U?I:1.1689000129699707*(I+-16))+gA[J>>2]*E)))?(0|e)<(0|l)?(r=255&e,(65535&e)>>>8&255):(r=G,X):r=0,i=0<=(0|(e=0|ef(I+C*gA[M>>2]-E*gA[T>>2])))?(0|e)<(0|l)?(Z=255&e,(65535&e)>>>8&255):(Z=G,X):Z=0,e=0<=(0|(e=0|ef(I+C*gA[F>>2])))?(0|e)<(0|l)?(f=255&e,(65535&e)>>>8&255):(f=G,X):f=0,x=t+(((H=0|br(p,j))|u)+(0|br(0|ar[k>>2],y)))|0,tr[x>>0]=A,A=t+(R+H+(0|br(0|ar[k>>2],y)))|0,tr[A>>0]=i,A=t+(N+H+(0|br(0|ar[k>>2],y)))|0,tr[A>>0]=e,A=t+(_+H+(0|br(0|ar[k>>2],y)))|0,tr[A>>0]=r,r=t+(Y+H+(0|br(0|ar[k>>2],y)))|0,tr[r>>0]=Z,r=t+(Q+H+(0|br(0|ar[k>>2],y)))|0,tr[r>>0]=f,d&&(r=z+(((0|br(0|ar[m>>2],y))/2|0)+p<<1)|0,H=t+((V|(x=p<<3))+(0|br(0|ar[k>>2],y)))|0,tr[H>>0]=(0|lr[r>>1])>>>8,H=z+(((0|br(0|ar[m>>2],y))/2|0)+p<<1)|0,x=t+(W+x+(0|br(0|ar[k>>2],y)))|0,tr[x>>0]=or[H>>1]),(0|(p=p+1|0))!=(0|b););y=y+1|0}while((0|y)!=(0|s))}ur=(n||du(O),g)},function(A,e,r,i,f){var n,t;return A|=0,e|=0,i|=0,f|=0,ur=(t=ur)+48|0,n=t+36|0,e=t,8==(0|(i=0|ar[(r|=0)+12>>2]))||0|ar[r>>2]?(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0):(ar[n>>2]=0,ar[(f=4+n|0)>>2]=0,r=(ar[8+n>>2]=0)|tr[r+8>>0],ar[e>>2]=1,ar[e+4>>2]=3,tr[e+8>>0]=r,ar[e+12>>2]=i,ar[e+16>>2]=0,ar[(r=e+20|0)>>2]=0,gA[e+24>>2]=.5,gA[e+28>>2]=0,gA[e+32>>2]=0,Nl(n,e),0|(e=0|ar[r>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[f>>2],ar[A+8>>2]=ar[8+n>>2]),void(ur=t)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,nA=0;if(ur=(W=ur)+80|0,p=W+68|0,y=W+64|0,B=W+60|0,E=W+56|0,X=W+52|0,v=W+48|0,m=W+44|0,g=W+40|0,R=W+20|0,V=W,e=0|ar[(r|=0)>>2],G=0|ar[e+36>>2],F=255&(e=0|Vo(e,0)),i=0|Vo(0|ar[r>>2],1),f=0|Vo(0|ar[r>>2],2),I=(Z=0|Eo(0|ar[r>>2],6))?255&(0|Vo(0|ar[r>>2],6)):0,e<<24>>24==8|i<<24>>24==8|f<<24>>24==8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=W);if(e<<24>>24!=i<<24>>24||e<<24>>24!=f<<24>>24)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=W);if(e=0|ar[r>>2],C=0|ar[e+40>>2],(w=0==(0|(h=0|ar[e+44>>2])))||(bu(h),e=0|ar[r>>2]),k=0|ar[e+24>>2],d=0|ar[e+28>>2],i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(f=i+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,nA=i+52|0,ar[(fA=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[nA>>2]=0,ar[nA+4>>2]=0,ar[nA+8>>2]=0,ar[nA+12>>2]=0,ar[i+68>>2]=fA,fA=f,iA=(nA=i)+16|0,bu(i),su(i),e=0|ar[iA>>2],ar[f>>2]=fA,ar[iA>>2]=nA,0|e&&ku(e),du(i),yo(f,k,d,1,3),Bo(f,3,k,d,F),Bo(f,4,k,d,F),Bo(f,5,k,d,F),Z&&Bo(f,6,k,d,I),ar[p>>2]=0,ar[y>>2]=0,ar[B>>2]=0,ar[E>>2]=0,ar[X>>2]=0,ar[v>>2]=0,ar[m>>2]=0,c=(ar[g>>2]=0)|Ro(0|ar[r>>2],0,p),l=0|Ro(0|ar[r>>2],1,y),u=0|Ro(0|ar[r>>2],2,B),b=0|Fo(f,3,X),s=0|Fo(f,4,v),iA=0|Fo(f,5,m),eA=Z?(rA=0|Ro(0|ar[r>>2],6,E),0|Fo(f,6,g)):rA=0,o=(t=1<>2]=(0|ar[p>>2])/2|0,ar[y>>2]=(0|ar[y>>2])/2|0,ar[B>>2]=(0|ar[B>>2])/2|0,ar[E>>2]=(0|ar[E>>2])/2|0,ar[X>>2]=(0|ar[X>>2])/2|0,ar[v>>2]=(0|ar[v>>2])/2|0,ar[m>>2]=(0|ar[m>>2])/2|0,ar[g>>2]=(0|ar[g>>2])/2|0,Ze(R),C?(e=0|or[C+8>>1],K=0|tr[C+10>>0],pe(V,e,0|or[C+4>>1]),ar[R>>2]=ar[V>>2],ar[R+4>>2]=ar[V+4>>2],ar[R+8>>2]=ar[V+8>>2],ar[R+12>>2]=ar[V+12>>2],ar[R+16>>2]=ar[V+16>>2],K=K<<24>>24!=0,e&=65535):(K=1,e=2),0<(0|d)){q=0<(0|k),$=k<<1,AA=0==(0|e),L=8==(0|e),j=1<>n,R=0|br(0|ar[y>>2],D),Q=0|br(0|ar[p>>2],G),D=0|br(0|ar[B>>2],D),J=0|br(0|ar[X>>2],G),M=0|br(0|ar[m>>2],G),T=0|br(0|ar[v>>2],G),U=+gA[H>>2],S=+gA[x>>2],O=+gA[P>>2],z=+gA[F>>2],V=0;do{C=R+(e=V>>a)|0,r=Q+V|0,e=0|or[u+(D+e<<1)>>1];do{if(AA){if(i=M+V|0,f=J+V|0,I=T+V|0,K){or[b+(f<<1)>>1]=e,or[s+(I<<1)>>1]=0|or[c+(r<<1)>>1],e=0|or[l+(C<<1)>>1];break}or[b+(f<<1)>>1]=16+((128+(219*(65535&e)|0)|0)>>>8),or[s+(I<<1)>>1]=16+((128+(219*(0|lr[c+(r<<1)>>1])|0)|0)>>>8),e=16+((128+(219*(0|lr[l+(C<<1)>>1])|0)|0)>>>8)&65535;break}if(f=(65535&e)-j|0,i=0|or[c+(r<<1)>>1],e=(0|lr[l+(C<<1)>>1])-j|0,L){r=(i=(C=65535&i)-e|0)+f|0,or[b+(J+V<<1)>>1]=(0|r)<0?0:255<(0|r)?255:255&r,e=C+e|0,or[s+(T+V<<1)>>1]=(0|e)<0?0:255<(0|e)?255:255&e,e=(0|(e=i-f|0))<0?0:255<(0|e)?255:255&e,i=M+V|0;break}_=+(65535&i),Y=+(0|e),N=+(0|f),Y=K?Y:1.142899990081787*Y,e=(0|(e=0|ef((_=K?_:1.1689000129699707*(_+-16))+(N=K?N:1.142899990081787*N)*U)))<0?0:65535&((0|e)<(0|t)?e:o),or[b+(J+V<<1)>>1]=e,e=(0|(e=0|ef(_+Y*S+N*O)))<0?0:65535&((0|e)<(0|t)?e:o),or[s+(T+V<<1)>>1]=e,e=(0|(e=0|ef(_+Y*z)))<0?0:65535&((0|e)<(0|t)?e:o),i=M+V|0}while(0);or[iA+(i<<1)>>1]=e,V=V+1|0}while((0|V)!=(0|k))}Z&&hb(0|(T=eA+((0|br(0|ar[g>>2],G))<<1)|0),rA+((0|br(0|ar[E>>2],G))<<1)|0,0|$),G=G+1|0}while((0|G)!=(0|d))}ar[A>>2]=fA,ar[A+4>>2]=nA,ur=(w||du(h),W)},function(A,e,r,i,f){var n;return A|=0,e|=0,i|=0,f|=0,ur=(n=ur)+48|0,f=n+36|0,e=n,8!=(0|ar[(r|=0)+12>>2])||0|ar[r>>2]?(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0):(ar[f>>2]=0,ar[(i=f+4|0)>>2]=0,r=(ar[f+8>>2]=0)|tr[r+8>>0],ar[e>>2]=1,ar[e+4>>2]=3,tr[e+8>>0]=r,ar[e+12>>2]=8,ar[e+16>>2]=0,ar[(r=e+20|0)>>2]=0,gA[e+24>>2]=.5,gA[e+28>>2]=0,gA[e+32>>2]=0,Nl(f,e),0|(e=0|ar[r>>2])&&du(e),ar[A>>2]=ar[f>>2],ar[A+4>>2]=ar[i>>2],ar[A+8>>2]=ar[f+8>>2]),void(ur=n)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y,B,E,X,W,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0;if(ur=(W=ur)+80|0,p=W+68|0,y=W+64|0,B=W+60|0,E=W+56|0,X=W+52|0,v=W+48|0,m=W+44|0,g=W+40|0,Y=W+20|0,V=W,e=0|ar[(r|=0)>>2],G=0|ar[e+36>>2],_=255&(e=0|Vo(e,0)),i=0|Vo(0|ar[r>>2],1),f=0|Vo(0|ar[r>>2],2),I=(Z=0|Eo(0|ar[r>>2],6))?255&(0|Vo(0|ar[r>>2],6)):0,e<<24>>24!=8|i<<24>>24!=8|f<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=W);if(e=0|ar[r>>2],C=0|ar[e+40>>2],(w=0==(0|(h=0|ar[e+44>>2])))||(bu(h),e=0|ar[r>>2]),k=0|ar[e+24>>2],d=0|ar[e+28>>2],i=0|hu(80),ar[i+4>>2]=0,ar[i+8>>2]=0,ar[i>>2]=6208,ar[(f=i+12|0)>>2]=0,ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f+12>>2]=0,ar[f+16>>2]=0,ar[i+32>>2]=32215,ar[i+36>>2]=0,ar[i+40>>2]=0,ar[i+44>>2]=99,ar[i+48>>2]=99,P=i+52|0,ar[(x=i+72|0)>>2]=0,ar[i+76>>2]=0,ar[P>>2]=0,ar[P+4>>2]=0,ar[P+8>>2]=0,ar[P+12>>2]=0,ar[i+68>>2]=x,x=f,H=(P=i)+16|0,bu(i),su(i),e=0|ar[H>>2],ar[f>>2]=x,ar[H>>2]=P,0|e&&ku(e),du(i),yo(f,k,d,1,3),Bo(f,3,k,d,_),Bo(f,4,k,d,_),Bo(f,5,k,d,_),Z&&Bo(f,6,k,d,I),ar[p>>2]=0,ar[y>>2]=0,ar[B>>2]=0,ar[E>>2]=0,ar[X>>2]=0,ar[v>>2]=0,ar[m>>2]=0,c=(ar[g>>2]=0)|Ro(0|ar[r>>2],0,p),l=0|Ro(0|ar[r>>2],1,y),u=0|Ro(0|ar[r>>2],2,B),b=0|Fo(f,3,X),s=0|Fo(f,4,v),H=0|Fo(f,5,m),z=Z?(j=0|Ro(0|ar[r>>2],6,E),0|Fo(f,6,g)):j=0,o=(t=1<<_)-1|0,a=(255&(0|go(G)))-1|0,n=(255&(0|Zo(G)))-1|0,Ze(Y),C?(e=0|or[C+8>>1],T=0|tr[C+10>>0],pe(V,e,0|or[C+4>>1]),ar[Y>>2]=ar[V>>2],ar[Y+4>>2]=ar[V+4>>2],ar[Y+8>>2]=ar[V+8>>2],ar[Y+12>>2]=ar[V+12>>2],ar[Y+16>>2]=ar[V+16>>2],T=T<<24>>24!=0,e&=65535):(T=1,e=2),0<(0|d)){U=0<(0|k),S=k<<1,O=0==(0|e),M=8==(0|e),Q=1<<_+-1&65535,D=Y+4|0,J=Y+8|0,_=Y+12|0,G=Y+16|0,r=0;do{if(U){V=r>>n,C=0;do{i=C>>a,f=u+((0|br(0|ar[B>>2],V))+i)|0,f=0|tr[f>>0];do{if(O){if(e=(0|br(0|ar[X>>2],r))+C|0,T){tr[b+e>>0]=f,Y=c+((0|br(0|ar[p>>2],r))+C)|0,e=s+((0|br(0|ar[v>>2],r))+C)|0,tr[e>>0]=0|tr[Y>>0],e=l+((0|br(0|ar[y>>2],V))+i)|0,e=0|tr[e>>0];break}tr[b+e>>0]=16+((128+(219*(255&f)|0)|0)>>>8),Y=c+((0|br(0|ar[p>>2],r))+C)|0,e=s+((0|br(0|ar[v>>2],r))+C)|0,tr[e>>0]=16+((128+(219*(0|cr[Y>>0])|0)|0)>>>8),e=l+((0|br(0|ar[y>>2],V))+i)|0,e=16+((128+(219*(0|cr[e>>0])|0)|0)>>>8)&255;break}if(e=0|br(0|ar[y>>2],V),I=c+((0|br(0|ar[p>>2],r))+C)|0,I=0|tr[I>>0],i=(0|cr[l+(e+i)>>0])-Q|0,e=(255&f)-Q|0,M){L=(Y=(f=255&I)-i|0)+e|0,I=b+((0|br(0|ar[X>>2],r))+C)|0,tr[I>>0]=(0|L)<0?0:255<(0|L)?-1:255&L,f=i+f|0,I=s+((0|br(0|ar[v>>2],r))+C)|0,tr[I>>0]=(0|f)<0?0:255<(0|f)?-1:255&f,e=(0|(e=Y-e|0))<0?0:255<(0|e)?-1:255&e;break}R=+(255&I),N=+(0|i),F=+(0|e),N=T?N:1.142899990081787*N,e=(0|(e=0|ef((R=T?R:1.1689000129699707*(R+-16))+(F=T?F:1.142899990081787*F)*gA[D>>2])))<0?0:255&((0|e)<(0|t)?e:o),L=b+((0|br(0|ar[X>>2],r))+C)|0,tr[L>>0]=e,e=(0|(e=0|ef(R+N*gA[J>>2]+F*gA[_>>2])))<0?0:255&((0|e)<(0|t)?e:o),L=s+((0|br(0|ar[v>>2],r))+C)|0,tr[L>>0]=e,e=(0|(e=0|ef(R+N*gA[G>>2])))<0?0:255&((0|e)<(0|t)?e:o)}while(0);L=H+((0|br(0|ar[m>>2],r))+C)|0,tr[L>>0]=e,C=C+1|0}while((0|C)!=(0|k))}Z&&hb(0|(L=z+(0|br(0|ar[g>>2],r))|0),j+(0|br(0|ar[E>>2],r))|0,0|S),r=r+1|0}while((0|r)!=(0|d))}ar[A>>2]=x,ar[A+4>>2]=P,ur=(w||du(h),W)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0;return ur=(t=ur)+48|0,n=t+36|0,e=t,8==(0|ar[(r|=0)+12>>2])&&1==(0|ar[r>>2])&&3==(0|ar[r+4>>2])?(ar[n>>2]=0,ar[(f=4+n|0)>>2]=0,o=(ar[8+n>>2]=0)|ar[i+4>>2],i=0|tr[r+8>>0],ar[e>>2]=0,ar[e+4>>2]=o,tr[e+8>>0]=i,ar[e+12>>2]=8,ar[e+16>>2]=0,ar[(i=e+20|0)>>2]=0,gA[e+24>>2]=.75,gA[e+28>>2]=.5,gA[e+32>>2]=0,Nl(n,e),0|(e=0|ar[i>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[f>>2],ar[A+8>>2]=ar[8+n>>2]):(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0),void(ur=t)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0;if(ur=(p=ur)+112|0,w=p+108|0,v=p+104|0,T=p+100|0,Z=p+96|0,F=p+92|0,b=p+88|0,s=p+84|0,m=p+80|0,Y=p+40|0,X=p,U=0|ar[(r|=0)>>2],g=0|ar[U+24>>2],U=0|ar[U+28>>2],d=255&(0|go(f=0|ar[i+4>>2])),k=255&(0|Zo(f)),E=255&(O=0|Vo(0|ar[r>>2],3)),O<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if((h=0|Eo(0|ar[r>>2],6))&&(0|Vo(0|ar[r>>2],6))<<24>>24!=8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if(y=0|hu(80),ar[y+4>>2]=0,ar[y+8>>2]=0,ar[y>>2]=6208,ar[(B=y+12|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[y+32>>2]=32215,ar[y+36>>2]=0,ar[y+40>>2]=0,ar[y+44>>2]=99,ar[y+48>>2]=99,O=y+52|0,ar[(S=y+72|0)>>2]=0,ar[y+76>>2]=0,ar[O>>2]=0,ar[O+4>>2]=0,ar[O+8>>2]=0,ar[O+12>>2]=0,ar[y+68>>2]=S,S=B,M=(O=y)+16|0,bu(y),su(y),e=0|ar[M>>2],ar[B>>2]=S,ar[M>>2]=O,0|e&&ku(e),du(y),yo(B,g,U,0,f),J=(g-1+d|0)/(0|d)|0,M=(U+-1+k|0)/(0|k)|0,Bo(B,0,g,U,E),Bo(B,1,J,M,E),Bo(B,2,J,M,E),h&&Bo(B,6,g,U,E),ar[w>>2]=0,ar[v>>2]=0,ar[T>>2]=0,ar[Z>>2]=0,ar[F>>2]=0,ar[b>>2]=0,ar[s>>2]=0,c=(ar[m>>2]=0)|Ro(0|ar[r>>2],3,w),l=0|Ro(0|ar[r>>2],4,v),u=0|Ro(0|ar[r>>2],5,T),G=0|Fo(B,0,F),J=0|Fo(B,1,b),M=0|Fo(B,2,s),Q=h?(D=0|Ro(0|ar[r>>2],6,Z),0|Fo(B,6,m)):D=0,n=1<>2])for(r=0|tr[e+10>>0],ye(X,y=0|or[e+8>>1],0|or[e+4>>1]),r=r<<24>>24!=0,y&=65535,e=X,f=(B=Y)+40|0;ar[B>>2]=ar[e>>2],e=e+4|0,(0|(B=B+4|0))<(0|f););else y=2,r=1;if(t=0<(0|U)){E=0<(0|g),i=0==(0|y),X=Y+4|0,I=Y+8|0,C=Y+12|0,B=0;do{A:do{if(E){if(i)f=0;else for(f=0;;)if(_=l+((0|br(0|ar[v>>2],B))+f)|0,N=c+((0|br(0|ar[w>>2],B))+f)|0,e=u+((0|br(0|ar[T>>2],B))+f)|0,V=(0|cr[N>>0])*gA[X>>2]+(0|cr[_>>0])*gA[I>>2]+(0|cr[e>>0])*gA[C>>2],e=(0|(e=0|ef(r?V:219*V*.00390625+16)))<0?0:255&((0|e)<(0|o)?e:a),_=G+((0|br(0|ar[F>>2],B))+f)|0,tr[_>>0]=e,(0|(f=f+1|0))==(0|g))break A;for(;e=l+((0|br(0|ar[v>>2],B))+f)|0,e=0|tr[e>>0],r||(e=(0|(e=0|ef(219*(255&e)*.00390625+16)))<0?0:255&((0|e)<(0|o)?e:a)),_=G+((0|br(0|ar[F>>2],B))+f)|0,tr[_>>0]=e,(0|(f=f+1|0))!=(0|g););}}while(0);B=B+1|0}while((0|B)!=(0|U));if(t){_=0<(0|g),I=0==(0|y),C=Y+16|0,G=Y+20|0,F=Y+24|0,R=Y+28|0,N=Y+32|0,X=Y+36|0,V=+(65535&n|0),i=0;do{if(_)for(E=0;e=I?(e=u+((0|br(0|ar[T>>2],i))+E)|0,e=0|tr[e>>0],y=(e=r?(y=(0|i)/(0|k)|0,f=(0|E)/(0|d)|0,Y=J+((0|br(0|ar[b>>2],y))+f)|0,tr[Y>>0]=e,e=c+((0|br(0|ar[T>>2],i))+E)|0,0|tr[e>>0]):(e=(0|(e=0|ef(219*(255&e)*.00390625+16)))<0?0:255&((0|e)<(0|o)?e:a),y=(0|i)/(0|k)|0,f=(0|E)/(0|d)|0,Y=J+((0|br(0|ar[b>>2],y))+f)|0,tr[Y>>0]=e,e=c+((0|br(0|ar[T>>2],i))+E)|0,(0|(e=0|ef(219*(0|cr[e>>0])*.00390625+16)))<0?0:255&((0|e)<(0|o)?e:a)),0|br(0|ar[b>>2],y)),B=e,y+f|0):(e=c+((0|br(0|ar[w>>2],i))+E)|0,x=+(0|cr[e>>0]),e=l+((0|br(0|ar[v>>2],i))+E)|0,H=+(0|cr[e>>0]),e=u+((0|br(0|ar[T>>2],i))+E)|0,W=+(0|cr[e>>0]),z=224*(j=x*gA[C>>2]+H*gA[G>>2]+W*gA[F>>2])*.00390625,W=r?x*gA[R>>2]+H*gA[N>>2]+W*gA[X>>2]:224*z*.00390625,e=(0|(e=0|ef(V+(r?j:z))))<0?0:255&((0|e)<(0|o)?e:a),f=(0|i)/(0|k)|0,y=(0|E)/(0|d)|0,Y=J+((0|br(0|ar[b>>2],f))+y)|0,tr[Y>>0]=e,B=e=(0|(e=0|ef(V+W)))<0?0:255&((0|e)<(0|o)?e:a),(0|br(0|ar[s>>2],f))+y|0),tr[M+e>>0]=B,(0|(E=E+d|0))<(0|g););i=i+k|0}while((0|i)<(0|U));if(h&t)for(e=0;hb(0|(T=Q+(0|br(0|ar[m>>2],e))|0),D+(0|br(0|ar[Z>>2],e))|0,0|g),(0|(e=e+1|0))!=(0|U););}}ar[A>>2]=S,ar[A+4>>2]=O,ur=p},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o=0,a=0;return ur=(t=ur)+48|0,n=t+36|0,e=t,8!=(0|(f=0|ar[(r|=0)+12>>2]))&&1==(0|ar[r>>2])&&3==(0|ar[r+4>>2])?(ar[n>>2]=0,ar[(o=4+n|0)>>2]=0,a=(ar[8+n>>2]=0)|ar[i+4>>2],i=0|tr[r+8>>0],ar[e>>2]=0,ar[e+4>>2]=a,tr[e+8>>0]=i,ar[e+12>>2]=f,ar[e+16>>2]=0,ar[(i=e+20|0)>>2]=0,gA[e+24>>2]=.75,gA[e+28>>2]=.5,gA[e+32>>2]=0,Nl(n,e),0|(e=0|ar[i>>2])&&du(e),ar[A>>2]=ar[n>>2],ar[A+4>>2]=ar[o>>2],ar[A+8>>2]=ar[8+n>>2]):(ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=0),void(ur=t)},function(A,e,r,i,f){A|=0,e|=0,i|=0,f|=0;var n,t,o,a,c,l,u,b,s,d,k,h,w,v,m,g,Z,p,y=0,B=0,E=0,X=0,W=0,I=0,C=0,G=0,V=0,F=0,R=0,N=0,_=0,Y=0,Q=0,D=0,J=0,M=0,T=0,U=0,S=0,O=0,z=0,j=0,H=0,x=0,P=0,L=0,K=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0;if(ur=(p=ur)+112|0,o=p+108|0,a=p+104|0,n=p+100|0,Z=p+96|0,V=p+92|0,t=p+88|0,H=p+84|0,g=p+80|0,l=p+40|0,X=p,eA=0|ar[(r|=0)>>2],w=0|ar[eA+24>>2],eA=0|ar[eA+28>>2],v=255&(0|go(y=0|ar[i+4>>2])),m=255&(0|Zo(y)),E=255&(e=0|Vo(0|ar[r>>2],3)),e<<24>>24==8)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if((q=0|Eo(0|ar[r>>2],6))&&(0|Vo(0|ar[r>>2],6))<<24>>24!=e<<24>>24)return ar[A>>2]=0,ar[A+4>>2]=0,void(ur=p);if(f=0|hu(80),ar[f+4>>2]=0,ar[f+8>>2]=0,ar[f>>2]=6208,ar[(B=f+12|0)>>2]=0,ar[B+4>>2]=0,ar[B+8>>2]=0,ar[B+12>>2]=0,ar[B+16>>2]=0,ar[f+32>>2]=32215,ar[f+36>>2]=0,ar[f+40>>2]=0,ar[f+44>>2]=99,ar[f+48>>2]=99,AA=f+52|0,ar[($=f+72|0)>>2]=0,ar[f+76>>2]=0,ar[AA>>2]=0,ar[AA+4>>2]=0,ar[AA+8>>2]=0,ar[AA+12>>2]=0,ar[f+68>>2]=$,$=B,K=(AA=f)+16|0,bu(f),su(f),e=0|ar[K>>2],ar[B>>2]=$,ar[K>>2]=AA,0|e&&ku(e),du(f),yo(B,w,eA,0,y),L=(w-1+v|0)/(0|v)|0,K=(eA+-1+m|0)/(0|m)|0,Bo(B,0,w,eA,E),Bo(B,1,L,K,E),Bo(B,2,L,K,E),q&&Bo(B,6,w,eA,E),ar[o>>2]=0,ar[a>>2]=0,ar[n>>2]=0,ar[Z>>2]=0,ar[V>>2]=0,ar[t>>2]=0,ar[H>>2]=0,d=(ar[g>>2]=0)|Ro(0|ar[r>>2],3,o),k=0|Ro(0|ar[r>>2],4,a),h=0|Ro(0|ar[r>>2],5,n),J=0|Fo(B,0,V),L=0|Fo(B,1,t),K=0|Fo(B,2,H),x=q?(P=0|Ro(0|ar[r>>2],6,Z),0|Fo(B,6,g)):P=0,ar[o>>2]=(0|ar[o>>2])/2|0,ar[a>>2]=(0|ar[a>>2])/2|0,ar[n>>2]=(0|ar[n>>2])/2|0,ar[Z>>2]=(0|ar[Z>>2])/2|0,ar[V>>2]=(0|ar[V>>2])/2|0,ar[t>>2]=(0|ar[t>>2])/2|0,ar[H>>2]=(0|ar[H>>2])/2|0,ar[g>>2]=(0|ar[g>>2])/2|0,c=1<>2])for(r=0|tr[e+10>>0],ye(X,y=0|or[e+8>>1],0|or[e+4>>1]),r=r<<24>>24!=0,y&=65535,e=X,f=(B=l)+40|0;ar[B>>2]=ar[e>>2],e=e+4|0,(0|(B=B+4|0))<(0|f););else y=2,r=1;if(u=0<(0|eA)){_=0<(0|w),Y=0==(0|y),Q=0|ar[a>>2],X=0|ar[V>>2],V=0|ar[o>>2],F=0|ar[n>>2],W=+gA[4+l>>2],I=+gA[8+l>>2],C=+gA[12+l>>2],i=0;do{A:do{if(_){if(R=0|br(Q,i),N=0|br(X,i),B=0|br(V,i),E=0|br(F,i),Y)f=0;else for(f=0;;)if(z=(0|lr[d+(B+f<<1)>>1])*W+(0|lr[k+(R+f<<1)>>1])*I+(0|lr[h+(E+f<<1)>>1])*C,e=(0|(e=0|ef(r?z:219*z*.00390625+16)))<0?0:65535&((0|e)<(0|b)?e:s),or[J+(N+f<<1)>>1]=e,(0|(f=f+1|0))==(0|w))break A;for(;e=0|or[k+(R+f<<1)>>1],r||(e=(0|(e=0|ef(219*(65535&e)*.00390625+16)))<0?0:65535&((0|e)<(0|b)?e:s)),or[J+(N+f<<1)>>1]=e,(0|(f=f+1|0))!=(0|w););}}while(0);i=i+1|0}while((0|i)!=(0|eA));if(u){j=0<(0|w),J=0==(0|y),Q=0|ar[n>>2],Y=0|ar[t>>2],_=0|ar[o>>2],N=0|ar[a>>2],T=+gA[16+l>>2],U=+gA[20+l>>2],S=+gA[24+l>>2],O=+gA[28+l>>2],z=+gA[32+l>>2],M=+gA[36+l>>2],D=+(65535&c|0),X=0|ar[H>>2],i=0;do{if(j)for(V=0|br(Q,i),F=0|br(_,i),R=0|br(N,i),E=0;e=0|or[h+((f=V+E|0)<<1)>>1],e=J?(e=r?(y=0|br(Y,(0|i)/(0|m)|0),or[L+(y+(H=(0|E)/(0|v)|0)<<1)>>1]=e,f=0|or[d+(f<<1)>>1],H):(e=(0|(e=0|ef(219*(65535&e)*.00390625+16)))<0?0:65535&((0|e)<(0|b)?e:s),y=0|br(Y,(0|i)/(0|m)|0),or[L+(y+(B=(0|E)/(0|v)|0)<<1)>>1]=e,f=(0|(e=0|ef(219*(0|lr[d+(f<<1)>>1])*.00390625+16)))<0?0:65535&((0|e)<(0|b)?e:s),B),y+e|0):(I=224*(iA=(C=+(0|lr[d+(F+E<<1)>>1]))*T+(G=+(0|lr[k+(R+E<<1)>>1]))*U+(W=+(65535&e))*S)*.00390625,e=(0|(e=0|ef(D+(r?iA:I))))<0?0:65535&((0|e)<(0|b)?e:s),B=(0|E)/(0|v)|0,H=L+((0|br(Y,y=(0|i)/(0|m)|0))+B<<1)|0,or[H>>1]=e,f=e=(0|(e=0|ef(D+(r?C*O+G*z+W*M:224*I*.00390625))))<0?0:65535&((0|e)<(0|b)?e:s),(0|br(X,y))+B|0),or[K+(e<<1)>>1]=f,(0|(E=E+v|0))<(0|w););i=i+m|0}while((0|i)<(0|eA))}}if(q&&(rA=w<<1,u))for(e=0;hb(0|(q=x+((0|br(0|ar[g>>2],e))<<1)|0),P+((0|br(0|ar[Z>>2],e))<<1)|0,0|rA),(0|(e=e+1|0))!=(0|eA););ar[A>>2]=$,ar[A+4>>2]=AA,ur=p},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0;do{if(0|xu(A,0|ar[e+8>>2]))Lu(0,e,r,i);else if(0|xu(A,0|ar[e>>2])){if(A=e+32|0,(0|ar[e+16>>2])!=(0|r)&&(0|ar[(n=e+20|0)>>2])!=(0|r)){ar[A>>2]=i,ar[n>>2]=r,ar[(i=e+40|0)>>2]=1+(0|ar[i>>2]),1==(0|ar[e+36>>2])&&2==(0|ar[e+24>>2])&&(tr[e+54>>0]=1),ar[e+44>>2]=4;break}1==(0|i)&&(ar[A>>2]=1)}}while(0)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0;do{if(0|xu(A,0|ar[e+8>>2]))Lu(0,e,r,i);else{if(n=A+8|0,!(0|xu(A,0|ar[e>>2]))){o=0|ar[n>>2],os[63&ar[24+(0|ar[o>>2])>>2]](o,e,r,i,f);break}if(A=e+32|0,(0|ar[e+16>>2])!=(0|r)&&(0|ar[(t=e+20|0)>>2])!=(0|r)){if(ar[A>>2]=i,4==(0|ar[(i=e+44|0)>>2]))break;tr[(A=e+52|0)>>0]=0,n=(tr[(a=e+53|0)>>0]=0)|ar[n>>2],as[15&ar[20+(0|ar[n>>2])>>2]](n,e,r,r,1,f),0|tr[a>>0]?0|tr[A>>0]?A=3:(A=3,o=11):(A=4,o=11),11==(0|o)&&(ar[t>>2]=r,ar[(a=e+40|0)>>2]=1+(0|ar[a>>2]),1==(0|ar[e+36>>2])&&2==(0|ar[e+24>>2])&&(tr[e+54>>0]=1)),ar[i>>2]=A;break}1==(0|i)&&(ar[A>>2]=1)}}while(0)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var n=0,t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0,d=0,k=0,h=0;A:do{if(0|xu(A,0|ar[e+8>>2]))Lu(0,e,r,i);else{if(t=A+12|0,d=e+24|0,k=e+36|0,h=e+54|0,b=A+8|0,l=A+16|0,!(0|xu(A,0|ar[e>>2]))){if(o=A+16+((s=0|ar[t>>2])<<3)|0,rb(l,e,r,i,f),n=A+24|0,(0|s)<=1)break;if(0==(2&(t=0|ar[b>>2])|0)&&1!=(0|ar[k>>2])){if(!(1&t))for(;;){if(0|tr[h>>0])break A;if(1==(0|ar[k>>2]))break A;if(rb(n,e,r,i,f),o>>>0<=(n=n+8|0)>>>0)break A}for(;;){if(0|tr[h>>0])break A;if(1==(0|ar[k>>2])&&1==(0|ar[d>>2]))break A;if(rb(n,e,r,i,f),o>>>0<=(n=n+8|0)>>>0)break A}}for(;;){if(0|tr[h>>0])break A;if(rb(n,e,r,i,f),o>>>0<=(n=n+8|0)>>>0)break A}}if(n=e+32|0,(0|ar[e+16>>2])!=(0|r)&&(0|ar[(s=e+20|0)>>2])!=(0|r)){if(ar[n>>2]=i,4==(0|ar[(u=e+44|0)>>2]))break;i=A+16+(ar[t>>2]<<3)|0,a=e+52|0,c=e+53|0,A=l,o=n=0;e:for(;;){if(i>>>0<=A>>>0){t=18;break}if(tr[a>>0]=0,tr[c>>0]=0,eb(A,e,r,r,1,f),0|tr[h>>0]){t=18;break}do{if(0|tr[c>>0]){if(!(0|tr[a>>0])){if(1&ar[b>>2]){n=1,t=o;break}n=1,t=18;break e}if(1==(0|ar[d>>2])){t=23;break e}if(!(2&ar[b>>2])){t=23;break e}t=n=1}else t=o}while(0);A=A+8|0,o=t}do{if(18==(0|t)){if(!o&&(ar[s>>2]=r,ar[(r=e+40|0)>>2]=1+(0|ar[r>>2]),1==(0|ar[k>>2]))&&2==(0|ar[d>>2])){if(tr[h>>0]=1,n){t=23;break}n=4;break}n?t=23:n=4}}while(0);23==(0|t)&&(n=3),ar[u>>2]=n;break}1==(0|i)&&(ar[n>>2]=1)}}while(0)},function(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0;if(!((0|(i|=0))<=0)){t=255+(n=1<>0])+(0|ar[r+(o+c<<2)>>2])|0,tr[l>>0]=(0|u)<0?0:255&((0|u)<(0|n)?u:t),(0|(o=o+1|0))!=(0|i););f=f+1|0}while((0|f)!=(0|i))}},function(A,e,r,i,f){A|=0,e|=0,r|=0,f|=0;var n,t,o=0,a=0,c=0,l=0,u=0;if(!((0|(i|=0))<=0)){t=65535+(n=1<>1])+(0|ar[r+(o+c<<2)>>2])|0,or[l>>1]=(0|u)<0?0:65535&((0|u)<(0|n)?u:t),(0|(o=o+1|0))!=(0|i););f=f+1|0}while((0|f)!=(0|i))}},function(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0,l=0;if(n=1<<(f|=0)+-1,0<(0|(r|=0))){a=0;do{for(c=0|br(a,r),o=t=0;o=((or[e+((l=t+c|0)<<1)>>1]<>f)+o|0,ar[A+(l<<2)>>2]=o,(0|(t=t+1|0))!=(0|r););a=a+1|0}while((0|a)!=(0|r))}},function(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0;if(n=1<<(f|=0)+-1,0<(0|(r|=0))){a=0;do{for(o=t=0;c=(0|br(t,r))+a|0,o=((or[e+(c<<1)>>1]<>f)+o|0,ar[A+(c<<2)>>2]=o,(0|(t=t+1|0))!=(0|r););a=a+1|0}while((0|a)!=(0|r))}},function(A,e,r,i,f){A|=0,e|=0,i|=0;var n,t=0,o=0,a=0,c=0;if(n=1<<(f|=0)+-1,0<(0|(r|=0))){o=0;do{for(a=0|br(o,r),t=0;ar[A+((c=t+a|0)<<2)>>2]=(or[e+(c<<1)>>1]<>f,(0|(t=t+1|0))!=(0|r););o=o+1|0}while((0|o)!=(0|r))}},Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb,Jb],as=[Mb,function(A,e,r,i,f,n){A|=0,r|=0,i|=0,f|=0,n|=0;var t,o=0,a=0,c=0,l=0,u=0;l=(a=0|ar[(o=(e|=0)+44|0)>>2])>>>0<(c=u=0|ar[(t=e+24|0)>>2])>>>0?(ar[o>>2]=u,c):a,a=24&n;A:do{if(0==(0|a)||1==(0|f)&24==(0|a))o=a=-1;else{e:do{switch(0|f){case 0:a=o=0;break;case 1:if(8&n){a=((0|(o=a=(0|ar[e+12>>2])-(0|ar[e+8>>2])|0))<0)<<31>>31;break e}a=((0|(o=a=c-(0|ar[e+20>>2])|0))<0)<<31>>31;break e;case 2:(0|tr[(o=e+32|0)+11>>0])<0&&(o=0|ar[o>>2]),a=((0|(o=a=l-o|0))<0)<<31>>31;break;default:o=a=-1;break A}}while(0);if(a=0|tb(0|o,0|a,0|r,0|i),0<=(0|(o=D)))if((0|tr[(c=e+32|0)+11>>0])<0&&(c=0|ar[c>>2]),(0|(r=((0|(i=l-c|0))<0)<<31>>31))<(0|o)|(0|r)==(0|o)&i>>>0>>0)o=a=-1;else{if(c=8&n,!(0==(0|a)&0==(0|o))){if(0|c&&0==(0|ar[e+12>>2])){o=a=-1;break}if(0!=(16&n|0)&0==(0|u)){o=a=-1;break}}0|c&&(ar[e+12>>2]=(0|ar[e+8>>2])+a,ar[e+16>>2]=l),16&n&&(ar[t>>2]=(0|ar[e+20>>2])+a)}else o=a=-1}}while(0);ar[(u=A)>>2]=0,ar[u+4>>2]=0,ar[(A=A+8|0)>>2]=a,ar[A+4>>2]=o},function(A,e,r,i,f,n){n|=0,ar[(n=A|=0)>>2]=0,ar[n+4>>2]=0,ar[(n=A+8|0)>>2]=-1,ar[n+4>>2]=-1},function(A,e,r,i,f,n){n|=0,ar[(n=A|=0)>>2]=0,ar[n+4>>2]=0,ar[(n=A+8|0)>>2]=-1,ar[n+4>>2]=-1},function(A,e,r,i,f,n){var t,o,a,c;for(A|=0,e|=0,r|=0,n|=0,t=ur=(o=ur)+31&-32,ur=ur+16|0,ar[t>>2]=0,ar[4+t>>2]=0,e=ar[8+t>>2]=0;3!=(0|e);)e=e+1|(ar[t+(e<<2)>>2]=0);for(n=(e=(c=(a=0|tr[n+11>>0])<<24>>24<0)?0|ar[n>>2]:n)+(c?0|ar[n+4>>2]:255&a)|0;!(n>>>0<=e>>>0);)_u(t,0|tr[e>>0]),e=e+1|0;for(r=0|tf(0,0,0,e=(0|tr[11+t>>0])<0?0|ar[t>>2]:t),ar[A>>2]=0,ar[A+4>>2]=0,n=ar[A+8>>2]=0;3!=(0|n);)n=n+1|(ar[A+(n<<2)>>2]=0);for(n=e+(0|Vc(r))|0;!(n>>>0<=e>>>0);)_u(A,0|tr[e>>0]),e=e+1|0;Bu(t),ur=o},function(A,e,r,i,f,n){A|=0,e|=0,n|=0;var t,o,a,c,l,u,b=0,s=0,d=0,k=0,h=0,w=0;for(w=ur=(u=ur)+31&-32,ur=ur+176|0,o=w+168|0,a=w+40|0,c=w+36|0,l=w+32|0,k=(t=w)+24|0,w=w+16|0,ar[t>>2]=0,ar[t+4>>2]=0,e=ar[t+8>>2]=0;3!=(0|e);)e=e+1|(ar[t+(e<<2)>>2]=0);for(ar[k+4>>2]=0,ar[k>>2]=16892,s=(e=(d=(s=0|tr[n+8+3>>0])<<24>>24<0)?0|ar[n>>2]:n)+((d?0|ar[n+4>>2]:255&s)<<2)|0,d=32+a|0,n=e,e=0;2!=(0|e)&n>>>0>>0;){if(ar[l>>2]=n,2==(0|(b=0|es[15&ar[12+(0|ar[k>>2])>>2]](k,o,n,s,l,a,d,c)))||(0|ar[l>>2])==(0|n)){h=7;break}for(e=a;!(e>>>0>=(0|ar[c>>2])>>>0);)_u(t,0|tr[e>>0]),e=e+1|0;n=0|ar[l>>2],e=b}for(7==(0|h)&&ti(),an(),n=0|tf(0,0,0,b=(0|tr[t+11>>0])<0?0|ar[t>>2]:t),ar[A>>2]=0,ar[A+4>>2]=0,e=ar[A+8>>2]=0;3!=(0|e);)e=e+1|(ar[A+(e<<2)>>2]=0);for(ar[w+4>>2]=0,ar[w>>2]=16940,d=s=b+(0|Vc(n))|0,k=128+a|0,n=b,e=0;;){if(!(2!=(0|e)&n>>>0>>0)){h=21;break}if(ar[l>>2]=n,2==(0|(b=0|es[15&ar[16+(0|ar[w>>2])>>2]](w,o,n,32<(d-n|0)?n+32|0:s,l,a,k,c)))||(0|ar[l>>2])==(0|n)){h=17;break}for(e=a;!(e>>>0>=(0|ar[c>>2])>>>0);)Ou(A,0|ar[e>>2]),e=e+4|0;n=0|ar[l>>2],e=b}if(17==(0|h))ti();else if(21==(0|h))return an(),Bu(t),void(ur=u)},function(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0,0|xu(A|=0,0|ar[(e|=0)+8>>2])&&Ku(0,e,r,i,f)},function(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0,0|xu(A|=0,0|ar[(e|=0)+8>>2])?Ku(0,e,r,i,f):(A=0|ar[A+8>>2],as[15&ar[20+(0|ar[A>>2])>>2]](A,e,r,i,f,n))},function(A,e,r,i,f,n){r|=0,i|=0,f|=0,n|=0;var t=0,o=0,a=0,c=0,l=0,u=0,b=0,s=0;if(0|xu(A|=0,0|ar[(e|=0)+8>>2]))Ku(0,e,r,i,f);else{t=0|tr[(s=e+52|0)>>0],a=0|tr[(o=e+53|0)>>0],c=A+16+((b=0|ar[A+12>>2])<<3)|0,tr[s>>0]=0,eb(A+16|(tr[o>>0]=0),e,r,i,f,n);A:do{if(1<(0|b)){l=e+24|0,u=e+54|0,b=A+8|0,A=A+24|0;do{if(0|tr[u>>0])break A;if(0|tr[s>>0]){if(1==(0|ar[l>>2]))break A;if(!(2&ar[b>>2]))break A}else if(0|tr[o>>0]&&0==(1&ar[b>>2]|0))break A;tr[s>>0]=0,tr[o>>0]=0,eb(A,e,r,i,f,n),A=A+8|0}while(A>>>0>>0)}}while(0);tr[s>>0]=t,tr[o>>0]=a}},function(A,e,r,i,f,n){A|=0,e|=0,r|=0,i|=0,n|=0;var t=0,o=0,a=0,c=0,l=0;if(1&(f|=0)|0&&sr(36230,36243,40,36262),0<(0|n)&0<(0|f)){a=0;do{for(t=A+(0|br(a,e))|0,o=r+((0|br(a,i))<<1)|0,c=0;l=32+(0|or[o>>1])>>6,tr[t>>0]=(0|l)<0?0:255&((0|l)<255?l:255),l=32+(0|or[o+2>>1])>>6,tr[t+1>>0]=(0|l)<0?0:255&((0|l)<255?l:255),!((0|f)<=(0|(c=c+2|0)));)t=t+2|0,o=o+4|0;a=a+1|0}while((0|a)!=(0|n))}},Mb,Mb,Mb,Mb,Mb,Mb],cs=[Tb,function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var o=0,a=0,c=0,l=0,u=0,b=0;if(1&(n|=0)|0&&sr(36230,36243,105,36363),0<(0|t)&0<(0|n)){l=0;do{for(c=0|br(l,f),o=A+(0|br(l,e))|0,a=i+(c<<1)|0,c=r+(c<<1)|0,u=0;b=64+(0|or[c>>1])+(0|or[a>>1])>>7,tr[o>>0]=(0|b)<0?0:255&((0|b)<255?b:255),b=64+(0|or[c+2>>1])+(0|or[a+2>>1])>>7,tr[o+1>>0]=(0|b)<0?0:255&((0|b)<255?b:255),!((0|n)<=(0|(u=u+2|0)));)o=o+2|0,a=a+4|0,c=c+4|0;l=l+1|0}while((0|l)!=(0|t))}},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,n|=0;var o,a,c,l,u=0,b=0,s=0,d=0;if(c=0<(0|(l=14-(t|=0)|0))?1<>1])+c>>l,or[t>>1]=(0|d)<0?0:65535&((0|d)<(0|o)?d:a),d=(0|or[u+2>>1])+c>>l,or[t+2>>1]=(0|d)<0?0:65535&((0|d)<(0|o)?d:a),!((0|f)<=(0|(s=s+2|0)));)t=t+4|0,u=u+4|0;b=b+1|0}while((0|b)!=(0|n))}},function(A,e,r,i,f,n,t){A|=0,e|=0,r|=0,i|=0,t|=0;var o=0,a=0,c=0,l=0,u=0,b=0;if(0<(0|(n|=0))&0<(0|(f|=0))){c=0;do{for(t=r+(0|br(c,i))|0,o=A+((0|br(c,e))<<1)|0,a=0;b=(0|cr[t+1>>0])<<6&65535,u=(0|cr[t+2>>0])<<6&65535,l=(0|cr[t+3>>0])<<6&65535,or[o>>1]=(0|cr[t>>0])<<6,or[o+2>>1]=b,or[o+4>>1]=u,or[o+6>>1]=l,!((0|f)<=(0|(a=a+4|0)));)t=t+4|0,o=o+8|0;c=c+1|0}while((0|c)!=(0|n))}},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,0,1,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,0,2,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,0,3,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,1,0,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,1,1,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,1,2,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,1,3,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,2,0,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,2,1,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,2,2,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,2,3,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,3,0,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,3,1,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,3,2,8)},function(A,e,r,i,f,n,t){xo(A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,3,3,8)},Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb,Tb],ls=[Ub,function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var a,c,l,u,b=0,s=0,d=0,k=0,h=0;if(l=1<<(u=15-(o|=0)|0)-1,1&(n|=0)|0&&sr(36230,36243,238,36490),!((0|t)<=0)&&(c=65535+(a=1<>1])+l+(0|or[b>>1])>>u,or[o>>1]=(0|h)<0?0:65535&((0|h)<(0|a)?h:c),h=(0|or[s+2>>1])+l+(0|or[b+2>>1])>>u,or[o+2>>1]=(0|h)<0?0:65535&((0|h)<(0|a)?h:c),!((0|n)<=(0|(k=k+2|0)));)o=o+4|0,b=b+4|0,s=s+4|0;d=d+1|0}while((0|d)!=(0|t))}},function(A,e,r,i,f,n,t,o){A|=0,e|=0,r|=0,i|=0,t|=0;var a,c=0,l=0;if(a=14-(o|=0)|0,0<(0|(n|=0))&0<(0|(f|=0))){c=0;do{for(t=A+((0|br(c,e))<<1)|0,o=r+((0|br(c,i))<<1)|0,l=0;or[t>>1]=(0|lr[o>>1])<>1],t))+c>>a)+o|0,tr[l>>0]=(0|d)<0?0:255&((0|d)<255?d:255),(0|(s=s+1|0))!=(0|f);)l=l+1|0,u=u+2|0;b=b+1|0}while((0|b)!=(0|n))}},function(A,e,r,i,f,n,t,o,a){A|=0,e|=0,r|=0,i|=0,t|=0,o|=0,a|=0;var c=0;if(0<(0|(n|=0))&0<(0|(f|=0))){a=0;do{for(t=r+(0|br(a,i))|0,o=A+((0|br(a,e))<<1)|0,c=0;or[o>>1]=(0|cr[t>>0])<<6,(0|(c=c+1|0))!=(0|f);)t=t+1|0,o=o+2|0;a=a+1|0}while((0|a)!=(0|n))}},Sb],bs=[Ob,function(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,c|=0;var l,u,b,s=0,d=0,k=0,h=0;if((0|(a|=0))<=0&&sr(36293,36243,193,36428),b=1<>1],t))+b>>a)+o|0,or[c>>1]=(0|h)<0?0:65535&((0|h)<(0|l)?h:u),(0|(k=k+1|0))!=(0|f);)c=c+2|0,s=s+2|0;d=d+1|0}while((0|d)!=(0|n))}},function(A,e,r,i,f,n,t,o,a,c){A|=0,e|=0,r|=0,i|=0,t|=0,o|=0,a|=0;var l,u,b,s=0,d=0,k=0,h=0,w=0,v=0;if(b=ur,k=(c|=0)+-8|0,h=0|br((f|=0)<<1,l=(n|=0)+3|0),ur=(u=ur)+(15+(0|+h)&-16)|0,-1<(0|(h=n+2|0))){w=0<(0|f),a=-1;do{A:do{if(w)for(d=a+1|0,a=r+(((s=0)|br(a,i))-1)|0;;){switch(0|t){case 0:c=0|cr[(a=a+1|0)>>0];break;case 1:v=a+1|0,c=(0|br(0|cr[a>>0],-2))+(58*(0|cr[v>>0])|0)+(10*(0|cr[a+2>>0])|0)-(cr[a+3>>0]<<1)>>k&65535,a=v;break;case 2:v=a+1|0,c=(0|br(0|cr[a>>0],-4))+(54*(0|cr[v>>0])|0)+(cr[a+2>>0]<<4)-(cr[a+3>>0]<<1)>>k&65535,a=v;break;case 3:v=a+1|0,c=(0|br(0|cr[a>>0],-6))+(46*(0|cr[v>>0])|0)+(28*(0|cr[a+2>>0])|0)-(cr[a+3>>0]<<2)>>k&65535,a=v;break;case 4:v=a+1|0,c=(0|br(0|cr[a>>0],-4))-(cr[a+3>>0]<<2)+(36*((0|cr[a+2>>0])+(0|cr[v>>0])|0)|0)>>k&65535,a=v;break;case 5:v=a+1|0,c=(0|br(0|cr[a>>0],-4))+(28*(0|cr[v>>0])|0)+(46*(0|cr[a+2>>0])|0)+(0|br(0|cr[a+3>>0],-6))>>k&65535,a=v;break;case 6:v=a+1|0,c=(0|br(0|cr[a>>0],-2))+(cr[v>>0]<<4)+(54*(0|cr[a+2>>0])|0)-(cr[a+3>>0]<<2)>>k&65535,a=v;break;default:v=a+1|0,c=(0|br(0|cr[a>>0],-2))+(10*(0|cr[v>>0])|0)+(58*(0|cr[a+2>>0])|0)-(cr[a+3>>0]<<1)>>k&65535,a=v}if(v=u+(d+(0|br(s,l))<<1)|0,or[v>>1]=c,(0|(s=s+1|0))==(0|f)){a=d;break A}}else a=a+1|0}while(0)}while((0|a)!=(0|h))}if(k=0==(0|t)?k:6,(0|f)<=0)ur=b;else{h=0<(0|n),d=0;do{A:do{if(h)for(a=u+(((s=0)|br(d,l))<<1)|0;;){switch(0|o){case 0:c=0|or[(a=a+2|0)>>1];break;case 1:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(58*(0|or[v>>1])|0)+(10*(0|or[a+4>>1])|0)-(or[a+6>>1]<<1)>>k&65535,a=v;break;case 2:v=a+2|0,c=(0|br(0|or[a>>1],-4))+(54*(0|or[v>>1])|0)+(or[a+4>>1]<<4)-(or[a+6>>1]<<1)>>k&65535,a=v;break;case 3:v=a+2|0,c=(0|br(0|or[a>>1],-6))+(46*(0|or[v>>1])|0)+(28*(0|or[a+4>>1])|0)-(or[a+6>>1]<<2)>>k&65535,a=v;break;case 4:v=a+2|0,c=(0|br(0|or[a>>1],-4))-(or[a+6>>1]<<2)+(36*((0|or[a+4>>1])+(0|or[v>>1])|0)|0)>>k&65535,a=v;break;case 5:v=a+2|0,c=(0|br(0|or[a>>1],-4))+(28*(0|or[v>>1])|0)+(46*(0|or[a+4>>1])|0)+(0|br(0|or[a+6>>1],-6))>>k&65535,a=v;break;case 6:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(or[v>>1]<<4)+(54*(0|or[a+4>>1])|0)-(or[a+6>>1]<<2)>>k&65535,a=v;break;default:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(10*(0|or[v>>1])|0)+(58*(0|or[a+4>>1])|0)-(or[a+6>>1]<<1)>>k&65535,a=v}if(v=A+((0|br(s,e))+d<<1)|0,or[v>>1]=c,(0|(s=s+1|0))==(0|n))break A}}while(0);d=d+1|0}while((0|d)!=(0|f));ur=b}},function(A,e,r,i,f,n,t,o,a,c){var l;if(A|=0,e|=0,r|=0,i|=0,t|=0,o|=0,a|=0,l=14-(c|=0)|0,0<(0|(n|=0))&0<(0|(f|=0))){a=0;do{for(t=r+((0|br(a,i))<<1)|0,o=A+((0|br(a,e))<<1)|0,c=0;or[o>>1]=(0|lr[t>>1])<>1];break;case 1:v=a+2|0,c=(0|br(0|lr[a>>1],-2))+(58*(0|lr[v>>1])|0)+(10*(0|lr[a+4>>1])|0)-(lr[a+6>>1]<<1)>>k&65535,a=v;break;case 2:v=a+2|0,c=(0|br(0|lr[a>>1],-4))+(54*(0|lr[v>>1])|0)+(lr[a+4>>1]<<4)-(lr[a+6>>1]<<1)>>k&65535,a=v;break;case 3:v=a+2|0,c=(0|br(0|lr[a>>1],-6))+(46*(0|lr[v>>1])|0)+(28*(0|lr[a+4>>1])|0)-(lr[a+6>>1]<<2)>>k&65535,a=v;break;case 4:v=a+2|0,c=(0|br(0|lr[a>>1],-4))-(lr[a+6>>1]<<2)+(36*((0|lr[a+4>>1])+(0|lr[v>>1])|0)|0)>>k&65535,a=v;break;case 5:v=a+2|0,c=(0|br(0|lr[a>>1],-4))+(28*(0|lr[v>>1])|0)+(46*(0|lr[a+4>>1])|0)+(0|br(0|lr[a+6>>1],-6))>>k&65535,a=v;break;case 6:v=a+2|0,c=(0|br(0|lr[a>>1],-2))+(lr[v>>1]<<4)+(54*(0|lr[a+4>>1])|0)-(lr[a+6>>1]<<2)>>k&65535,a=v;break;default:v=a+2|0,c=(0|br(0|lr[a>>1],-2))+(10*(0|lr[v>>1])|0)+(58*(0|lr[a+4>>1])|0)-(lr[a+6>>1]<<1)>>k&65535,a=v}if(v=u+(d+(0|br(s,l))<<1)|0,or[v>>1]=c,(0|(s=s+1|0))==(0|f)){a=d;break A}}else a=a+1|0}while(0)}while((0|a)!=(0|h))}if(k=0==(0|t)?k:6,(0|f)<=0)ur=b;else{h=0<(0|n),d=0;do{A:do{if(h)for(a=u+(((s=0)|br(d,l))<<1)|0;;){switch(0|o){case 0:c=0|or[(a=a+2|0)>>1];break;case 1:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(58*(0|or[v>>1])|0)+(10*(0|or[a+4>>1])|0)-(or[a+6>>1]<<1)>>k&65535,a=v;break;case 2:v=a+2|0,c=(0|br(0|or[a>>1],-4))+(54*(0|or[v>>1])|0)+(or[a+4>>1]<<4)-(or[a+6>>1]<<1)>>k&65535,a=v;break;case 3:v=a+2|0,c=(0|br(0|or[a>>1],-6))+(46*(0|or[v>>1])|0)+(28*(0|or[a+4>>1])|0)-(or[a+6>>1]<<2)>>k&65535,a=v;break;case 4:v=a+2|0,c=(0|br(0|or[a>>1],-4))-(or[a+6>>1]<<2)+(36*((0|or[a+4>>1])+(0|or[v>>1])|0)|0)>>k&65535,a=v;break;case 5:v=a+2|0,c=(0|br(0|or[a>>1],-4))+(28*(0|or[v>>1])|0)+(46*(0|or[a+4>>1])|0)+(0|br(0|or[a+6>>1],-6))>>k&65535,a=v;break;case 6:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(or[v>>1]<<4)+(54*(0|or[a+4>>1])|0)-(or[a+6>>1]<<2)>>k&65535,a=v;break;default:v=a+2|0,c=(0|br(0|or[a>>1],-2))+(10*(0|or[v>>1])|0)+(58*(0|or[a+4>>1])|0)-(or[a+6>>1]<<1)>>k&65535,a=v}if(v=A+((0|br(s,e))+d<<1)|0,or[v>>1]=c,(0|(s=s+1|0))==(0|n))break A}}while(0);d=d+1|0}while((0|d)!=(0|f));ur=b}},Ob,Ob,Ob],ss=[function(A,e,r,i,f,n,t,o,a,c,l,u){Z(22)},function(A,e,r,i,f,n,t,o,a,c,l,u){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0;var b,s,d=0,k=0,h=0;if((0|(u|=0))<=0&&sr(36293,36243,80,36332),s=a+1+l<>1],o))+s+(0|br(0|or[a>>1],c))>>b,tr[l>>0]=(0|h)<0?0:255&((0|h)<255?h:255),(0|(k=k+1|0))!=(0|n);)l=l+1|0,a=a+2|0,u=u+2|0;d=d+1|0}while((0|d)!=(0|t))}}],ds=[function(A,e,r,i,f,n,t,o,a,c,l,u,b){Z(23)},function(A,e,r,i,f,n,t,o,a,c,l,u,b){A|=0,e|=0,r|=0,i|=0,f|=0,n|=0,t|=0,o|=0,a|=0,c|=0,l|=0,b|=0;var s,d,k,h,w=0,v=0;if((0|(u|=0))<=0&&sr(36293,36243,213,36458),h=a+1+l<>1],o))+h+(0|br(0|or[a>>1],c))>>k,or[l>>1]=(0|v)<0?0:65535&((0|v)<(0|s)?v:d),(0|(w=w+1|0))!=(0|n);)l=l+2|0,a=a+2|0,u=u+2|0;b=b+1|0}while((0|b)!=(0|t))}}];return{__GLOBAL__I_000101:function(){!function(A){A|=0;var e=0;(function(A,e,r){var i,f;e|=0,r|=0,f=ur=(i=ur)+31&-32,ur=ur+16|0,Sf(A|=0),ar[A>>2]=14636,ar[A+32>>2]=e,ar[A+40>>2]=r,r=-1,ar[A+48>>2]=r,tr[A+52>>0]=0,r=0|ar[8+(0|ar[A>>2])>>2],ru(f,A+4|0),fs[63&r](A,f),bn(f),ur=i})(58864,A=0|ar[2637],58920),ar[14546]=14208,ar[14548]=14228,ar[14547]=0,Jf(58192,58864),ar[14566]=0,e=-1,ar[14567]=e,function(A,e,r){var i,f;e|=0,r|=0,f=ur=(i=ur)+31&-32,ur=ur+16|0,Of(A|=0),ar[A>>2]=14572,ar[A+32>>2]=e,ar[A+40>>2]=r,r=-1,ar[A+48>>2]=r,tr[A+52>>0]=0,r=0|ar[8+(0|ar[A>>2])>>2],ru(f,A+4|0),fs[63&r](A,f),bn(f),ur=i}(58928,A,58984),ar[14568]=14256,ar[14570]=14276,ar[14569]=0,Jf(58280,58928),ar[14588]=0,A=-1,ar[14589]=A,qf(58992,A=0|ar[2543],59040),ar[14590]=28,ar[14591]=48,Jf(58364,58992),ar[14609]=0,e=-1,ar[14610]=e,$f(59048,A,59096),ar[14611]=14312,ar[14612]=14332,Jf(58448,59048),ar[14630]=0,A=-1,ar[14631]=A,qf(59104,A=0|ar[2669],59152),ar[14632]=28,ar[14633]=48,Jf(58532,59104),ar[14651]=0,e=-1,ar[14652]=e,e=0|ar[58528+(0|ar[(0|ar[14632])-12>>2])+24>>2],ar[14674]=28,ar[14675]=48,Jf(58700,e),ar[14693]=0,e=-1,ar[14694]=e,$f(59160,A,59208),ar[14653]=14312,ar[14654]=14332,Jf(58616,59160),ar[14672]=0,A=-1,ar[14673]=A,A=0|ar[58612+(0|ar[(0|ar[14653])-12>>2])+24>>2],ar[14695]=14312,ar[14696]=14332,Jf(58784,A),ar[14714]=0,A=-1,ar[14715]=A,ar[58184+(0|ar[(0|ar[14546])-12>>2])+72>>2]=58360,ar[58272+(0|ar[(0|ar[14568])-12>>2])+72>>2]=58444,A=58528+(0|ar[(0|ar[14632])-12>>2])+4|0,ar[A>>2]=8192|ar[A>>2],A=58612+(0|ar[(0|ar[14653])-12>>2])+4|0,ar[A>>2]=8192|ar[A>>2],ar[58528+(0|ar[(0|ar[14632])-12>>2])+72>>2]=58360,ar[58612+(0|ar[(0|ar[14653])-12>>2])+72>>2]=58444}(0)},__GLOBAL__sub_I_bind_cpp:function(){rA(4080,48907),S(4096,48912,1,1,0),L(4104,48917,1,-128,127),L(4120,48922,1,-128,127),L(4112,48934,1,0,255),L(4128,48948,2,-32768,32767),L(4136,48954,2,0,65535),L(4144,48969,4,-2147483648,2147483647),L(4152,48973,4,0,-1),L(4160,48986,4,-2147483648,2147483647),L(4168,48991,4,0,-1),x(4176,49005,4),x(4184,49011,8),q(1408,49018),q(2336,49030),$(2360,4,49063),z(1400,49076),K(2384,0,49092),K(2392,0,49122),K(2400,1,49159),K(2408,2,49198),K(2416,3,49229),K(2424,4,49269),K(2432,5,49298),K(2440,4,49336),K(2448,5,49366),K(2392,0,49405),K(2400,1,49437),K(2408,2,49470),K(2416,3,49503),K(2424,4,49537),K(2432,5,49570),K(2456,6,49604),K(2464,7,49635),K(2472,7,49667)},__GLOBAL__sub_I_box_cc:function(){var A,e;ur=(e=ur)+16|0,ar[(A=e)>>2]=0,ar[A+4>>2]=0,oo(56592,ar[A+8>>2]=0,0,A),ur=(0<=(0|tr[A+11>>0])||vu(0|ar[A>>2]),e)},__GLOBAL__sub_I_heif_cc:function(){!function(A){A|=0;var e=0;P(26177,1,6244,26194,67,435),P(26197,1,6248,26194,68,2),P(26221,1,6252,26194,69,3),P(26240,2,6256,26258,44,436),P(26262,3,6264,26292,32,77),P(26297,2,6276,26341,20,70),P(26345,2,6284,26341,21,45),P(26393,3,6292,26292,33,78),P(26426,4,6304,26447,7,10),P(26453,2,6320,26258,46,437),j(1224,26479,4,0),H(1224,26495,0),H(1224,26509,1),H(1224,26541,2),H(1224,26566,3),H(1224,26598,4),H(1224,26629,5),H(1224,26652,6),H(1224,26687,7),H(1224,26719,8),H(1224,26751,9),H(1224,26777,10),j(1232,26817,4,0),H(1232,26836,0),H(1232,26862,5e3),H(1232,26901,100),H(1232,26927,101),H(1232,26958,102),H(1232,26984,103),H(1232,27010,104),H(1232,27036,105),H(1232,27062,106),H(1232,27088,107),H(1232,27114,108),H(1232,27140,109),H(1232,27166,110),H(1232,27192,111),H(1232,27218,112),H(1232,27244,113),H(1232,27270,114),H(1232,27300,115),H(1232,27355,116),H(1232,27400,117),H(1232,27427,118),H(1232,27459,119),H(1232,27493,131),H(1232,27519,120),H(1232,27556,121),H(1232,27591,122),H(1232,27637,123),H(1232,27684,124),H(1232,27725,125),H(1232,27751,1e3),H(1232,27789,126),H(1232,27830,127),H(1232,27875,128),H(1232,27915,129),H(1232,27948,2e3),H(1232,27990,2001),H(1232,28026,2002),H(1232,28077,2003),H(1232,28118,2004),H(1232,28159,2005),H(1232,28195,2006),H(1232,28233,130),H(1232,28264,3e3),H(1232,28296,3001),H(1232,28333,3002),H(1232,28372,3003),H(1232,28415,3004),H(1232,28466,4e3),j(1240,28502,4,0),H(1240,28526,0),H(1240,28553,1),H(1240,28575,2),H(1240,28596,3),H(1240,28618,4),j(1248,28639,4,0),H(1248,28651,99),H(1248,28673,0),H(1248,28696,1),H(1248,28712,2),H(1248,28728,3),H(1248,28744,10),H(1248,28772,11),H(1248,28801,12),H(1248,28835,13),H(1248,28871,14),H(1248,28905,15),H(1248,28941,10),H(1248,28971,11),j(1256,29001,4,0),H(1256,29017,99),H(1256,29043,0),H(1256,29065,1),H(1256,29085,2),j(1264,29112,4,0),H(1264,29125,0),H(1264,29140,2),H(1264,29156,1),H(1264,29172,3),H(1264,29187,4),H(1264,29202,5),H(1264,29217,6),H(1264,29236,10),O(1272,1280,1296,0,26194,71,29274,0,29274,0,29261,29276,438),O(1312,1320,1336,0,26194,72,29274,0,29274,0,29279,29276,439),O(1352,1360,1376,0,26194,73,29274,0,29274,0,29297,29276,440),AA(1392,29308,29319,4,29276,441),A=0|hu(4),ar[A>>2]=0,e=0|hu(4),ar[e>>2]=0,eA(1392,29321,1224,26341,22,0|A,1224,29326,79,0|e),e=0|hu(4),ar[e>>2]=4,A=0|hu(4),ar[A>>2]=4,eA(1392,29331,1232,26341,23,0|e,1232,29326,80,0|A),U(1392)}(0)},__GLOBAL__sub_I_heif_plugin_registry_cc:function(){ar[14321]=0,ar[14322]=0,ar[14320]=57284,ar[14324]=0,ar[14325]=0,ar[14323]=57296,function(A){A|=0;var e,r=0,i=0,f=0;f=7580,0|(A=0|ar[(e=f)+8>>2])&&rs[7&A]();A=0|ar[14321];do{if(A){for(i=57284;;){if(r=0|ar[A+16>>2],f>>>0>>0){if(!(r=0|ar[A>>2])){r=7;break}}else{if(f>>>0<=r>>>0){r=11;break}if(!(r=0|ar[(i=A+4|0)>>2])){r=10;break}A=i}i=A,A=r}if(7==(0|r)){i=f=A;break}if(10==(0|r)){f=A;break}if(11==(0|r)){f=A;break}}else i=f=57284}while(0);if(0|ar[i>>2])return;A=0|hu(20),ar[A+16>>2]=e,ar[A>>2]=0,ar[A+4>>2]=0,ar[A+8>>2]=f,ar[i>>2]=A,(r=0|ar[ar[14320]>>2])&&(ar[14320]=r,A=0|ar[i>>2]);so(0|ar[14321],A),ar[14322]=1+(0|ar[14322])}(61160)},__GLOBAL__sub_I_iostream_cpp:function(){},___cxa_can_catch:function(A,e,r){var i,f;return A|=0,e|=0,r|=0,i=ur=(f=ur)+31&-32,ur=ur+16|0,ar[i>>2]=ar[r>>2],(A=0|xb[63&ar[16+(0|ar[A>>2])>>2]](A,e,i))&&(ar[r>>2]=ar[i>>2]),ur=f,1&A|0},___cxa_is_pointer_type:function(A){return 1&(A=(A|=0)?0!=(0|qu(A,3960,4048,0)):0)|0},___errno_location:Cc,___getTypeName:function(A){return 0|(e=0|ar[(A|=0)+4>>2],(i=(i=0)|yc(r=1+(0|Vc(e|=0))|0))?hb(0|i,0|e,0|r):i=0,0|i);var e,r,i},___muldi3:nb,___udivdi3:lb,___uremdi3:ub,_bitshift64Ashr:bb,_bitshift64Lshr:sb,_bitshift64Shl:db,_emscripten_get_global_libc:function(){return 58064},_emscripten_replace_memory:function(A){return!(16777215&u(A)||u(A)<=16777215||2147483648>1,A=1.164*(k[t+f]-16),e=h[o+i]-128,r=w[a+i]-128,v[c<<2]=A+1.596*r,v[1+(c<<2)]=A-.813*r-.391*e,v[2+(c<<2)]=A+2.018*e,v[3+(c<<2)]=255,c++,++f>1)*b,a=(n>>1)*s);g(m)}else g(null)}.bind(this),0)};function Ur(){this.decoder=null}Ur.prototype.decode=function(A){if(this.decoder&&zr.heif_context_free(this.decoder),this.decoder=zr.heif_context_alloc(),!this.decoder)return console.log(\\\"Could not create HEIF context\\\"),[];var e=zr.heif_context_read_from_memory(this.decoder,A);if(e.code!==zr.heif_error_Ok)return console.log(\\\"Could not parse HEIF file\\\",e),[];var r=zr.heif_js_context_get_list_of_top_level_image_IDs(this.decoder);if(!r||r.code)return console.log(\\\"Error loading image ids\\\",r),[];if(!r.length)return console.log(\\\"No images found\\\"),[];for(var i=[],f=0;f {\\n const w = image.get_width();\\n const h = image.get_height();\\n const whiteImage = new ImageData(w, h);\\n for (let i = 0; i < w * h; i++) {\\n whiteImage.data[i * 4 + 3] = 255;\\n }\\n image.display(whiteImage, (imageData) => {\\n if (!imageData) {\\n return reject(\\\"ERR_LIBHEIF Error while processing single image and generating image data, could not ensure image\\\");\\n }\\n resolve(imageData);\\n });\\n });\\n}\\nonmessage = (message) => {\\n const id = message.data.id;\\n try {\\n const decoder = new libheif.HeifDecoder();\\n let imagesArr = decoder.decode(message.data.buffer);\\n if (!imagesArr || !imagesArr.length) {\\n throw \\\"ERR_LIBHEIF format not supported\\\";\\n }\\n imagesArr = imagesArr.filter((x) => {\\n let valid = true;\\n try {\\n /*\\n sometimes the heic container is valid\\n yet the images themselves are corrupt\\n */\\n x.get_height();\\n }\\n catch (e) {\\n valid = false;\\n }\\n return valid;\\n });\\n if (!imagesArr.length) {\\n throw \\\"ERR_LIBHEIF Heic doesn't contain valid images\\\";\\n }\\n Promise.all(imagesArr.map((image) => processSingleImage(image)))\\n .then((imageDataArr) => {\\n postMessage({ id, imageDataArr, error: \\\"\\\" });\\n })\\n .catch((e) => {\\n postMessage({\\n id,\\n imageDataArr: [],\\n error: e && e.toString ? e.toString() : e,\\n });\\n });\\n }\\n catch (e) {\\n postMessage({\\n id,\\n imageDataArr: [],\\n error: e && e.toString ? e.toString() : e,\\n });\\n }\\n};\\n\\n\";\nvar blob = new Blob([workerString], {type: 'application/javascript'});\nwindow.__heic2any__worker = new Worker(URL.createObjectURL(blob));\"use strict\";\r\n;\r\n;\r\n;\r\nvar supportedMIMETypes = [\"image/png\", \"image/jpeg\", \"image/gif\"];\r\nvar utils = {\r\n blobToDataURL: function (blob) {\r\n return new Promise(function (resolve, reject) {\r\n var reader = new FileReader();\r\n reader.onerror = function () {\r\n reject(\"ERR_DOM Error on converting blob to data URL\");\r\n };\r\n reader.onload = function (e) {\r\n resolve(reader.result);\r\n };\r\n reader.readAsDataURL(blob);\r\n });\r\n },\r\n dataURItoBlob: function (dataURI) {\r\n try {\r\n var byteString = atob(dataURI.split(\",\")[1]);\r\n var mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0];\r\n var ab = new ArrayBuffer(byteString.length);\r\n var ia = new Uint8Array(ab);\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n var blob = new Blob([ab], { type: mimeString });\r\n return blob;\r\n }\r\n catch (e) {\r\n return \"ERR_DOM Error on converting data URI to blob \" + e &&\r\n e.toString\r\n ? e.toString()\r\n : e;\r\n }\r\n },\r\n imageDataToBlob: function (ref) {\n var imageData = ref.imageData;\n var toType = ref.toType; if ( toType === void 0 ) toType = \"image/png\";\n var quality = ref.quality; if ( quality === void 0 ) quality = 0.92;\n\r\n // normalize quality\r\n if (quality > 1 || quality < 0) {\r\n quality = 0.92;\r\n }\r\n // normalize MIME type\r\n if (supportedMIMETypes.indexOf(toType) === -1) {\r\n toType = \"image/png\";\r\n }\r\n return new Promise(function (resolve, reject) {\r\n var canvas = null;\r\n try {\r\n canvas = document.createElement(\"canvas\");\r\n }\r\n catch (e) { }\r\n if (!canvas) {\r\n return reject(\"ERR_CANVAS Error on converting imagedata to blob: Could not create canvas element\");\r\n }\r\n canvas.width = imageData.width;\r\n canvas.height = imageData.height;\r\n var ctx = canvas.getContext(\"2d\");\r\n if (!ctx) {\r\n return reject(\"ERR_CANVAS Error on converting imagedata to blob: Could not get canvas context\");\r\n }\r\n ctx.putImageData(imageData, 0, 0);\r\n canvas.toBlob(function (blob) {\r\n if (!blob) {\r\n return reject(\"ERR_CANVAS Error on converting imagedata to blob: Could not get blob from canvas\");\r\n }\r\n return resolve(blob);\r\n }, toType, quality);\r\n });\r\n },\r\n imagesToGif: function (ref) {\n var images = ref.images;\n var interval = ref.interval;\n var gifHeight = ref.gifHeight;\n var gifWidth = ref.gifWidth;\n\r\n return new Promise(function (resolve, reject) {\r\n gifshot.createGIF({\r\n images: images,\r\n interval: interval,\r\n gifHeight: gifHeight,\r\n gifWidth: gifWidth,\r\n }, function (res) {\r\n if (res.error) {\r\n reject((\"ERR_GIF \" + (res.errorCode) + \" \" + (res.errorMessage)));\r\n }\r\n return resolve(res.image);\r\n });\r\n });\r\n },\r\n otherImageType: function (buffer) {\r\n /**\r\n * Some confusion might arise when passing a regular image\r\n * like jpeg/png/gif and getting \"format is not supported\"\r\n * so to solve this, we should detect if the image is\r\n * already browser-readable.\r\n */\r\n var arr = new Uint8Array(buffer).subarray(0, 4);\r\n var header = \"\";\r\n for (var i = 0; i < arr.length; i++) {\r\n header = header + arr[i].toString(16);\r\n }\r\n switch (header) {\r\n case \"89504e47\":\r\n return \"image/png\";\r\n case \"47494638\":\r\n return \"image/gif\";\r\n case \"ffd8ffe0\":\r\n case \"ffd8ffe1\":\r\n case \"ffd8ffe2\":\r\n case \"ffd8ffe3\":\r\n case \"ffd8ffe8\":\r\n return \"image/jpeg\";\r\n default:\r\n return false;\r\n }\r\n },\r\n error: function (message) {\r\n /**\r\n * Error coding system:\r\n *\r\n * UNKNOWN = 0\r\n * USER errors = 1\r\n * LIBHEIF errors = 2\r\n * GIF errors = 3\r\n * DOM errors = 4\r\n * CANVAS errors = 5\r\n *\r\n */\r\n var code = 0;\r\n if (!message) {\r\n message = \"ERR_UNKNOWN\";\r\n }\r\n else if (typeof message !== \"string\") {\r\n if (message.toString) {\r\n message = message.toString();\r\n }\r\n else {\r\n message = JSON.stringify(message);\r\n }\r\n }\r\n var headers = [\r\n \"ERR_USER\",\r\n \"ERR_LIBHEIF\",\r\n \"ERR_GIF\",\r\n \"ERR_DOM\",\r\n \"ERR_CANVAS\" ];\r\n for (var index = 0; index < headers.length; index++) {\r\n var header = headers[index];\r\n if (message.indexOf(header) === 0) {\r\n code = index + 1;\r\n }\r\n }\r\n return {\r\n code: code,\r\n message: message,\r\n };\r\n },\r\n};\r\nfunction decodeBuffer(buffer) {\r\n return new Promise(function (resolve, reject) {\r\n var id = (Math.random() * new Date().getTime()).toString();\r\n var message = { id: id, buffer: buffer };\r\n window.__heic2any__worker.postMessage(message);\r\n window.__heic2any__worker.addEventListener(\"message\", function (message) {\r\n if (message.data.id === id) {\r\n if (message.data.error) {\r\n return reject(message.data.error);\r\n }\r\n return resolve(message.data.imageDataArr);\r\n }\r\n });\r\n });\r\n}\r\nfunction heic2any(ref) {\n var blob = ref.blob;\n var toType = ref.toType; if ( toType === void 0 ) toType = \"image/png\";\n var quality = ref.quality; if ( quality === void 0 ) quality = 0.92;\n var gifInterval = ref.gifInterval; if ( gifInterval === void 0 ) gifInterval = 0.4;\n var multiple = ref.multiple; if ( multiple === void 0 ) multiple = undefined;\n\r\n return new Promise(function (resolve, reject) {\r\n if (!(blob instanceof Blob)) {\r\n utils.error(\"ERR_USER library only accepts BLOBs as input\");\r\n }\r\n if (typeof multiple !== \"boolean\") {\r\n utils.error(\"ERR_USER \\\"multiple\\\" parameter should be of type \\\"boolean\\\"\");\r\n }\r\n if (typeof quality !== \"number\") {\r\n utils.error(\"ERR_USER \\\"quality\\\" parameter should be of type \\\"number\\\"\");\r\n }\r\n if (typeof gifInterval !== \"number\") {\r\n utils.error(\"ERR_USER \\\"gifInterval\\\" parameter should be of type \\\"number\\\"\");\r\n }\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n var gifWidth = 0;\r\n var gifHeight = 0;\r\n var buffer = e.target.result;\r\n var otherImageType = utils.otherImageType(buffer);\r\n if (otherImageType) {\r\n return reject(utils.error((\"ERR_USER Image is already browser readable: \" + otherImageType)));\r\n }\r\n decodeBuffer(buffer)\r\n .then(function (imageDataArr) {\r\n gifWidth = imageDataArr[0].width;\r\n gifHeight = imageDataArr[0].height;\r\n return Promise.all(imageDataArr.map(function (imageData) { return utils.imageDataToBlob({\r\n imageData: imageData,\r\n toType: toType,\r\n quality: quality,\r\n }); }));\r\n })\r\n .then(function (blobs) {\r\n if (toType === \"image/gif\") {\r\n return Promise.all(blobs.map(function (blob) { return utils.blobToDataURL(blob); }));\r\n }\r\n else if (multiple) {\r\n resolve(blobs);\r\n return [\"\"];\r\n }\r\n else {\r\n resolve(blobs[0]);\r\n return [\"\"];\r\n }\r\n })\r\n .then(function (dataURIs) {\r\n if (toType === \"image/gif\" && dataURIs) {\r\n return utils.imagesToGif({\r\n images: dataURIs,\r\n interval: gifInterval,\r\n gifWidth: gifWidth,\r\n gifHeight: gifHeight,\r\n });\r\n }\r\n return \"\";\r\n })\r\n .then(function (resultingGif) {\r\n if (toType === \"image/gif\" && resultingGif) {\r\n var blob = utils.dataURItoBlob(resultingGif);\r\n if (typeof blob === \"string\") {\r\n reject(utils.error(blob));\r\n }\r\n else {\r\n resolve(blob);\r\n }\r\n }\r\n })\r\n .catch(function (e) {\r\n reject(utils.error(e));\r\n });\r\n };\r\n reader.readAsArrayBuffer(blob);\r\n });\r\n}\r\n;\r\n\nreturn heic2any;\n}));\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","import { factory } from '../../utils/factory.js';\nvar name = 'sqrt';\nvar dependencies = ['config', 'typed', 'Complex'];\nexport var createSqrt = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n config,\n typed,\n Complex\n } = _ref;\n /**\n * Calculate the square root of a value.\n *\n * For matrices, if you want the matrix square root of a square matrix,\n * use the `sqrtm` function. If you wish to apply `sqrt` elementwise to\n * a matrix M, use `math.map(M, math.sqrt)`.\n *\n * Syntax:\n *\n * math.sqrt(x)\n *\n * Examples:\n *\n * math.sqrt(25) // returns 5\n * math.square(5) // returns 25\n * math.sqrt(-4) // returns Complex 2i\n *\n * See also:\n *\n * square, multiply, cube, cbrt, sqrtm\n *\n * @param {number | BigNumber | Complex | Unit} x\n * Value for which to calculate the square root.\n * @return {number | BigNumber | Complex | Unit}\n * Returns the square root of `x`\n */\n return typed('sqrt', {\n number: _sqrtNumber,\n Complex: function Complex(x) {\n return x.sqrt();\n },\n BigNumber: function BigNumber(x) {\n if (!x.isNegative() || config.predictable) {\n return x.sqrt();\n } else {\n // negative value -> downgrade to number to do complex value computation\n return _sqrtNumber(x.toNumber());\n }\n },\n Unit: function Unit(x) {\n // Someday will work for complex units when they are implemented\n return x.pow(0.5);\n }\n });\n\n /**\n * Calculate sqrt for a number\n * @param {number} x\n * @returns {number | Complex} Returns the square root of x\n * @private\n */\n function _sqrtNumber(x) {\n if (isNaN(x)) {\n return NaN;\n } else if (x >= 0 || config.predictable) {\n return Math.sqrt(x);\n } else {\n return new Complex(x, 0).sqrt();\n }\n }\n});","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = create(null);\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr += charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","import { factory } from '../../utils/factory.js';\nimport { isInteger } from '../../utils/number.js';\nimport { arraySize as size } from '../../utils/array.js';\nimport { powNumber } from '../../plain/number/index.js';\nvar name = 'pow';\nvar dependencies = ['typed', 'config', 'identity', 'multiply', 'matrix', 'inv', 'fraction', 'number', 'Complex'];\nexport var createPow = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n identity,\n multiply,\n matrix,\n inv,\n number,\n fraction,\n Complex\n } = _ref;\n /**\n * Calculates the power of x to y, `x ^ y`.\n *\n * Matrix exponentiation is supported for square matrices `x` and integers `y`:\n * when `y` is nonnegative, `x` may be any square matrix; and when `y` is\n * negative, `x` must be invertible, and then this function returns\n * inv(x)^(-y).\n *\n * For cubic roots of negative numbers, the function returns the principal\n * root by default. In order to let the function return the real root,\n * math.js can be configured with `math.config({predictable: true})`.\n * To retrieve all cubic roots of a value, use `math.cbrt(x, true)`.\n *\n * Syntax:\n *\n * math.pow(x, y)\n *\n * Examples:\n *\n * math.pow(2, 3) // returns number 8\n *\n * const a = math.complex(2, 3)\n * math.pow(a, 2) // returns Complex -5 + 12i\n *\n * const b = [[1, 2], [4, 3]]\n * math.pow(b, 2) // returns Array [[9, 8], [16, 17]]\n *\n * const c = [[1, 2], [4, 3]]\n * math.pow(c, -1) // returns Array [[-0.6, 0.4], [0.8, -0.2]]\n *\n * See also:\n *\n * multiply, sqrt, cbrt, nthRoot\n *\n * @param {number | BigNumber | Complex | Unit | Array | Matrix} x The base\n * @param {number | BigNumber | Complex} y The exponent\n * @return {number | BigNumber | Complex | Array | Matrix} The value of `x` to the power `y`\n */\n return typed(name, {\n 'number, number': _pow,\n 'Complex, Complex': function ComplexComplex(x, y) {\n return x.pow(y);\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n if (y.isInteger() || x >= 0 || config.predictable) {\n return x.pow(y);\n } else {\n return new Complex(x.toNumber(), 0).pow(y.toNumber(), 0);\n }\n },\n 'Fraction, Fraction': function FractionFraction(x, y) {\n var result = x.pow(y);\n if (result != null) {\n return result;\n }\n if (config.predictable) {\n throw new Error('Result of pow is non-rational and cannot be expressed as a fraction');\n } else {\n return _pow(x.valueOf(), y.valueOf());\n }\n },\n 'Array, number': _powArray,\n 'Array, BigNumber': function ArrayBigNumber(x, y) {\n return _powArray(x, y.toNumber());\n },\n 'Matrix, number': _powMatrix,\n 'Matrix, BigNumber': function MatrixBigNumber(x, y) {\n return _powMatrix(x, y.toNumber());\n },\n 'Unit, number | BigNumber': function UnitNumberBigNumber(x, y) {\n return x.pow(y);\n }\n });\n\n /**\n * Calculates the power of x to y, x^y, for two numbers.\n * @param {number} x\n * @param {number} y\n * @return {number | Complex} res\n * @private\n */\n function _pow(x, y) {\n // Alternatively could define a 'realmode' config option or something, but\n // 'predictable' will work for now\n if (config.predictable && !isInteger(y) && x < 0) {\n // Check to see if y can be represented as a fraction\n try {\n var yFrac = fraction(y);\n var yNum = number(yFrac);\n if (y === yNum || Math.abs((y - yNum) / y) < 1e-14) {\n if (yFrac.d % 2 === 1) {\n return (yFrac.n % 2 === 0 ? 1 : -1) * Math.pow(-x, y);\n }\n }\n } catch (ex) {\n // fraction() throws an error if y is Infinity, etc.\n }\n\n // Unable to express y as a fraction, so continue on\n }\n\n // **for predictable mode** x^Infinity === NaN if x < -1\n // N.B. this behavour is different from `Math.pow` which gives\n // (-2)^Infinity === Infinity\n if (config.predictable && (x < -1 && y === Infinity || x > -1 && x < 0 && y === -Infinity)) {\n return NaN;\n }\n if (isInteger(y) || x >= 0 || config.predictable) {\n return powNumber(x, y);\n } else {\n // TODO: the following infinity checks are duplicated from powNumber. Deduplicate this somehow\n\n // x^Infinity === 0 if -1 < x < 1\n // A real number 0 is returned instead of complex(0)\n if (x * x < 1 && y === Infinity || x * x > 1 && y === -Infinity) {\n return 0;\n }\n return new Complex(x, 0).pow(y, 0);\n }\n }\n\n /**\n * Calculate the power of a 2d array\n * @param {Array} x must be a 2 dimensional, square matrix\n * @param {number} y a integer value (positive if `x` is not invertible)\n * @returns {Array}\n * @private\n */\n function _powArray(x, y) {\n if (!isInteger(y)) {\n throw new TypeError('For A^b, b must be an integer (value is ' + y + ')');\n }\n // verify that A is a 2 dimensional square matrix\n var s = size(x);\n if (s.length !== 2) {\n throw new Error('For A^b, A must be 2 dimensional (A has ' + s.length + ' dimensions)');\n }\n if (s[0] !== s[1]) {\n throw new Error('For A^b, A must be square (size is ' + s[0] + 'x' + s[1] + ')');\n }\n if (y < 0) {\n try {\n return _powArray(inv(x), -y);\n } catch (error) {\n if (error.message === 'Cannot calculate inverse, determinant is zero') {\n throw new TypeError('For A^b, when A is not invertible, b must be a positive integer (value is ' + y + ')');\n }\n throw error;\n }\n }\n var res = identity(s[0]).valueOf();\n var px = x;\n while (y >= 1) {\n if ((y & 1) === 1) {\n res = multiply(px, res);\n }\n y >>= 1;\n px = multiply(px, px);\n }\n return res;\n }\n\n /**\n * Calculate the power of a 2d matrix\n * @param {Matrix} x must be a 2 dimensional, square matrix\n * @param {number} y a positive, integer value\n * @returns {Matrix}\n * @private\n */\n function _powMatrix(x, y) {\n return matrix(_powArray(x.valueOf(), y));\n }\n});","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = isInteger;\n","import { factory } from '../../utils/factory.js';\nimport { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';\nimport { createMatAlgo04xSidSid } from '../../type/matrix/utils/matAlgo04xSidSid.js';\nimport { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nvar name = 'add';\nvar dependencies = ['typed', 'matrix', 'addScalar', 'equalScalar', 'DenseMatrix', 'SparseMatrix', 'concat'];\nexport var createAdd = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n addScalar,\n equalScalar,\n DenseMatrix,\n SparseMatrix,\n concat\n } = _ref;\n var matAlgo01xDSid = createMatAlgo01xDSid({\n typed\n });\n var matAlgo04xSidSid = createMatAlgo04xSidSid({\n typed,\n equalScalar\n });\n var matAlgo10xSids = createMatAlgo10xSids({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n /**\n * Add two or more values, `x + y`.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.add(x, y)\n * math.add(x, y, z, ...)\n *\n * Examples:\n *\n * math.add(2, 3) // returns number 5\n * math.add(2, 3, 4) // returns number 9\n *\n * const a = math.complex(2, 3)\n * const b = math.complex(-4, 1)\n * math.add(a, b) // returns Complex -2 + 4i\n *\n * math.add([1, 2, 3], 4) // returns Array [5, 6, 7]\n *\n * const c = math.unit('5 cm')\n * const d = math.unit('2.1 mm')\n * math.add(c, d) // returns Unit 52.1 mm\n *\n * math.add(\"2.3\", \"4\") // returns number 6.3\n *\n * See also:\n *\n * subtract, sum\n *\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x First value to add\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} y Second value to add\n * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Sum of `x` and `y`\n */\n return typed(name, {\n 'any, any': addScalar,\n 'any, any, ...any': typed.referToSelf(self => (x, y, rest) => {\n var result = self(x, y);\n for (var i = 0; i < rest.length; i++) {\n result = self(result, rest[i]);\n }\n return result;\n })\n }, matrixAlgorithmSuite({\n elop: addScalar,\n DS: matAlgo01xDSid,\n SS: matAlgo04xSidSid,\n Ss: matAlgo10xSids\n }));\n});","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\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 if (this.padding === false) {\n return false;\n }\n\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 if (this.padding === false) {\n return buffer;\n }\n\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","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","import { factory } from '../../utils/factory.js';\nexport var createTrigUnit = /* #__PURE__ */factory('trigUnit', ['typed'], _ref => {\n var {\n typed\n } = _ref;\n return {\n Unit: typed.referToSelf(self => x => {\n if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {\n throw new TypeError('Unit in function cot is no angle');\n }\n return typed.find(self, x.valueType())(x.value);\n })\n };\n});","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","import { factory } from '../../utils/factory.js';\nvar name = 'ctranspose';\nvar dependencies = ['typed', 'transpose', 'conj'];\nexport var createCtranspose = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n transpose,\n conj\n } = _ref;\n /**\n * Transpose and complex conjugate a matrix. All values of the matrix are\n * reflected over its main diagonal and then the complex conjugate is\n * taken. This is equivalent to complex conjugation for scalars and\n * vectors.\n *\n * Syntax:\n *\n * math.ctranspose(x)\n *\n * Examples:\n *\n * const A = [[1, 2, 3], [4, 5, math.complex(6,7)]]\n * math.ctranspose(A) // returns [[1, 4], [2, 5], [3, {re:6,im:7}]]\n *\n * See also:\n *\n * transpose, diag, inv, subset, squeeze\n *\n * @param {Array | Matrix} x Matrix to be ctransposed\n * @return {Array | Matrix} The ctransposed matrix\n */\n return typed(name, {\n any: function any(x) {\n return conj(transpose(x));\n }\n });\n});","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\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","import { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js';\nimport { nearlyEqual } from '../../utils/number.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatAlgo05xSfSf } from '../../type/matrix/utils/matAlgo05xSfSf.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { createCompareUnits } from './compareUnits.js';\nvar name = 'compare';\nvar dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'BigNumber', 'Fraction', 'DenseMatrix', 'concat'];\nexport var createCompare = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n equalScalar,\n matrix,\n BigNumber,\n Fraction,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo05xSfSf = createMatAlgo05xSfSf({\n typed,\n equalScalar\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n var compareUnits = createCompareUnits({\n typed\n });\n\n /**\n * Compare two values. Returns 1 when x > y, -1 when x < y, and 0 when x == y.\n *\n * x and y are considered equal when the relative difference between x and y\n * is smaller than the configured epsilon. The function cannot be used to\n * compare values smaller than approximately 2.22e-16.\n *\n * For matrices, the function is evaluated element wise.\n * Strings are compared by their numerical value.\n *\n * Syntax:\n *\n * math.compare(x, y)\n *\n * Examples:\n *\n * math.compare(6, 1) // returns 1\n * math.compare(2, 3) // returns -1\n * math.compare(7, 7) // returns 0\n * math.compare('10', '2') // returns 1\n * math.compare('1000', '1e3') // returns 0\n *\n * const a = math.unit('5 cm')\n * const b = math.unit('40 mm')\n * math.compare(a, b) // returns 1\n *\n * math.compare(2, [1, 2, 3]) // returns [1, 0, -1]\n *\n * See also:\n *\n * equal, unequal, smaller, smallerEq, larger, largerEq, compareNatural, compareText\n *\n * @param {number | BigNumber | Fraction | Unit | string | Array | Matrix} x First value to compare\n * @param {number | BigNumber | Fraction | Unit | string | Array | Matrix} y Second value to compare\n * @return {number | BigNumber | Fraction | Array | Matrix} Returns the result of the comparison:\n * 1 when x > y, -1 when x < y, and 0 when x == y.\n */\n return typed(name, createCompareNumber({\n typed,\n config\n }), {\n 'boolean, boolean': function booleanBoolean(x, y) {\n return x === y ? 0 : x > y ? 1 : -1;\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n return bigNearlyEqual(x, y, config.epsilon) ? new BigNumber(0) : new BigNumber(x.cmp(y));\n },\n 'Fraction, Fraction': function FractionFraction(x, y) {\n return new Fraction(x.compare(y));\n },\n 'Complex, Complex': function ComplexComplex() {\n throw new TypeError('No ordering relation is defined for complex numbers');\n }\n }, compareUnits, matrixAlgorithmSuite({\n SS: matAlgo05xSfSf,\n DS: matAlgo03xDSf,\n Ss: matAlgo12xSfs\n }));\n});\nexport var createCompareNumber = /* #__PURE__ */factory(name, ['typed', 'config'], _ref2 => {\n var {\n typed,\n config\n } = _ref2;\n return typed(name, {\n 'number, number': function numberNumber(x, y) {\n return nearlyEqual(x, y, config.epsilon) ? 0 : x > y ? 1 : -1;\n }\n });\n});","import { factory } from '../../utils/factory.js';\nvar name = 'oct';\nvar dependencies = ['typed', 'format'];\n\n/**\n * Format a number as octal.\n *\n * Syntax:\n *\n * math.oct(value)\n *\n * Examples:\n *\n * //the following outputs \"0o70\"\n * math.oct(56)\n *\n * See also:\n *\n * bin\n * hex\n *\n * @param {number} value Value to be stringified\n * @param {number} wordSize Optional word size (see `format`)\n * @return {string} The formatted value\n */\n\nexport var createOct = factory(name, dependencies, _ref => {\n var {\n typed,\n format\n } = _ref;\n return typed(name, {\n 'number | BigNumber': function numberBigNumber(n) {\n return format(n, {\n notation: 'oct'\n });\n },\n 'number | BigNumber, number': function numberBigNumberNumber(n, wordSize) {\n return format(n, {\n notation: 'oct',\n wordSize\n });\n }\n });\n});","import { factory } from '../../utils/factory.js';\nimport { isMatrix } from '../../utils/is.js';\nimport { createRng } from './util/seededRNG.js';\nimport { randomMatrix } from './util/randomMatrix.js';\nvar name = 'random';\nvar dependencies = ['typed', 'config', '?on'];\nexport var createRandom = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n on\n } = _ref;\n // seeded pseudo random number generator\n var rng = createRng(config.randomSeed);\n if (on) {\n on('config', function (curr, prev) {\n if (curr.randomSeed !== prev.randomSeed) {\n rng = createRng(curr.randomSeed);\n }\n });\n }\n\n /**\n * Return a random number larger or equal to `min` and smaller than `max`\n * using a uniform distribution.\n *\n * Syntax:\n *\n * math.random() // generate a random number between 0 and 1\n * math.random(max) // generate a random number between 0 and max\n * math.random(min, max) // generate a random number between min and max\n * math.random(size) // generate a matrix with random numbers between 0 and 1\n * math.random(size, max) // generate a matrix with random numbers between 0 and max\n * math.random(size, min, max) // generate a matrix with random numbers between min and max\n *\n * Examples:\n *\n * math.random() // returns a random number between 0 and 1\n * math.random(100) // returns a random number between 0 and 100\n * math.random(30, 40) // returns a random number between 30 and 40\n * math.random([2, 3]) // returns a 2x3 matrix with random numbers between 0 and 1\n *\n * See also:\n *\n * randomInt, pickRandom\n *\n * @param {Array | Matrix} [size] If provided, an array or matrix with given\n * size and filled with random values is returned\n * @param {number} [min] Minimum boundary for the random value, included\n * @param {number} [max] Maximum boundary for the random value, excluded\n * @return {number | Array | Matrix} A random number\n */\n return typed(name, {\n '': () => _random(0, 1),\n number: max => _random(0, max),\n 'number, number': (min, max) => _random(min, max),\n 'Array | Matrix': size => _randomMatrix(size, 0, 1),\n 'Array | Matrix, number': (size, max) => _randomMatrix(size, 0, max),\n 'Array | Matrix, number, number': (size, min, max) => _randomMatrix(size, min, max)\n });\n function _randomMatrix(size, min, max) {\n var res = randomMatrix(size.valueOf(), () => _random(min, max));\n return isMatrix(size) ? size.create(res) : res;\n }\n function _random(min, max) {\n return min + rng() * (max - min);\n }\n});\n\n// number only implementation of random, no matrix support\n// TODO: there is quite some duplicate code in both createRandom and createRandomNumber, can we improve that?\nexport var createRandomNumber = /* #__PURE__ */factory(name, ['typed', 'config', '?on'], _ref2 => {\n var {\n typed,\n config,\n on,\n matrix\n } = _ref2;\n // seeded pseudo random number generator1\n var rng = createRng(config.randomSeed);\n if (on) {\n on('config', function (curr, prev) {\n if (curr.randomSeed !== prev.randomSeed) {\n rng = createRng(curr.randomSeed);\n }\n });\n }\n return typed(name, {\n '': () => _random(0, 1),\n number: max => _random(0, max),\n 'number, number': (min, max) => _random(min, max)\n });\n function _random(min, max) {\n return min + rng() * (max - min);\n }\n});","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\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","import { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js';\nimport { nearlyEqual } from '../../utils/number.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { createCompareUnits } from './compareUnits.js';\nvar name = 'larger';\nvar dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];\nexport var createLarger = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n matrix,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo07xSSf = createMatAlgo07xSSf({\n typed,\n DenseMatrix\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n var compareUnits = createCompareUnits({\n typed\n });\n\n /**\n * Test whether value x is larger than y.\n *\n * The function returns true when x is larger than y and the relative\n * difference between x and y is larger than the configured epsilon. The\n * function cannot be used to compare values smaller than approximately 2.22e-16.\n *\n * For matrices, the function is evaluated element wise.\n * Strings are compared by their numerical value.\n *\n * Syntax:\n *\n * math.larger(x, y)\n *\n * Examples:\n *\n * math.larger(2, 3) // returns false\n * math.larger(5, 2 + 2) // returns true\n *\n * const a = math.unit('5 cm')\n * const b = math.unit('2 inch')\n * math.larger(a, b) // returns false\n *\n * See also:\n *\n * equal, unequal, smaller, smallerEq, largerEq, compare\n *\n * @param {number | BigNumber | Fraction | boolean | Unit | string | Array | Matrix} x First value to compare\n * @param {number | BigNumber | Fraction | boolean | Unit | string | Array | Matrix} y Second value to compare\n * @return {boolean | Array | Matrix} Returns true when the x is larger than y, else returns false\n */\n return typed(name, createLargerNumber({\n typed,\n config\n }), {\n 'boolean, boolean': (x, y) => x > y,\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n return x.gt(y) && !bigNearlyEqual(x, y, config.epsilon);\n },\n 'Fraction, Fraction': (x, y) => x.compare(y) === 1,\n 'Complex, Complex': function ComplexComplex() {\n throw new TypeError('No ordering relation is defined for complex numbers');\n }\n }, compareUnits, matrixAlgorithmSuite({\n SS: matAlgo07xSSf,\n DS: matAlgo03xDSf,\n Ss: matAlgo12xSfs\n }));\n});\nexport var createLargerNumber = /* #__PURE__ */factory(name, ['typed', 'config'], _ref2 => {\n var {\n typed,\n config\n } = _ref2;\n return typed(name, {\n 'number, number': function numberNumber(x, y) {\n return x > y && !nearlyEqual(x, y, config.epsilon);\n }\n });\n});","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\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","import { factory } from '../../../utils/factory.js';\nimport { DimensionError } from '../../../error/DimensionError.js';\nvar name = 'matAlgo09xS0Sf';\nvar dependencies = ['typed', 'equalScalar'];\nexport var createMatAlgo09xS0Sf = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n equalScalar\n } = _ref;\n /**\n * Iterates over SparseMatrix A and invokes the callback function f(Aij, Bij).\n * Callback function invoked NZA times, number of nonzero elements in A.\n *\n *\n * ┌ f(Aij, Bij) ; A(i,j) !== 0\n * C(i,j) = ┤\n * └ 0 ; otherwise\n *\n *\n * @param {Matrix} a The SparseMatrix instance (A)\n * @param {Matrix} b The SparseMatrix instance (B)\n * @param {Function} callback The f(Aij,Bij) operation to invoke\n *\n * @return {Matrix} SparseMatrix (C)\n *\n * see https://github.com/josdejong/mathjs/pull/346#issuecomment-97620294\n */\n return function matAlgo09xS0Sf(a, b, callback) {\n // sparse matrix arrays\n var avalues = a._values;\n var aindex = a._index;\n var aptr = a._ptr;\n var asize = a._size;\n var adt = a._datatype;\n // sparse matrix arrays\n var bvalues = b._values;\n var bindex = b._index;\n var bptr = b._ptr;\n var bsize = b._size;\n var bdt = b._datatype;\n\n // validate dimensions\n if (asize.length !== bsize.length) {\n throw new DimensionError(asize.length, bsize.length);\n }\n\n // check rows & columns\n if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {\n throw new RangeError('Dimension mismatch. Matrix A (' + asize + ') must match Matrix B (' + bsize + ')');\n }\n\n // rows & columns\n var rows = asize[0];\n var columns = asize[1];\n\n // datatype\n var dt;\n // equal signature to use\n var eq = equalScalar;\n // zero value\n var zero = 0;\n // callback signature to use\n var cf = callback;\n\n // process data types\n if (typeof adt === 'string' && adt === bdt) {\n // datatype\n dt = adt;\n // find signature that matches (dt, dt)\n eq = typed.find(equalScalar, [dt, dt]);\n // convert 0 to the same datatype\n zero = typed.convert(0, dt);\n // callback\n cf = typed.find(callback, [dt, dt]);\n }\n\n // result arrays\n var cvalues = avalues && bvalues ? [] : undefined;\n var cindex = [];\n var cptr = [];\n\n // workspaces\n var x = cvalues ? [] : undefined;\n // marks indicating we have a value in x for a given column\n var w = [];\n\n // vars\n var i, j, k, k0, k1;\n\n // loop columns\n for (j = 0; j < columns; j++) {\n // update cptr\n cptr[j] = cindex.length;\n // column mark\n var mark = j + 1;\n // check we need to process values\n if (x) {\n // loop B(:,j)\n for (k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {\n // row\n i = bindex[k];\n // update workspace\n w[i] = mark;\n x[i] = bvalues[k];\n }\n }\n // loop A(:,j)\n for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {\n // row\n i = aindex[k];\n // check we need to process values\n if (x) {\n // b value @ i,j\n var vb = w[i] === mark ? x[i] : zero;\n // invoke f\n var vc = cf(avalues[k], vb);\n // check zero value\n if (!eq(vc, zero)) {\n // push index\n cindex.push(i);\n // push value\n cvalues.push(vc);\n }\n } else {\n // push index\n cindex.push(i);\n }\n }\n }\n // update cptr\n cptr[columns] = cindex.length;\n\n // return sparse matrix\n return a.createSparseMatrix({\n values: cvalues,\n index: cindex,\n ptr: cptr,\n size: [rows, columns],\n datatype: dt\n });\n };\n});","import { deepMap } from '../../utils/collection.js';\nimport { factory } from '../../utils/factory.js';\nimport { isNaNNumber } from '../../plain/number/index.js';\nvar name = 'isNaN';\nvar dependencies = ['typed'];\nexport var createIsNaN = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Test whether a value is NaN (not a number).\n * The function supports types `number`, `BigNumber`, `Fraction`, `Unit` and `Complex`.\n *\n * The function is evaluated element-wise in case of Array or Matrix input.\n *\n * Syntax:\n *\n * math.isNaN(x)\n *\n * Examples:\n *\n * math.isNaN(3) // returns false\n * math.isNaN(NaN) // returns true\n * math.isNaN(0) // returns false\n * math.isNaN(math.bignumber(NaN)) // returns true\n * math.isNaN(math.bignumber(0)) // returns false\n * math.isNaN(math.fraction(-2, 5)) // returns false\n * math.isNaN('-2') // returns false\n * math.isNaN([2, 0, -3, NaN]) // returns [false, false, false, true]\n *\n * See also:\n *\n * isNumeric, isNegative, isPositive, isZero, isInteger\n *\n * @param {number | BigNumber | Fraction | Unit | Array | Matrix} x Value to be tested\n * @return {boolean} Returns true when `x` is NaN.\n * Throws an error in case of an unknown data type.\n */\n return typed(name, {\n number: isNaNNumber,\n BigNumber: function BigNumber(x) {\n return x.isNaN();\n },\n Fraction: function Fraction(x) {\n return false;\n },\n Complex: function Complex(x) {\n return x.isNaN();\n },\n Unit: function Unit(x) {\n return Number.isNaN(x.value);\n },\n 'Array | Matrix': function ArrayMatrix(x) {\n return deepMap(x, Number.isNaN);\n }\n });\n});","import { isBigNumber } from '../../utils/is.js';\nimport { isInteger } from '../../utils/number.js';\nimport { resize } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'ones';\nvar dependencies = ['typed', 'config', 'matrix', 'BigNumber'];\nexport var createOnes = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n matrix,\n BigNumber\n } = _ref;\n /**\n * Create a matrix filled with ones. The created matrix can have one or\n * multiple dimensions.\n *\n * Syntax:\n *\n * math.ones(m)\n * math.ones(m, format)\n * math.ones(m, n)\n * math.ones(m, n, format)\n * math.ones([m, n])\n * math.ones([m, n], format)\n * math.ones([m, n, p, ...])\n * math.ones([m, n, p, ...], format)\n *\n * Examples:\n *\n * math.ones() // returns []\n * math.ones(3) // returns [1, 1, 1]\n * math.ones(3, 2) // returns [[1, 1], [1, 1], [1, 1]]\n * math.ones(3, 2, 'dense') // returns Dense Matrix [[1, 1], [1, 1], [1, 1]]\n *\n * const A = [[1, 2, 3], [4, 5, 6]]\n * math.ones(math.size(A)) // returns [[1, 1, 1], [1, 1, 1]]\n *\n * See also:\n *\n * zeros, identity, size, range\n *\n * @param {...(number|BigNumber) | Array} size The size of each dimension of the matrix\n * @param {string} [format] The Matrix storage format\n *\n * @return {Array | Matrix | number} A matrix filled with ones\n */\n return typed('ones', {\n '': function _() {\n return config.matrix === 'Array' ? _ones([]) : _ones([], 'default');\n },\n // math.ones(m, n, p, ..., format)\n // TODO: more accurate signature '...number | BigNumber, string' as soon as typed-function supports this\n '...number | BigNumber | string': function numberBigNumberString(size) {\n var last = size[size.length - 1];\n if (typeof last === 'string') {\n var format = size.pop();\n return _ones(size, format);\n } else if (config.matrix === 'Array') {\n return _ones(size);\n } else {\n return _ones(size, 'default');\n }\n },\n Array: _ones,\n Matrix: function Matrix(size) {\n var format = size.storage();\n return _ones(size.valueOf(), format);\n },\n 'Array | Matrix, string': function ArrayMatrixString(size, format) {\n return _ones(size.valueOf(), format);\n }\n });\n\n /**\n * Create an Array or Matrix with ones\n * @param {Array} size\n * @param {string} [format='default']\n * @return {Array | Matrix}\n * @private\n */\n function _ones(size, format) {\n var hasBigNumbers = _normalize(size);\n var defaultValue = hasBigNumbers ? new BigNumber(1) : 1;\n _validate(size);\n if (format) {\n // return a matrix\n var m = matrix(format);\n if (size.length > 0) {\n return m.resize(size, defaultValue);\n }\n return m;\n } else {\n // return an Array\n var arr = [];\n if (size.length > 0) {\n return resize(arr, size, defaultValue);\n }\n return arr;\n }\n }\n\n // replace BigNumbers with numbers, returns true if size contained BigNumbers\n function _normalize(size) {\n var hasBigNumbers = false;\n size.forEach(function (value, index, arr) {\n if (isBigNumber(value)) {\n hasBigNumbers = true;\n arr[index] = value.toNumber();\n }\n });\n return hasBigNumbers;\n }\n\n // validate arguments\n function _validate(size) {\n size.forEach(function (value) {\n if (typeof value !== 'number' || !isInteger(value) || value < 0) {\n throw new Error('Parameters in function ones must be positive integers');\n }\n });\n }\n});","import { __extends } from \"tslib\";\nimport PDFObject from \"./PDFObject\";\nimport CharCodes from \"../syntax/CharCodes\";\nimport { copyStringIntoBuffer, toHexStringOfMinLength, utf16Decode, utf16Encode, pdfDocEncodingDecode, parseDate, hasUtf16BOM, } from \"../../utils\";\nimport { InvalidPDFDateStringError } from \"../errors\";\nvar PDFHexString = /** @class */ (function (_super) {\n __extends(PDFHexString, _super);\n function PDFHexString(value) {\n var _this = _super.call(this) || this;\n _this.value = value;\n return _this;\n }\n PDFHexString.prototype.asBytes = function () {\n // Append a zero if the number of digits is odd. See PDF spec 7.3.4.3\n var hex = this.value + (this.value.length % 2 === 1 ? '0' : '');\n var hexLength = hex.length;\n var bytes = new Uint8Array(hex.length / 2);\n var hexOffset = 0;\n var bytesOffset = 0;\n // Interpret each pair of hex digits as a single byte\n while (hexOffset < hexLength) {\n var byte = parseInt(hex.substring(hexOffset, hexOffset + 2), 16);\n bytes[bytesOffset] = byte;\n hexOffset += 2;\n bytesOffset += 1;\n }\n return bytes;\n };\n PDFHexString.prototype.decodeText = function () {\n var bytes = this.asBytes();\n if (hasUtf16BOM(bytes))\n return utf16Decode(bytes);\n return pdfDocEncodingDecode(bytes);\n };\n PDFHexString.prototype.decodeDate = function () {\n var text = this.decodeText();\n var date = parseDate(text);\n if (!date)\n throw new InvalidPDFDateStringError(text);\n return date;\n };\n PDFHexString.prototype.asString = function () {\n return this.value;\n };\n PDFHexString.prototype.clone = function () {\n return PDFHexString.of(this.value);\n };\n PDFHexString.prototype.toString = function () {\n return \"<\" + this.value + \">\";\n };\n PDFHexString.prototype.sizeInBytes = function () {\n return this.value.length + 2;\n };\n PDFHexString.prototype.copyBytesInto = function (buffer, offset) {\n buffer[offset++] = CharCodes.LessThan;\n offset += copyStringIntoBuffer(this.value, buffer, offset);\n buffer[offset++] = CharCodes.GreaterThan;\n return this.value.length + 2;\n };\n PDFHexString.of = function (value) { return new PDFHexString(value); };\n PDFHexString.fromText = function (value) {\n var encoded = utf16Encode(value);\n var hex = '';\n for (var idx = 0, len = encoded.length; idx < len; idx++) {\n hex += toHexStringOfMinLength(encoded[idx], 4);\n }\n return new PDFHexString(hex);\n };\n return PDFHexString;\n}(PDFObject));\nexport default PDFHexString;\n//# sourceMappingURL=PDFHexString.js.map","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\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');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\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}\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 iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\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 }\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 var lastPromise = this[kLastPromise];\n var promise;\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 if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\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 // 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 resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\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 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];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","import { factory } from '../../utils/factory.js';\nvar name = 'divideScalar';\nvar dependencies = ['typed', 'numeric'];\nexport var createDivideScalar = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n numeric\n } = _ref;\n /**\n * Divide two scalar values, `x / y`.\n * This function is meant for internal use: it is used by the public functions\n * `divide` and `inv`.\n *\n * This function does not support collections (Array or Matrix).\n *\n * @param {number | BigNumber | Fraction | Complex | Unit} x Numerator\n * @param {number | BigNumber | Fraction | Complex} y Denominator\n * @return {number | BigNumber | Fraction | Complex | Unit} Quotient, `x / y`\n * @private\n */\n return typed(name, {\n 'number, number': function numberNumber(x, y) {\n return x / y;\n },\n 'Complex, Complex': function ComplexComplex(x, y) {\n return x.div(y);\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n return x.div(y);\n },\n 'Fraction, Fraction': function FractionFraction(x, y) {\n return x.div(y);\n },\n 'Unit, number | Complex | Fraction | BigNumber | Unit': (x, y) => x.divide(y),\n 'number | Fraction | Complex | BigNumber, Unit': (x, y) => y.divideInto(x)\n });\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","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","import { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nvar name = 'conj';\nvar dependencies = ['typed'];\nexport var createConj = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Compute the complex conjugate of a complex value.\n * If `x = a+bi`, the complex conjugate of `x` is `a - bi`.\n *\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.conj(x)\n *\n * Examples:\n *\n * math.conj(math.complex('2 + 3i')) // returns Complex 2 - 3i\n * math.conj(math.complex('2 - 3i')) // returns Complex 2 + 3i\n * math.conj(math.complex('-5.2i')) // returns Complex 5.2i\n *\n * See also:\n *\n * re, im, arg, abs\n *\n * @param {number | BigNumber | Complex | Array | Matrix} x\n * A complex number or array with complex numbers\n * @return {number | BigNumber | Complex | Array | Matrix}\n * The complex conjugate of x\n */\n return typed(name, {\n 'number | BigNumber | Fraction': x => x,\n Complex: x => x.conjugate(),\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))\n });\n});","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./propostaExterna.vue?vue&type=style&index=0&id=4fb62911&prod&lang=scss\"","import { nearlyEqual } from './number.js';\n\n/**\n * Test whether two complex values are equal provided a given epsilon.\n * Does not use or change the global Complex.EPSILON setting\n * @param {Complex} x\n * @param {Complex} y\n * @param {number} epsilon\n * @returns {boolean}\n */\nexport function complexEquals(x, y, epsilon) {\n return nearlyEqual(x.re, y.re, epsilon) && nearlyEqual(x.im, y.im, epsilon);\n}","import { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js';\nimport { nearlyEqual } from '../../utils/number.js';\nimport { factory } from '../../utils/factory.js';\nimport { complexEquals } from '../../utils/complex.js';\nimport { createCompareUnits } from './compareUnits.js';\nvar name = 'equalScalar';\nvar dependencies = ['typed', 'config'];\nexport var createEqualScalar = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config\n } = _ref;\n var compareUnits = createCompareUnits({\n typed\n });\n\n /**\n * Test whether two scalar values are nearly equal.\n *\n * @param {number | BigNumber | Fraction | boolean | Complex | Unit} x First value to compare\n * @param {number | BigNumber | Fraction | boolean | Complex} y Second value to compare\n * @return {boolean} Returns true when the compared values are equal, else returns false\n * @private\n */\n return typed(name, {\n 'boolean, boolean': function booleanBoolean(x, y) {\n return x === y;\n },\n 'number, number': function numberNumber(x, y) {\n return nearlyEqual(x, y, config.epsilon);\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n return x.eq(y) || bigNearlyEqual(x, y, config.epsilon);\n },\n 'Fraction, Fraction': function FractionFraction(x, y) {\n return x.equals(y);\n },\n 'Complex, Complex': function ComplexComplex(x, y) {\n return complexEquals(x, y, config.epsilon);\n }\n }, compareUnits);\n});\nexport var createEqualScalarNumber = factory(name, ['typed', 'config'], _ref2 => {\n var {\n typed,\n config\n } = _ref2;\n return typed(name, {\n 'number, number': function numberNumber(x, y) {\n return nearlyEqual(x, y, config.epsilon);\n }\n });\n});","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","import { factory } from '../../utils/factory.js';\nimport { isMatrix } from '../../utils/is.js';\nimport { clone } from '../../utils/object.js';\nimport { validateIndex } from '../../utils/array.js';\nvar name = 'row';\nvar dependencies = ['typed', 'Index', 'matrix', 'range'];\nexport var createRow = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n Index,\n matrix,\n range\n } = _ref;\n /**\n * Return a row from a Matrix.\n *\n * Syntax:\n *\n * math.row(value, index)\n *\n * Example:\n *\n * // get a row\n * const d = [[1, 2], [3, 4]]\n * math.row(d, 1) // returns [[3, 4]]\n *\n * See also:\n *\n * column\n *\n * @param {Array | Matrix } value An array or matrix\n * @param {number} row The index of the row\n * @return {Array | Matrix} The retrieved row\n */\n return typed(name, {\n 'Matrix, number': _row,\n 'Array, number': function ArrayNumber(value, row) {\n return _row(matrix(clone(value)), row).valueOf();\n }\n });\n\n /**\n * Retrieve a row of a matrix\n * @param {Matrix } value A matrix\n * @param {number} row The index of the row\n * @return {Matrix} The retrieved row\n */\n function _row(value, row) {\n // check dimensions\n if (value.size().length !== 2) {\n throw new Error('Only two dimensional matrix is supported');\n }\n validateIndex(row, value.size()[0]);\n var columnRange = range(0, value.size()[1]);\n var index = new Index(row, columnRange);\n var result = value.subset(index);\n return isMatrix(result) ? result : matrix([[result]]);\n }\n});","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","module.exports = require('events').EventEmitter;\n","import { containsCollections, deepForEach, reduce } from '../../utils/collection.js';\nimport { factory } from '../../utils/factory.js';\nimport { improveErrorMessage } from './utils/improveErrorMessage.js';\nvar name = 'min';\nvar dependencies = ['typed', 'config', 'numeric', 'smaller'];\nexport var createMin = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n numeric,\n smaller\n } = _ref;\n /**\n * Compute the minimum value of a matrix or a list of values.\n * In case of a multidimensional array, the minimum of the flattened array\n * will be calculated. When `dim` is provided, the minimum over the selected\n * dimension will be calculated. Parameter `dim` is zero-based.\n *\n * Syntax:\n *\n * math.min(a, b, c, ...)\n * math.min(A)\n * math.min(A, dimension)\n *\n * Examples:\n *\n * math.min(2, 1, 4, 3) // returns 1\n * math.min([2, 1, 4, 3]) // returns 1\n *\n * // minimum over a specified dimension (zero-based)\n * math.min([[2, 5], [4, 3], [1, 7]], 0) // returns [1, 3]\n * math.min([[2, 5], [4, 3], [1, 7]], 1) // returns [2, 3, 1]\n *\n * math.max(2.7, 7.1, -4.5, 2.0, 4.1) // returns 7.1\n * math.min(2.7, 7.1, -4.5, 2.0, 4.1) // returns -4.5\n *\n * See also:\n *\n * mean, median, max, prod, std, sum, variance\n *\n * @param {... *} args A single matrix or or multiple scalar values\n * @return {*} The minimum value\n */\n return typed(name, {\n // min([a, b, c, d, ...])\n 'Array | Matrix': _min,\n // min([a, b, c, d, ...], dim)\n 'Array | Matrix, number | BigNumber': function ArrayMatrixNumberBigNumber(array, dim) {\n return reduce(array, dim.valueOf(), _smallest);\n },\n // min(a, b, c, d, ...)\n '...': function _(args) {\n if (containsCollections(args)) {\n throw new TypeError('Scalar values expected in function min');\n }\n return _min(args);\n }\n });\n\n /**\n * Return the smallest of two values\n * @param {*} x\n * @param {*} y\n * @returns {*} Returns x when x is smallest, or y when y is smallest\n * @private\n */\n function _smallest(x, y) {\n try {\n return smaller(x, y) ? x : y;\n } catch (err) {\n throw improveErrorMessage(err, 'min', y);\n }\n }\n\n /**\n * Recursively calculate the minimum value in an n-dimensional array\n * @param {Array} array\n * @return {number} min\n * @private\n */\n function _min(array) {\n var min;\n deepForEach(array, function (value) {\n try {\n if (isNaN(value) && typeof value === 'number') {\n min = NaN;\n } else if (min === undefined || smaller(value, min)) {\n min = value;\n }\n } catch (err) {\n throw improveErrorMessage(err, 'min', value);\n }\n });\n if (min === undefined) {\n throw new Error('Cannot calculate min of an empty array');\n }\n\n // make sure returning numeric value: parse a string into a numeric value\n if (typeof min === 'string') {\n min = numeric(min, config.number);\n }\n return min;\n }\n});","import { factory } from '../../utils/factory.js';\nvar name = 'corr';\nvar dependencies = ['typed', 'matrix', 'mean', 'sqrt', 'sum', 'add', 'subtract', 'multiply', 'pow', 'divide'];\nexport var createCorr = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n sqrt,\n sum,\n add,\n subtract,\n multiply,\n pow,\n divide\n } = _ref;\n /**\n * Compute the correlation coefficient of a two list with values, For matrices, the matrix correlation coefficient is calculated.\n *\n * Syntax:\n *\n * math.corr(A, B)\n *\n * Examples:\n *\n * math.corr([1, 2, 3, 4, 5], [4, 5, 6, 7, 8]) // returns 1\n * math.corr([1, 2.2, 3, 4.8, 5], [4, 5.3, 6.6, 7, 8]) //returns 0.9569941688503644\n * math.corr([[1, 2.2, 3, 4.8, 5], [4, 5.3, 6.6, 7, 8]],[[1, 2.2, 3, 4.8, 5], [4, 5.3, 6.6, 7, 8]]) // returns [1,1]\n *\n * See also:\n *\n * median, mean, min, max, sum, prod, std, variance\n *\n * @param {Array | Matrix} A The first array or matrix to compute correlation coefficient\n * @param {Array | Matrix} B The second array or matrix to compute correlation coefficient\n * @return {*} The correlation coefficient\n */\n return typed(name, {\n 'Array, Array': function ArrayArray(A, B) {\n return _corr(A, B);\n },\n 'Matrix, Matrix': function MatrixMatrix(A, B) {\n var res = _corr(A.toArray(), B.toArray());\n return Array.isArray(res) ? matrix(res) : res;\n }\n });\n /**\n * Calculate the correlation coefficient between two arrays or matrices.\n * @param {Array | Matrix} A\n * @param {Array | Matrix} B\n * @return {*} correlation coefficient\n * @private\n */\n function _corr(A, B) {\n var correlations = [];\n if (Array.isArray(A[0]) && Array.isArray(B[0])) {\n if (A.length !== B.length) {\n throw new SyntaxError('Dimension mismatch. Array A and B must have the same length.');\n }\n for (var i = 0; i < A.length; i++) {\n if (A[i].length !== B[i].length) {\n throw new SyntaxError('Dimension mismatch. Array A and B must have the same number of elements.');\n }\n correlations.push(correlation(A[i], B[i]));\n }\n return correlations;\n } else {\n if (A.length !== B.length) {\n throw new SyntaxError('Dimension mismatch. Array A and B must have the same number of elements.');\n }\n return correlation(A, B);\n }\n }\n function correlation(A, B) {\n var n = A.length;\n var sumX = sum(A);\n var sumY = sum(B);\n var sumXY = A.reduce((acc, x, index) => add(acc, multiply(x, B[index])), 0);\n var sumXSquare = sum(A.map(x => pow(x, 2)));\n var sumYSquare = sum(B.map(y => pow(y, 2)));\n var numerator = subtract(multiply(n, sumXY), multiply(sumX, sumY));\n var denominator = sqrt(multiply(subtract(multiply(n, sumXSquare), pow(sumX, 2)), subtract(multiply(n, sumYSquare), pow(sumY, 2))));\n return divide(numerator, denominator);\n }\n});","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","import { applyCallback } from '../../utils/applyCallback.js';\nimport { forEach as forEachArray } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'forEach';\nvar dependencies = ['typed'];\nexport var createForEach = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Iterate over all elements of a matrix/array, and executes the given callback function.\n *\n * Syntax:\n *\n * math.forEach(x, callback)\n *\n * Examples:\n *\n * math.forEach([1, 2, 3], function(value) {\n * console.log(value)\n * })\n * // outputs 1, 2, 3\n *\n * See also:\n *\n * filter, map, sort\n *\n * @param {Matrix | Array} x The matrix to iterate on.\n * @param {Function} callback The callback function is invoked with three\n * parameters: the value of the element, the index\n * of the element, and the Matrix/array being traversed.\n */\n return typed(name, {\n 'Array, function': _forEach,\n 'Matrix, function': function MatrixFunction(x, callback) {\n x.forEach(callback);\n }\n });\n});\n\n/**\n * forEach for a multidimensional array\n * @param {Array} array\n * @param {Function} callback\n * @private\n */\nfunction _forEach(array, callback) {\n var recurse = function recurse(value, index) {\n if (Array.isArray(value)) {\n forEachArray(value, function (child, i) {\n // we create a copy of the index array and append the new index value\n recurse(child, index.concat(i));\n });\n } else {\n // invoke the callback function with the right number of arguments\n return applyCallback(callback, value, index, array, 'forEach');\n }\n };\n recurse(array, []);\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 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}","import { format as formatString } from '../../utils/string.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'format';\nvar dependencies = ['typed'];\nexport var createFormat = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Format a value of any type into a string.\n *\n * Syntax:\n *\n * math.format(value)\n * math.format(value, options)\n * math.format(value, precision)\n * math.format(value, callback)\n *\n * Where:\n *\n * - `value: *`\n * The value to be formatted\n * - `options: Object`\n * An object with formatting options. Available options:\n * - `notation: string`\n * Number notation. Choose from:\n * - `'fixed'`\n * Always use regular number notation.\n * For example `'123.40'` and `'14000000'`\n * - `'exponential'`\n * Always use exponential notation.\n * For example `'1.234e+2'` and `'1.4e+7'`\n * - `'engineering'`\n * Always use engineering notation: always have exponential notation,\n * and select the exponent to be a multiple of `3`.\n * For example `'123.4e+0'` and `'14.0e+6'`\n * - `'auto'` (default)\n * Regular number notation for numbers having an absolute value between\n * `lower` and `upper` bounds, and uses exponential notation elsewhere.\n * Lower bound is included, upper bound is excluded.\n * For example `'123.4'` and `'1.4e7'`.\n * - `'bin'`, `'oct'`, or `'hex'`\n * Format the number using binary, octal, or hexadecimal notation.\n * For example `'0b1101'` and `'0x10fe'`.\n * - `wordSize: number`\n * The word size in bits to use for formatting in binary, octal, or\n * hexadecimal notation. To be used only with `'bin'`, `'oct'`, or `'hex'`\n * values for `notation` option. When this option is defined the value\n * is formatted as a signed twos complement integer of the given word\n * size and the size suffix is appended to the output.\n * For example `format(-1, {notation: 'hex', wordSize: 8}) === '0xffi8'`.\n * Default value is undefined.\n * - `precision: number`\n * Limit the number of digits of the formatted value.\n * For regular numbers, must be a number between `0` and `16`.\n * For bignumbers, the maximum depends on the configured precision,\n * see function `config()`.\n * In case of notations `'exponential'`, `'engineering'`, and `'auto'`,\n * `precision` defines the total number of significant digits returned.\n * In case of notation `'fixed'`, `precision` defines the number of\n * significant digits after the decimal point.\n * `precision` is undefined by default.\n * - `lowerExp: number`\n * Exponent determining the lower boundary for formatting a value with\n * an exponent when `notation='auto'`. Default value is `-3`.\n * - `upperExp: number`\n * Exponent determining the upper boundary for formatting a value with\n * an exponent when `notation='auto'`. Default value is `5`.\n * - `fraction: string`. Available values: `'ratio'` (default) or `'decimal'`.\n * For example `format(fraction(1, 3))` will output `'1/3'` when `'ratio'`\n * is configured, and will output `'0.(3)'` when `'decimal'` is configured.\n * - `truncate: number`. Specifies the maximum allowed length of the\n * returned string. If it had been longer, the excess characters\n * are deleted and replaced with `'...'`.\n * - `callback: function`\n * A custom formatting function, invoked for all numeric elements in `value`,\n * for example all elements of a matrix, or the real and imaginary\n * parts of a complex number. This callback can be used to override the\n * built-in numeric notation with any type of formatting. Function `callback`\n * is called with `value` as parameter and must return a string.\n *\n * When `value` is an Object:\n *\n * - When the object contains a property `format` being a function, this function\n * is invoked as `value.format(options)` and the result is returned.\n * - When the object has its own `toString` method, this method is invoked\n * and the result is returned.\n * - In other cases the function will loop over all object properties and\n * return JSON object notation like '{\"a\": 2, \"b\": 3}'.\n *\n * When value is a function:\n *\n * - When the function has a property `syntax`, it returns this\n * syntax description.\n * - In other cases, a string `'function'` is returned.\n *\n * Examples:\n *\n * math.format(6.4) // returns '6.4'\n * math.format(1240000) // returns '1.24e+6'\n * math.format(1/3) // returns '0.3333333333333333'\n * math.format(1/3, 3) // returns '0.333'\n * math.format(21385, 2) // returns '21000'\n * math.format(12e8, {notation: 'fixed'}) // returns '1200000000'\n * math.format(2.3, {notation: 'fixed', precision: 4}) // returns '2.3000'\n * math.format(52.8, {notation: 'exponential'}) // returns '5.28e+1'\n * math.format(12400, {notation: 'engineering'}) // returns '12.4e+3'\n * math.format(2000, {lowerExp: -2, upperExp: 2}) // returns '2e+3'\n *\n * function formatCurrency(value) {\n * // return currency notation with two digits:\n * return '$' + value.toFixed(2)\n *\n * // you could also use math.format inside the callback:\n * // return '$' + math.format(value, {notation: 'fixed', precision: 2})\n * }\n * math.format([2.1, 3, 0.016], formatCurrency) // returns '[$2.10, $3.00, $0.02]'\n *\n * See also:\n *\n * print\n *\n * @param {*} value Value to be stringified\n * @param {Object | Function | number} [options] Formatting options\n * @return {string} The formatted value\n */\n return typed(name, {\n any: formatString,\n 'any, Object | function | number': formatString\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// 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/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\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}\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 if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\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});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\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 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 }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\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","import { factory } from '../../utils/factory.js';\nimport { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';\nimport { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo05xSfSf } from '../../type/matrix/utils/matAlgo05xSfSf.js';\nimport { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nvar name = 'subtract';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'subtractScalar', 'unaryMinus', 'DenseMatrix', 'concat'];\nexport var createSubtract = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n subtractScalar,\n unaryMinus,\n DenseMatrix,\n concat\n } = _ref;\n // TODO: split function subtract in two: subtract and subtractScalar\n\n var matAlgo01xDSid = createMatAlgo01xDSid({\n typed\n });\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo05xSfSf = createMatAlgo05xSfSf({\n typed,\n equalScalar\n });\n var matAlgo10xSids = createMatAlgo10xSids({\n typed,\n DenseMatrix\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Subtract two values, `x - y`.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.subtract(x, y)\n *\n * Examples:\n *\n * math.subtract(5.3, 2) // returns number 3.3\n *\n * const a = math.complex(2, 3)\n * const b = math.complex(4, 1)\n * math.subtract(a, b) // returns Complex -2 + 2i\n *\n * math.subtract([5, 7, 4], 4) // returns Array [1, 3, 0]\n *\n * const c = math.unit('2.1 km')\n * const d = math.unit('500m')\n * math.subtract(c, d) // returns Unit 1.6 km\n *\n * See also:\n *\n * add\n *\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x Initial value\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} y Value to subtract from `x`\n * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Subtraction of `x` and `y`\n */\n return typed(name, {\n 'any, any': subtractScalar\n }, matrixAlgorithmSuite({\n elop: subtractScalar,\n SS: matAlgo05xSfSf,\n DS: matAlgo01xDSid,\n SD: matAlgo03xDSf,\n Ss: matAlgo12xSfs,\n sS: matAlgo10xSids\n }));\n});","import { isNumber } from './is.js';\n\n/**\n * @typedef {{sign: '+' | '-' | '', coefficients: number[], exponent: number}} SplitValue\n */\n\n/**\n * Check if a number is integer\n * @param {number | boolean} value\n * @return {boolean} isInteger\n */\nexport function isInteger(value) {\n if (typeof value === 'boolean') {\n return true;\n }\n return isFinite(value) ? value === Math.round(value) : false;\n}\n\n/**\n * Calculate the sign of a number\n * @param {number} x\n * @returns {number}\n */\nexport var sign = /* #__PURE__ */Math.sign || function (x) {\n if (x > 0) {\n return 1;\n } else if (x < 0) {\n return -1;\n } else {\n return 0;\n }\n};\n\n/**\n * Calculate the base-2 logarithm of a number\n * @param {number} x\n * @returns {number}\n */\nexport var log2 = /* #__PURE__ */Math.log2 || function log2(x) {\n return Math.log(x) / Math.LN2;\n};\n\n/**\n * Calculate the base-10 logarithm of a number\n * @param {number} x\n * @returns {number}\n */\nexport var log10 = /* #__PURE__ */Math.log10 || function log10(x) {\n return Math.log(x) / Math.LN10;\n};\n\n/**\n * Calculate the natural logarithm of a number + 1\n * @param {number} x\n * @returns {number}\n */\nexport var log1p = /* #__PURE__ */Math.log1p || function (x) {\n return Math.log(x + 1);\n};\n\n/**\n * Calculate cubic root for a number\n *\n * Code from es6-shim.js:\n * https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js#L1564-L1577\n *\n * @param {number} x\n * @returns {number} Returns the cubic root of x\n */\nexport var cbrt = /* #__PURE__ */Math.cbrt || function cbrt(x) {\n if (x === 0) {\n return x;\n }\n var negate = x < 0;\n var result;\n if (negate) {\n x = -x;\n }\n if (isFinite(x)) {\n result = Math.exp(Math.log(x) / 3);\n // from https://en.wikipedia.org/wiki/Cube_root#Numerical_methods\n result = (x / (result * result) + 2 * result) / 3;\n } else {\n result = x;\n }\n return negate ? -result : result;\n};\n\n/**\n * Calculates exponentiation minus 1\n * @param {number} x\n * @return {number} res\n */\nexport var expm1 = /* #__PURE__ */Math.expm1 || function expm1(x) {\n return x >= 2e-4 || x <= -2e-4 ? Math.exp(x) - 1 : x + x * x / 2 + x * x * x / 6;\n};\n\n/**\n * Formats a number in a given base\n * @param {number} n\n * @param {number} base\n * @param {number} size\n * @returns {string}\n */\nfunction formatNumberToBase(n, base, size) {\n var prefixes = {\n 2: '0b',\n 8: '0o',\n 16: '0x'\n };\n var prefix = prefixes[base];\n var suffix = '';\n if (size) {\n if (size < 1) {\n throw new Error('size must be in greater than 0');\n }\n if (!isInteger(size)) {\n throw new Error('size must be an integer');\n }\n if (n > 2 ** (size - 1) - 1 || n < -(2 ** (size - 1))) {\n throw new Error(\"Value must be in range [-2^\".concat(size - 1, \", 2^\").concat(size - 1, \"-1]\"));\n }\n if (!isInteger(n)) {\n throw new Error('Value must be an integer');\n }\n if (n < 0) {\n n = n + 2 ** size;\n }\n suffix = \"i\".concat(size);\n }\n var sign = '';\n if (n < 0) {\n n = -n;\n sign = '-';\n }\n return \"\".concat(sign).concat(prefix).concat(n.toString(base)).concat(suffix);\n}\n\n/**\n * Convert a number to a formatted string representation.\n *\n * Syntax:\n *\n * format(value)\n * format(value, options)\n * format(value, precision)\n * format(value, fn)\n *\n * Where:\n *\n * {number} value The value to be formatted\n * {Object} options An object with formatting options. Available options:\n * {string} notation\n * Number notation. Choose from:\n * 'fixed' Always use regular number notation.\n * For example '123.40' and '14000000'\n * 'exponential' Always use exponential notation.\n * For example '1.234e+2' and '1.4e+7'\n * 'engineering' Always use engineering notation.\n * For example '123.4e+0' and '14.0e+6'\n * 'auto' (default) Regular number notation for numbers\n * having an absolute value between\n * `lowerExp` and `upperExp` bounds, and\n * uses exponential notation elsewhere.\n * Lower bound is included, upper bound\n * is excluded.\n * For example '123.4' and '1.4e7'.\n * 'bin', 'oct, or\n * 'hex' Format the number using binary, octal,\n * or hexadecimal notation.\n * For example '0b1101' and '0x10fe'.\n * {number} wordSize The word size in bits to use for formatting\n * in binary, octal, or hexadecimal notation.\n * To be used only with 'bin', 'oct', or 'hex'\n * values for 'notation' option. When this option\n * is defined the value is formatted as a signed\n * twos complement integer of the given word size\n * and the size suffix is appended to the output.\n * For example\n * format(-1, {notation: 'hex', wordSize: 8}) === '0xffi8'.\n * Default value is undefined.\n * {number} precision A number between 0 and 16 to round\n * the digits of the number.\n * In case of notations 'exponential',\n * 'engineering', and 'auto',\n * `precision` defines the total\n * number of significant digits returned.\n * In case of notation 'fixed',\n * `precision` defines the number of\n * significant digits after the decimal\n * point.\n * `precision` is undefined by default,\n * not rounding any digits.\n * {number} lowerExp Exponent determining the lower boundary\n * for formatting a value with an exponent\n * when `notation='auto`.\n * Default value is `-3`.\n * {number} upperExp Exponent determining the upper boundary\n * for formatting a value with an exponent\n * when `notation='auto`.\n * Default value is `5`.\n * {Function} fn A custom formatting function. Can be used to override the\n * built-in notations. Function `fn` is called with `value` as\n * parameter and must return a string. Is useful for example to\n * format all values inside a matrix in a particular way.\n *\n * Examples:\n *\n * format(6.4) // '6.4'\n * format(1240000) // '1.24e6'\n * format(1/3) // '0.3333333333333333'\n * format(1/3, 3) // '0.333'\n * format(21385, 2) // '21000'\n * format(12.071, {notation: 'fixed'}) // '12'\n * format(2.3, {notation: 'fixed', precision: 2}) // '2.30'\n * format(52.8, {notation: 'exponential'}) // '5.28e+1'\n * format(12345678, {notation: 'engineering'}) // '12.345678e+6'\n *\n * @param {number} value\n * @param {Object | Function | number} [options]\n * @return {string} str The formatted value\n */\nexport function format(value, options) {\n if (typeof options === 'function') {\n // handle format(value, fn)\n return options(value);\n }\n\n // handle special cases\n if (value === Infinity) {\n return 'Infinity';\n } else if (value === -Infinity) {\n return '-Infinity';\n } else if (isNaN(value)) {\n return 'NaN';\n }\n\n // default values for options\n var notation = 'auto';\n var precision;\n var wordSize;\n if (options) {\n // determine notation from options\n if (options.notation) {\n notation = options.notation;\n }\n\n // determine precision from options\n if (isNumber(options)) {\n precision = options;\n } else if (isNumber(options.precision)) {\n precision = options.precision;\n }\n if (options.wordSize) {\n wordSize = options.wordSize;\n if (typeof wordSize !== 'number') {\n throw new Error('Option \"wordSize\" must be a number');\n }\n }\n }\n\n // handle the various notations\n switch (notation) {\n case 'fixed':\n return toFixed(value, precision);\n case 'exponential':\n return toExponential(value, precision);\n case 'engineering':\n return toEngineering(value, precision);\n case 'bin':\n return formatNumberToBase(value, 2, wordSize);\n case 'oct':\n return formatNumberToBase(value, 8, wordSize);\n case 'hex':\n return formatNumberToBase(value, 16, wordSize);\n case 'auto':\n // remove trailing zeros after the decimal point\n return toPrecision(value, precision, options && options).replace(/((\\.\\d*?)(0+))($|e)/, function () {\n var digits = arguments[2];\n var e = arguments[4];\n return digits !== '.' ? digits + e : e;\n });\n default:\n throw new Error('Unknown notation \"' + notation + '\". ' + 'Choose \"auto\", \"exponential\", \"fixed\", \"bin\", \"oct\", or \"hex.');\n }\n}\n\n/**\n * Split a number into sign, coefficients, and exponent\n * @param {number | string} value\n * @return {SplitValue}\n * Returns an object containing sign, coefficients, and exponent\n */\nexport function splitNumber(value) {\n // parse the input value\n var match = String(value).toLowerCase().match(/^(-?)(\\d+\\.?\\d*)(e([+-]?\\d+))?$/);\n if (!match) {\n throw new SyntaxError('Invalid number ' + value);\n }\n var sign = match[1];\n var digits = match[2];\n var exponent = parseFloat(match[4] || '0');\n var dot = digits.indexOf('.');\n exponent += dot !== -1 ? dot - 1 : digits.length - 1;\n var coefficients = digits.replace('.', '') // remove the dot (must be removed before removing leading zeros)\n .replace(/^0*/, function (zeros) {\n // remove leading zeros, add their count to the exponent\n exponent -= zeros.length;\n return '';\n }).replace(/0*$/, '') // remove trailing zeros\n .split('').map(function (d) {\n return parseInt(d);\n });\n if (coefficients.length === 0) {\n coefficients.push(0);\n exponent++;\n }\n return {\n sign,\n coefficients,\n exponent\n };\n}\n\n/**\n * Format a number in engineering notation. Like '1.23e+6', '2.3e+0', '3.500e-3'\n * @param {number | string} value\n * @param {number} [precision] Optional number of significant figures to return.\n */\nexport function toEngineering(value, precision) {\n if (isNaN(value) || !isFinite(value)) {\n return String(value);\n }\n var split = splitNumber(value);\n var rounded = roundDigits(split, precision);\n var e = rounded.exponent;\n var c = rounded.coefficients;\n\n // find nearest lower multiple of 3 for exponent\n var newExp = e % 3 === 0 ? e : e < 0 ? e - 3 - e % 3 : e - e % 3;\n if (isNumber(precision)) {\n // add zeroes to give correct sig figs\n while (precision > c.length || e - newExp + 1 > c.length) {\n c.push(0);\n }\n } else {\n // concatenate coefficients with necessary zeros\n // add zeros if necessary (for example: 1e+8 -> 100e+6)\n var missingZeros = Math.abs(e - newExp) - (c.length - 1);\n for (var i = 0; i < missingZeros; i++) {\n c.push(0);\n }\n }\n\n // find difference in exponents\n var expDiff = Math.abs(e - newExp);\n var decimalIdx = 1;\n\n // push decimal index over by expDiff times\n while (expDiff > 0) {\n decimalIdx++;\n expDiff--;\n }\n\n // if all coefficient values are zero after the decimal point and precision is unset, don't add a decimal value.\n // otherwise concat with the rest of the coefficients\n var decimals = c.slice(decimalIdx).join('');\n var decimalVal = isNumber(precision) && decimals.length || decimals.match(/[1-9]/) ? '.' + decimals : '';\n var str = c.slice(0, decimalIdx).join('') + decimalVal + 'e' + (e >= 0 ? '+' : '') + newExp.toString();\n return rounded.sign + str;\n}\n\n/**\n * Format a number with fixed notation.\n * @param {number | string} value\n * @param {number} [precision=undefined] Optional number of decimals after the\n * decimal point. null by default.\n */\nexport function toFixed(value, precision) {\n if (isNaN(value) || !isFinite(value)) {\n return String(value);\n }\n var splitValue = splitNumber(value);\n var rounded = typeof precision === 'number' ? roundDigits(splitValue, splitValue.exponent + 1 + precision) : splitValue;\n var c = rounded.coefficients;\n var p = rounded.exponent + 1; // exponent may have changed\n\n // append zeros if needed\n var pp = p + (precision || 0);\n if (c.length < pp) {\n c = c.concat(zeros(pp - c.length));\n }\n\n // prepend zeros if needed\n if (p < 0) {\n c = zeros(-p + 1).concat(c);\n p = 1;\n }\n\n // insert a dot if needed\n if (p < c.length) {\n c.splice(p, 0, p === 0 ? '0.' : '.');\n }\n return rounded.sign + c.join('');\n}\n\n/**\n * Format a number in exponential notation. Like '1.23e+5', '2.3e+0', '3.500e-3'\n * @param {number | string} value\n * @param {number} [precision] Number of digits in formatted output.\n * If not provided, the maximum available digits\n * is used.\n */\nexport function toExponential(value, precision) {\n if (isNaN(value) || !isFinite(value)) {\n return String(value);\n }\n\n // round if needed, else create a clone\n var split = splitNumber(value);\n var rounded = precision ? roundDigits(split, precision) : split;\n var c = rounded.coefficients;\n var e = rounded.exponent;\n\n // append zeros if needed\n if (c.length < precision) {\n c = c.concat(zeros(precision - c.length));\n }\n\n // format as `C.CCCe+EEE` or `C.CCCe-EEE`\n var first = c.shift();\n return rounded.sign + first + (c.length > 0 ? '.' + c.join('') : '') + 'e' + (e >= 0 ? '+' : '') + e;\n}\n\n/**\n * Format a number with a certain precision\n * @param {number | string} value\n * @param {number} [precision=undefined] Optional number of digits.\n * @param {{lowerExp: number | undefined, upperExp: number | undefined}} [options]\n * By default:\n * lowerExp = -3 (incl)\n * upper = +5 (excl)\n * @return {string}\n */\nexport function toPrecision(value, precision, options) {\n if (isNaN(value) || !isFinite(value)) {\n return String(value);\n }\n\n // determine lower and upper bound for exponential notation.\n var lowerExp = options && options.lowerExp !== undefined ? options.lowerExp : -3;\n var upperExp = options && options.upperExp !== undefined ? options.upperExp : 5;\n var split = splitNumber(value);\n var rounded = precision ? roundDigits(split, precision) : split;\n if (rounded.exponent < lowerExp || rounded.exponent >= upperExp) {\n // exponential notation\n return toExponential(value, precision);\n } else {\n var c = rounded.coefficients;\n var e = rounded.exponent;\n\n // append trailing zeros\n if (c.length < precision) {\n c = c.concat(zeros(precision - c.length));\n }\n\n // append trailing zeros\n // TODO: simplify the next statement\n c = c.concat(zeros(e - c.length + 1 + (c.length < precision ? precision - c.length : 0)));\n\n // prepend zeros\n c = zeros(-e).concat(c);\n var dot = e > 0 ? e : 0;\n if (dot < c.length - 1) {\n c.splice(dot + 1, 0, '.');\n }\n return rounded.sign + c.join('');\n }\n}\n\n/**\n * Round the number of digits of a number *\n * @param {SplitValue} split A value split with .splitNumber(value)\n * @param {number} precision A positive integer\n * @return {SplitValue}\n * Returns an object containing sign, coefficients, and exponent\n * with rounded digits\n */\nexport function roundDigits(split, precision) {\n // create a clone\n var rounded = {\n sign: split.sign,\n coefficients: split.coefficients,\n exponent: split.exponent\n };\n var c = rounded.coefficients;\n\n // prepend zeros if needed\n while (precision <= 0) {\n c.unshift(0);\n rounded.exponent++;\n precision++;\n }\n if (c.length > precision) {\n var removed = c.splice(precision, c.length - precision);\n if (removed[0] >= 5) {\n var i = precision - 1;\n c[i]++;\n while (c[i] === 10) {\n c.pop();\n if (i === 0) {\n c.unshift(0);\n rounded.exponent++;\n i++;\n }\n i--;\n c[i]++;\n }\n }\n }\n return rounded;\n}\n\n/**\n * Create an array filled with zeros.\n * @param {number} length\n * @return {Array}\n */\nfunction zeros(length) {\n var arr = [];\n for (var i = 0; i < length; i++) {\n arr.push(0);\n }\n return arr;\n}\n\n/**\n * Count the number of significant digits of a number.\n *\n * For example:\n * 2.34 returns 3\n * 0.0034 returns 2\n * 120.5e+30 returns 4\n *\n * @param {number} value\n * @return {number} digits Number of significant digits\n */\nexport function digits(value) {\n return value.toExponential().replace(/e.*$/, '') // remove exponential notation\n .replace(/^0\\.?0*|\\./, '') // remove decimal point and leading zeros\n .length;\n}\n\n/**\n * Minimum number added to one that makes the result different than one\n */\nexport var DBL_EPSILON = Number.EPSILON || 2.2204460492503130808472633361816E-16;\n\n/**\n * Compares two floating point numbers.\n * @param {number} x First value to compare\n * @param {number} y Second value to compare\n * @param {number} [epsilon] The maximum relative difference between x and y\n * If epsilon is undefined or null, the function will\n * test whether x and y are exactly equal.\n * @return {boolean} whether the two numbers are nearly equal\n*/\nexport function nearlyEqual(x, y, epsilon) {\n // if epsilon is null or undefined, test whether x and y are exactly equal\n if (epsilon === null || epsilon === undefined) {\n return x === y;\n }\n if (x === y) {\n return true;\n }\n\n // NaN\n if (isNaN(x) || isNaN(y)) {\n return false;\n }\n\n // at this point x and y should be finite\n if (isFinite(x) && isFinite(y)) {\n // check numbers are very close, needed when comparing numbers near zero\n var diff = Math.abs(x - y);\n if (diff < DBL_EPSILON) {\n return true;\n } else {\n // use relative error\n return diff <= Math.max(Math.abs(x), Math.abs(y)) * epsilon;\n }\n }\n\n // Infinite and Number or negative Infinite and positive Infinite cases\n return false;\n}\n\n/**\n * Calculate the hyperbolic arccos of a number\n * @param {number} x\n * @return {number}\n */\nexport var acosh = Math.acosh || function (x) {\n return Math.log(Math.sqrt(x * x - 1) + x);\n};\nexport var asinh = Math.asinh || function (x) {\n return Math.log(Math.sqrt(x * x + 1) + x);\n};\n\n/**\n * Calculate the hyperbolic arctangent of a number\n * @param {number} x\n * @return {number}\n */\nexport var atanh = Math.atanh || function (x) {\n return Math.log((1 + x) / (1 - x)) / 2;\n};\n\n/**\n * Calculate the hyperbolic cosine of a number\n * @param {number} x\n * @returns {number}\n */\nexport var cosh = Math.cosh || function (x) {\n return (Math.exp(x) + Math.exp(-x)) / 2;\n};\n\n/**\n * Calculate the hyperbolic sine of a number\n * @param {number} x\n * @returns {number}\n */\nexport var sinh = Math.sinh || function (x) {\n return (Math.exp(x) - Math.exp(-x)) / 2;\n};\n\n/**\n * Calculate the hyperbolic tangent of a number\n * @param {number} x\n * @returns {number}\n */\nexport var tanh = Math.tanh || function (x) {\n var e = Math.exp(2 * x);\n return (e - 1) / (e + 1);\n};\n\n/**\n * Returns a value with the magnitude of x and the sign of y.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\nexport function copysign(x, y) {\n var signx = x > 0 ? true : x < 0 ? false : 1 / x === Infinity;\n var signy = y > 0 ? true : y < 0 ? false : 1 / y === Infinity;\n return signx ^ signy ? -x : x;\n}","import { factory } from '../../utils/factory.js';\nvar name = 'intersect';\nvar dependencies = ['typed', 'config', 'abs', 'add', 'addScalar', 'matrix', 'multiply', 'multiplyScalar', 'divideScalar', 'subtract', 'smaller', 'equalScalar', 'flatten', 'isZero', 'isNumeric'];\nexport var createIntersect = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n abs,\n add,\n addScalar,\n matrix,\n multiply,\n multiplyScalar,\n divideScalar,\n subtract,\n smaller,\n equalScalar,\n flatten,\n isZero,\n isNumeric\n } = _ref;\n /**\n * Calculates the point of intersection of two lines in two or three dimensions\n * and of a line and a plane in three dimensions. The inputs are in the form of\n * arrays or 1 dimensional matrices. The line intersection functions return null\n * if the lines do not meet.\n *\n * Note: Fill the plane coefficients as `x + y + z = c` and not as `x + y + z + c = 0`.\n *\n * Syntax:\n *\n * math.intersect(endPoint1Line1, endPoint2Line1, endPoint1Line2, endPoint2Line2)\n * math.intersect(endPoint1, endPoint2, planeCoefficients)\n *\n * Examples:\n *\n * math.intersect([0, 0], [10, 10], [10, 0], [0, 10]) // Returns [5, 5]\n * math.intersect([0, 0, 0], [10, 10, 0], [10, 0, 0], [0, 10, 0]) // Returns [5, 5, 0]\n * math.intersect([1, 0, 1], [4, -2, 2], [1, 1, 1, 6]) // Returns [7, -4, 3]\n *\n * @param {Array | Matrix} w Co-ordinates of first end-point of first line\n * @param {Array | Matrix} x Co-ordinates of second end-point of first line\n * @param {Array | Matrix} y Co-ordinates of first end-point of second line\n * OR Co-efficients of the plane's equation\n * @param {Array | Matrix} z Co-ordinates of second end-point of second line\n * OR undefined if the calculation is for line and plane\n * @return {Array} Returns the point of intersection of lines/lines-planes\n */\n return typed('intersect', {\n 'Array, Array, Array': _AAA,\n 'Array, Array, Array, Array': _AAAA,\n 'Matrix, Matrix, Matrix': function MatrixMatrixMatrix(x, y, plane) {\n var arr = _AAA(x.valueOf(), y.valueOf(), plane.valueOf());\n return arr === null ? null : matrix(arr);\n },\n 'Matrix, Matrix, Matrix, Matrix': function MatrixMatrixMatrixMatrix(w, x, y, z) {\n // TODO: output matrix type should match input matrix type\n var arr = _AAAA(w.valueOf(), x.valueOf(), y.valueOf(), z.valueOf());\n return arr === null ? null : matrix(arr);\n }\n });\n function _AAA(x, y, plane) {\n x = _coerceArr(x);\n y = _coerceArr(y);\n plane = _coerceArr(plane);\n if (!_3d(x)) {\n throw new TypeError('Array with 3 numbers or BigNumbers expected for first argument');\n }\n if (!_3d(y)) {\n throw new TypeError('Array with 3 numbers or BigNumbers expected for second argument');\n }\n if (!_4d(plane)) {\n throw new TypeError('Array with 4 numbers expected as third argument');\n }\n return _intersectLinePlane(x[0], x[1], x[2], y[0], y[1], y[2], plane[0], plane[1], plane[2], plane[3]);\n }\n function _AAAA(w, x, y, z) {\n w = _coerceArr(w);\n x = _coerceArr(x);\n y = _coerceArr(y);\n z = _coerceArr(z);\n if (w.length === 2) {\n if (!_2d(w)) {\n throw new TypeError('Array with 2 numbers or BigNumbers expected for first argument');\n }\n if (!_2d(x)) {\n throw new TypeError('Array with 2 numbers or BigNumbers expected for second argument');\n }\n if (!_2d(y)) {\n throw new TypeError('Array with 2 numbers or BigNumbers expected for third argument');\n }\n if (!_2d(z)) {\n throw new TypeError('Array with 2 numbers or BigNumbers expected for fourth argument');\n }\n return _intersect2d(w, x, y, z);\n } else if (w.length === 3) {\n if (!_3d(w)) {\n throw new TypeError('Array with 3 numbers or BigNumbers expected for first argument');\n }\n if (!_3d(x)) {\n throw new TypeError('Array with 3 numbers or BigNumbers expected for second argument');\n }\n if (!_3d(y)) {\n throw new TypeError('Array with 3 numbers or BigNumbers expected for third argument');\n }\n if (!_3d(z)) {\n throw new TypeError('Array with 3 numbers or BigNumbers expected for fourth argument');\n }\n return _intersect3d(w[0], w[1], w[2], x[0], x[1], x[2], y[0], y[1], y[2], z[0], z[1], z[2]);\n } else {\n throw new TypeError('Arrays with two or thee dimensional points expected');\n }\n }\n\n /** Coerce row and column 2-dim arrays to 1-dim array */\n function _coerceArr(arr) {\n // row matrix\n if (arr.length === 1) return arr[0];\n\n // column matrix\n if (arr.length > 1 && Array.isArray(arr[0])) {\n if (arr.every(el => Array.isArray(el) && el.length === 1)) return flatten(arr);\n }\n return arr;\n }\n function _2d(x) {\n return x.length === 2 && isNumeric(x[0]) && isNumeric(x[1]);\n }\n function _3d(x) {\n return x.length === 3 && isNumeric(x[0]) && isNumeric(x[1]) && isNumeric(x[2]);\n }\n function _4d(x) {\n return x.length === 4 && isNumeric(x[0]) && isNumeric(x[1]) && isNumeric(x[2]) && isNumeric(x[3]);\n }\n function _intersect2d(p1a, p1b, p2a, p2b) {\n var o1 = p1a;\n var o2 = p2a;\n var d1 = subtract(o1, p1b);\n var d2 = subtract(o2, p2b);\n var det = subtract(multiplyScalar(d1[0], d2[1]), multiplyScalar(d2[0], d1[1]));\n if (isZero(det)) return null;\n if (smaller(abs(det), config.epsilon)) {\n return null;\n }\n var d20o11 = multiplyScalar(d2[0], o1[1]);\n var d21o10 = multiplyScalar(d2[1], o1[0]);\n var d20o21 = multiplyScalar(d2[0], o2[1]);\n var d21o20 = multiplyScalar(d2[1], o2[0]);\n var t = divideScalar(addScalar(subtract(subtract(d20o11, d21o10), d20o21), d21o20), det);\n return add(multiply(d1, t), o1);\n }\n function _intersect3dHelper(a, b, c, d, e, f, g, h, i, j, k, l) {\n // (a - b)*(c - d) + (e - f)*(g - h) + (i - j)*(k - l)\n var add1 = multiplyScalar(subtract(a, b), subtract(c, d));\n var add2 = multiplyScalar(subtract(e, f), subtract(g, h));\n var add3 = multiplyScalar(subtract(i, j), subtract(k, l));\n return addScalar(addScalar(add1, add2), add3);\n }\n function _intersect3d(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) {\n var d1343 = _intersect3dHelper(x1, x3, x4, x3, y1, y3, y4, y3, z1, z3, z4, z3);\n var d4321 = _intersect3dHelper(x4, x3, x2, x1, y4, y3, y2, y1, z4, z3, z2, z1);\n var d1321 = _intersect3dHelper(x1, x3, x2, x1, y1, y3, y2, y1, z1, z3, z2, z1);\n var d4343 = _intersect3dHelper(x4, x3, x4, x3, y4, y3, y4, y3, z4, z3, z4, z3);\n var d2121 = _intersect3dHelper(x2, x1, x2, x1, y2, y1, y2, y1, z2, z1, z2, z1);\n var numerator = subtract(multiplyScalar(d1343, d4321), multiplyScalar(d1321, d4343));\n var denominator = subtract(multiplyScalar(d2121, d4343), multiplyScalar(d4321, d4321));\n if (isZero(denominator)) return null;\n var ta = divideScalar(numerator, denominator);\n var tb = divideScalar(addScalar(d1343, multiplyScalar(ta, d4321)), d4343);\n var pax = addScalar(x1, multiplyScalar(ta, subtract(x2, x1)));\n var pay = addScalar(y1, multiplyScalar(ta, subtract(y2, y1)));\n var paz = addScalar(z1, multiplyScalar(ta, subtract(z2, z1)));\n var pbx = addScalar(x3, multiplyScalar(tb, subtract(x4, x3)));\n var pby = addScalar(y3, multiplyScalar(tb, subtract(y4, y3)));\n var pbz = addScalar(z3, multiplyScalar(tb, subtract(z4, z3)));\n if (equalScalar(pax, pbx) && equalScalar(pay, pby) && equalScalar(paz, pbz)) {\n return [pax, pay, paz];\n } else {\n return null;\n }\n }\n function _intersectLinePlane(x1, y1, z1, x2, y2, z2, x, y, z, c) {\n var x1x = multiplyScalar(x1, x);\n var x2x = multiplyScalar(x2, x);\n var y1y = multiplyScalar(y1, y);\n var y2y = multiplyScalar(y2, y);\n var z1z = multiplyScalar(z1, z);\n var z2z = multiplyScalar(z2, z);\n var numerator = subtract(subtract(subtract(c, x1x), y1y), z1z);\n var denominator = subtract(subtract(subtract(addScalar(addScalar(x2x, y2y), z2z), x1x), y1y), z1z);\n var t = divideScalar(numerator, denominator);\n var px = addScalar(x1, multiplyScalar(t, subtract(x2, x1)));\n var py = addScalar(y1, multiplyScalar(t, subtract(y2, y1)));\n var pz = addScalar(z1, multiplyScalar(t, subtract(z2, z1)));\n return [px, py, pz];\n // TODO: Add cases when line is parallel to the plane:\n // (a) no intersection,\n // (b) line contained in plane\n }\n});","import { factory } from '../../utils/factory.js';\nvar name = 'matrixFromFunction';\nvar dependencies = ['typed', 'matrix', 'isZero'];\nexport var createMatrixFromFunction = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n isZero\n } = _ref;\n /**\n * Create a matrix by evaluating a generating function at each index.\n * The simplest overload returns a multi-dimensional array as long as `size` is an array.\n * Passing `size` as a Matrix or specifying a `format` will result in returning a Matrix.\n *\n * Syntax:\n *\n * math.matrixFromFunction(size, fn)\n * math.matrixFromFunction(size, fn, format)\n * math.matrixFromFunction(size, fn, format, datatype)\n * math.matrixFromFunction(size, format, fn)\n * math.matrixFromFunction(size, format, datatype, fn)\n *\n * Examples:\n *\n * math.matrixFromFunction([3,3], i => i[0] - i[1]) // an antisymmetric matrix\n * math.matrixFromFunction([100, 100], 'sparse', i => i[0] - i[1] === 1 ? 4 : 0) // a sparse subdiagonal matrix\n * math.matrixFromFunction([5], i => math.random()) // a random vector\n *\n * See also:\n *\n * matrix, zeros\n *\n * @param {Array | Matrix} size The size of the matrix to be created\n * @param {function} fn Callback function invoked for every entry in the matrix\n * @param {string} [format] The Matrix storage format, either `'dense'` or `'sparse'`\n * @param {string} [datatype] Type of the values\n * @return {Array | Matrix} Returns the created matrix\n */\n return typed(name, {\n 'Array | Matrix, function, string, string': function ArrayMatrixFunctionStringString(size, fn, format, datatype) {\n return _create(size, fn, format, datatype);\n },\n 'Array | Matrix, function, string': function ArrayMatrixFunctionString(size, fn, format) {\n return _create(size, fn, format);\n },\n 'Matrix, function': function MatrixFunction(size, fn) {\n return _create(size, fn, 'dense');\n },\n 'Array, function': function ArrayFunction(size, fn) {\n return _create(size, fn, 'dense').toArray();\n },\n 'Array | Matrix, string, function': function ArrayMatrixStringFunction(size, format, fn) {\n return _create(size, fn, format);\n },\n 'Array | Matrix, string, string, function': function ArrayMatrixStringStringFunction(size, format, datatype, fn) {\n return _create(size, fn, format, datatype);\n }\n });\n function _create(size, fn, format, datatype) {\n var m;\n if (datatype !== undefined) {\n m = matrix(format, datatype);\n } else {\n m = matrix(format);\n }\n m.resize(size);\n m.forEach(function (_, index) {\n var val = fn(index);\n if (isZero(val)) return;\n m.set(index, val);\n });\n return m;\n }\n});","import { deepMap } from '../../utils/collection.js';\nimport { factory } from '../../utils/factory.js';\nimport { isZeroNumber } from '../../plain/number/index.js';\nvar name = 'isZero';\nvar dependencies = ['typed'];\nexport var createIsZero = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Test whether a value is zero.\n * The function can check for zero for types `number`, `BigNumber`, `Fraction`,\n * `Complex`, and `Unit`.\n *\n * The function is evaluated element-wise in case of Array or Matrix input.\n *\n * Syntax:\n *\n * math.isZero(x)\n *\n * Examples:\n *\n * math.isZero(0) // returns true\n * math.isZero(2) // returns false\n * math.isZero(0.5) // returns false\n * math.isZero(math.bignumber(0)) // returns true\n * math.isZero(math.fraction(0)) // returns true\n * math.isZero(math.fraction(1,3)) // returns false\n * math.isZero(math.complex('2 - 4i')) // returns false\n * math.isZero(math.complex('0i')) // returns true\n * math.isZero('0') // returns true\n * math.isZero('2') // returns false\n * math.isZero([2, 0, -3]) // returns [false, true, false]\n *\n * See also:\n *\n * isNumeric, isPositive, isNegative, isInteger\n *\n * @param {number | BigNumber | Complex | Fraction | Unit | Array | Matrix} x Value to be tested\n * @return {boolean} Returns true when `x` is zero.\n * Throws an error in case of an unknown data type.\n */\n return typed(name, {\n number: isZeroNumber,\n BigNumber: function BigNumber(x) {\n return x.isZero();\n },\n Complex: function Complex(x) {\n return x.re === 0 && x.im === 0;\n },\n Fraction: function Fraction(x) {\n return x.d === 1 && x.n === 0;\n },\n Unit: typed.referToSelf(self => x => typed.find(self, x.valueType())(x.value)),\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))\n });\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"auth-wrapper auth-v1 px-2\"},[_c('div',{staticClass:\"auth-inner py-2\",attrs:{\"id\":\"divCard\"}},[(_vm.autenticando)?_c('b-card',{staticClass:\"mb-0 card-xl text-center d-flex flex-column justify-content-center align-items-center\"},[_c('b-card-title',{staticClass:\"font-weight-bold mb-2 mt-2\",attrs:{\"title-tag\":\"h2\"}},[_vm._v(\" Aguarde! \")]),_c('b-icon',{attrs:{\"icon\":\"arrow-clockwise\",\"animation\":\"spin\",\"font-scale\":\"4\"}})],1):(!_vm.chaveVerificada)?_c('b-card',{staticClass:\"mb-0 card-xl text-center d-flex flex-column justify-content-center align-items-center\"},[_c('b-icon',{staticClass:\"mt-3\",attrs:{\"icon\":\"exclamation-triangle-fill\",\"variant\":\"danger\",\"font-scale\":\"3\"}}),_c('b-card-title',{staticClass:\"font-weight-bold mb-2 mt-2\",attrs:{\"title-tag\":\"h2\"}},[_vm._v(\" Alerta! \")]),_c('b-card-text',{staticClass:\"mt-4\"},[_vm._v(\" Ocorreu um erro ao se autenticar. \")]),_c('b-card-text',{staticClass:\"mb-3\"},[_vm._v(\" Acesse o aplicativo e tente acessar novamente. \")])],1):(_vm.apresentaTelaInicial)?_c('b-card',{staticClass:\"mb-0 card-xl\"},[_c('span',{staticClass:\"brand-logo\"},[_c('b-img',{ref:\"refPreviewEl\",staticClass:\"badge-minimal\",attrs:{\"src\":require(\"@/assets/images/logo/Novos/logoCliente.png\"),\"alt\":\"logo\",\"variant\":\"light-primary\",\"badge\":\"\",\"badge-variant\":\"success\",\"height\":\"80\",\"rounded\":\"\"}})],1),_c('b-card-title',{staticClass:\"font-weight-bold text-center mb-1\",attrs:{\"title-tag\":\"h2\"}},[_vm._v(\" Empréstimo Consignado - \"+_vm._s(_vm.sigla)+\" \")]),_c('b-card-text',{staticClass:\"mb-2 text-center\"},[_vm._v(\" Bem-vindo! Simule seu empréstimo agora. \")]),_c('b-card-text',{staticClass:\"mb-2 text-center\"},[_vm._v(\" Clique em avançar para continuar. \")]),_c('b-button',{staticClass:\"mt-4\",attrs:{\"disabled\":!_vm.chaveVerificada,\"block\":\"\",\"variant\":\"primary\",\"id\":\"botaoAvancar\"},on:{\"click\":_vm.mostraMenu}},[_vm._v(\" Avançar \")])],1):_vm._e(),(_vm.apresentaMenu)?_c('b-card',{staticClass:\"mb-0 card-xl text-center d-flex flex-column justify-content-center align-items-center\"},[_c('b-card-title',{staticClass:\"font-weight-bold mb-2 mt-2\",attrs:{\"title-tag\":\"h2\"}},[_vm._v(\" Selecione a opção desejada \")]),_c('b-button',{staticClass:\"mt-4\",attrs:{\"block\":\"\",\"variant\":\"primary\",\"id\":\"botaoRealizarSimulacao\"},on:{\"click\":_vm.mostraProposta}},[_vm._v(\" Realizar Simulação \")]),_c('b-button',{staticClass:\"mt-1\",attrs:{\"block\":\"\",\"variant\":\"primary\",\"id\":\"botaoAcompanharProposta\"},on:{\"click\":_vm.mostraListaDePropostas}},[_vm._v(\" Acompanhar Contrato \")])],1):_vm._e(),(_vm.apresentaProposta)?_c('b-card',{staticClass:\"mb-0 card-xl text-center d-flex flex-column justify-content-center align-items-center\",attrs:{\"id\":\"cardExterna\"}},[(_vm.apresentaProposta)?_c('gerar-proposta-externa',{ref:\"componenteGerarPropostaExterna\",attrs:{\"id\":\"gerarPropostaExterna\",\"parametro\":_vm.parametroSimulacaoProposta},on:{\"proximaModal\":_vm.acessaReconhecimentoFacial,\"finalizaProposta\":_vm.mostraTelaInicial,\"retornarAbaInicial\":_vm.mostraMenu}}):_vm._e()],1):_vm._e(),(_vm.apresentaDocumentosObrigatorios && _vm.habilitaAplicativo.reconhecimentoDocumento)?_c('b-card',{staticClass:\"mb-0 card-xl text-center d-flex flex-column justify-content-center align-items-center\",attrs:{\"id\":\"cardExterna\"}},[_c('DocumentosObrigatorios',{on:{\"documentoValidado\":_vm.validarEnvioDocumentos}}),(_vm.habilitaAplicativo.reconhecimentoFacial)?_c('b-button',{staticClass:\"mt-1 buttonVoltar\",attrs:{\"title\":!_vm.documentosValidados ? 'É necessário enviar os documentos para continuar.' : 'Clique para avançar',\"variant\":\"primary\",\"disabled\":!_vm.documentosValidados,\"id\":\"botaoAvancarReconhecimentoFacial\"},on:{\"click\":_vm.mostraSelfie}},[_vm._v(\" Próximo \")]):_c('div',[(_vm.termosCondicoes.isActiveTermosCondicoes)?_c('b-checkbox',{staticClass:\"text-start\",attrs:{\"id\":\"termosDoContratoId\",\"name\":\"Termos do Contrato\"},model:{value:(_vm.termosDoContrato),callback:function ($$v) {_vm.termosDoContrato=$$v},expression:\"termosDoContrato\"}},[_vm._v(\" Eu aceito os \"),_c('b-link',{staticClass:\"text-primary\",on:{\"click\":_vm.abrirModalContrato}},[_vm._v(\" termos do contrato. \"),_c('b-icon',{attrs:{\"icon\":\"box-arrow-up-right\",\"aria-hidden\":\"true\"}})],1)],1):_vm._e(),(_vm.politicaDePrivacidade.isActivePoliticaPrivacidade)?_c('b-checkbox',{staticClass:\"text-start mb-1\",attrs:{\"id\":\"termosPoliticaDePrivacidadeId\",\"name\":\"Termos Política de Privacidade\"},model:{value:(_vm.termosPoliticaDePrivacidade),callback:function ($$v) {_vm.termosPoliticaDePrivacidade=$$v},expression:\"termosPoliticaDePrivacidade\"}},[_vm._v(\" Eu aceito os \"),_c('b-link',{staticClass:\"text-primary\",on:{\"click\":_vm.abrirModalPrivacidade}},[_vm._v(\" termos da politica de privacidade. \"),_c('b-icon',{attrs:{\"icon\":\"box-arrow-up-right\",\"aria-hidden\":\"true\"}})],1)],1):_vm._e()],1),(!_vm.habilitaAplicativo.reconhecimentoFacial)?_c('b-button',{staticClass:\"mt-1 buttonVoltar\",attrs:{\"disabled\":!_vm.termosDoContrato || !_vm.termosPoliticaDePrivacidade || _vm.loading,\"variant\":\"primary\",\"id\":\"botaoFinalizarProposta\"},on:{\"click\":_vm.finalizarProposta}},[_vm._v(\" Enviar Solicitação \")]):_vm._e(),_c('br'),_c('b-button',{staticClass:\"mt-1 buttonVoltar\",attrs:{\"variant\":\"primary\",\"id\":\"botaoVoltarProposta\"},on:{\"click\":_vm.mostraProposta}},[_vm._v(\" Voltar \")])],1):_vm._e(),(_vm.apresentaSelfie && _vm.habilitaAplicativo.reconhecimentoFacial)?_c('b-card',{staticClass:\"mb-0 card-xl text-center d-flex flex-column justify-content-center\",attrs:{\"id\":\"cardExterna\"}},[_c('selfie',{on:{\"selfieValidada\":_vm.validarReconhecimentoFacial}}),_c('b-button',{staticClass:\"mt-1 buttonVoltar\",attrs:{\"variant\":\"primary\",\"disabled\":!_vm.documentosValidados,\"id\":\"botaoAvancarReconhecimentoFacial\"},on:{\"click\":_vm.mostraDeteccao}},[_vm._v(\" Próximo \")]),_c('br'),_c('b-button',{staticClass:\"mt-1 buttonVoltar\",attrs:{\"variant\":\"primary\",\"id\":\"botaoVoltarDocumentosObrigatorios\"},on:{\"click\":_vm.retornaReconhecimentoFacial}},[_vm._v(\" Voltar \")])],1):_vm._e(),(_vm.apresentaDeteccao && _vm.habilitaAplicativo.reconhecimentoDocumento && _vm.habilitaAplicativo.reconhecimentoFacial)?_c('b-card',{staticClass:\"mb-0 card-xl text-center d-flex flex-column justify-content-center\",attrs:{\"id\":\"cardExterna\"}},[_c('modalDetectaRosto',{attrs:{\"selfie\":_vm.selfieCapturada},on:{\"userWaved\":function ($event) { return _vm.setUserWaved(); }}}),_c('div',[(_vm.termosCondicoes.isActiveTermosCondicoes)?_c('b-checkbox',{staticClass:\"text-start\",attrs:{\"id\":\"termosDoContratoId\",\"name\":\"Termos do Contrato\",\"disabled\":!_vm.deteccaoMovimentos},model:{value:(_vm.termosDoContrato),callback:function ($$v) {_vm.termosDoContrato=$$v},expression:\"termosDoContrato\"}},[_vm._v(\" Eu aceito os \"),_c('b-link',{staticClass:\"text-primary\",on:{\"click\":_vm.abrirModalContrato}},[_vm._v(\" termos do contrato. \"),_c('b-icon',{attrs:{\"icon\":\"box-arrow-up-right\",\"aria-hidden\":\"true\"}})],1)],1):_vm._e(),(_vm.politicaDePrivacidade.isActivePoliticaPrivacidade)?_c('b-checkbox',{staticClass:\"text-start mb-1\",attrs:{\"id\":\"termosPoliticaDePrivacidadeId\",\"name\":\"Termos Política de Privacidade\",\"disabled\":!_vm.deteccaoMovimentos},model:{value:(_vm.termosPoliticaDePrivacidade),callback:function ($$v) {_vm.termosPoliticaDePrivacidade=$$v},expression:\"termosPoliticaDePrivacidade\"}},[_vm._v(\" Eu aceito os \"),_c('b-link',{staticClass:\"text-primary\",on:{\"click\":_vm.abrirModalPrivacidade}},[_vm._v(\" termos da politica de privacidade. \"),_c('b-icon',{attrs:{\"icon\":\"box-arrow-up-right\",\"aria-hidden\":\"true\"}})],1)],1):_vm._e()],1),_c('b-button',{staticClass:\"mt-1 buttonVoltar\",attrs:{\"disabled\":!_vm.termosDoContrato || !_vm.termosPoliticaDePrivacidade || _vm.loading,\"variant\":\"primary\",\"id\":\"botaoFinalizarProposta\"},on:{\"click\":_vm.finalizarProposta}},[_vm._v(\" Enviar Solicitação \")]),_c('br'),_c('b-button',{staticClass:\"mt-1 buttonVoltar\",attrs:{\"variant\":\"primary\",\"id\":\"botaoVoltarDeteccao\"},on:{\"click\":_vm.retornaDeteccao}},[_vm._v(\" Voltar \")])],1):_vm._e(),(_vm.apresentaListaDePropostas)?_c('b-card',{staticClass:\"mb-0 card-xl text-center d-flex flex-column justify-content-center\",attrs:{\"id\":\"cardExterna\"}},[_c('lista-de-propostas',{on:{\"retornarAbaInicial\":_vm.apresentaMenu}}),_c('b-button',{staticClass:\"mt-1 buttonVoltar\",attrs:{\"variant\":\"primary\",\"id\":\"botaoVoltarMenuPelaListaDeProposta\"},on:{\"click\":_vm.mostraMenu}},[_vm._v(\" Voltar \")])],1):_vm._e()],1)]),_c('b-modal',{attrs:{\"id\":\"modalContrato\",\"title\":\"Termos e Condições de Empréstimo\",\"centered\":\"\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(ref){\nvar ok = ref.ok;\nreturn [_c('b-button',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){return ok()}}},[_vm._v(\" Fechar \")])]}}])},[_c('div',{staticClass:\"text-left\",domProps:{\"innerHTML\":_vm._s(_vm.termosCondicoes.textoTermosCondicoes)}})]),_c('b-modal',{attrs:{\"id\":\"modalPrivacidade\",\"title\":\"Termos da politica de privacidade\",\"centered\":\"\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(ref){\nvar ok = ref.ok;\nreturn [_c('b-button',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){return ok()}}},[_vm._v(\" Fechar \")])]}}])},[_c('div',{staticClass:\"text-left\",domProps:{\"innerHTML\":_vm._s(_vm.politicaDePrivacidade.textoPoliticaPrivacidade)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard',{staticClass:\"mb-3\",attrs:{\"shape\":\"circle\",\"color\":\"#3949ab\",\"title\":null,\"subtitle\":null,\"back-button-text\":\"Voltar\",\"next-button-text\":\"Próximo\",\"finish-button-text\":_vm.textoBotaoFinalizar},on:{\"on-complete\":_vm.verificaSalvarProposta},scopedSlots:_vm._u([{key:\"footer\",fn:function(props){return [_c('div',{staticClass:\"wizard-footer mt-2\"},[(props.activeTabIndex == 1)?_c('b-row',[_c('b-col',{staticClass:\"wizard-footer-right wizard-footer-col\",attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('b-button',{staticClass:\"wizard-footer-btn\",attrs:{\"variant\":\"outline-primary\"},on:{\"click\":_vm.calcular}},[_vm._v(\" Calcular \")])],1)],1):_vm._e(),_c('b-row',[(!props.isLastStep)?_c('b-col',{staticClass:\"wizard-footer-right\",attrs:{\"cols\":\"12\",\"md\":props.activeTabIndex == 2 ? 6 : 12}},[_c('wizard-button',{staticClass:\"wizard-footer-btn\",style:(props.fillButtonStyle),attrs:{\"disabled\":!_vm.habilitarBotaoProximoCalcular(props.activeTabIndex)},nativeOn:{\"click\":function($event){return props.nextTab()}}},[_vm._v(\" Próximo \")])],1):_c('b-col',{staticClass:\"wizard-footer-right\",attrs:{\"md\":props.activeTabIndex == 2 ? 6 : 12,\"cols\":\"12\"}},[_c('b-button',{staticClass:\"wizard-footer-btn\",style:(props.fillButtonStyle),attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.verificaSalvarProposta}},[_vm._v(\" \"+_vm._s(props.isLastStep ? _vm.parametro.habilitaReconhecimentoFacialOuDocumentacao ? 'Solicitar Contratação' : 'Enviar Solicitação ' : 'Próximo')+\" \")])],1),(props.activeTabIndex == 0)?_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('wizard-button',{staticClass:\"wizard-footer-btn\",style:(props.fillButtonStyle),nativeOn:{\"click\":function($event){return _vm.retornarAbaInicial.apply(null, arguments)}}},[_vm._v(\" Voltar \")])],1):_vm._e(),_c('b-col',{attrs:{\"cols\":\"12\"}},[(props.activeTabIndex > 0)?_c('wizard-button',{staticClass:\"wizard-footer-btn\",style:(props.fillButtonStyle),nativeOn:{\"click\":function($event){return props.prevTab()}}},[_vm._v(\" Voltar \")]):_vm._e()],1)],1)],1)]}}])},[(!_vm.origemAplicativo)?_c('tab-content',{attrs:{\"title\":\"Segurado\",\"before-change\":_vm.validationDadosSegurado}},[_c('validation-observer',{ref:\"tomRules\",attrs:{\"tag\":\"form\"}},[_c('b-form-group',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.campoSeguradoSelecionado),expression:\"campoSeguradoSelecionado\"}],attrs:{\"label\":\"Segurado\",\"label-for\":\"segurado\"}},[_c('validation-provider',{attrs:{\"name\":\"Segurado\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [(_vm.isBusySegurado)?_c('b-skeleton',{attrs:{\"type\":\"input\"}}):_c('vue-autosuggest',{attrs:{\"id\":\"segurado\",\"suggestions\":_vm.suggestions,\"input-props\":{ id: 'autosuggest__input', class: 'form-control', placeholder: 'Digite aqui o nome do segurado' }},on:{\"selected\":_vm.getSuggestionValue,\"input\":_vm.fetchResults},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar suggestion = ref.suggestion;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-avatar',{attrs:{\"src\":suggestion.item.tomador.foto ? suggestion.item.tomador.foto.foto : null}}),_c('div',{staticClass:\"detail ml-50\"},[_c('b-card-text',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(suggestion.item.tomador.nomeCompleto)+\" \")]),_c('small',{staticClass:\"text-muted\"},[_vm._v(\" CPF: \"+_vm._s(suggestion.item.tomador.cpf)+\" - Categoria: \"+_vm._s(suggestion.item.situacaoPrevidenciaria)+\" - Matrícula: \"+_vm._s(suggestion.item.matricula)+\" \")])],1)],1)]}}],null,false,2190148782),model:{value:(_vm.proposta.segurado),callback:function ($$v) {_vm.$set(_vm.proposta, \"segurado\", $$v)},expression:\"proposta.segurado\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,false,2579868677)})],1),_c('b-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(this.exibeDadosSegurado),expression:\"this.exibeDadosSegurado\"}]},[_c('b-col',{attrs:{\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"CPF\",\"label-for\":\"cpf\"}},[_c('b-form-input',{attrs:{\"readonly\":\"\",\"id\":\"cpf\",\"type\":\"text\",\"placeholder\":\"CPF\"},model:{value:(_vm.segurado.tomador.cpf),callback:function ($$v) {_vm.$set(_vm.segurado.tomador, \"cpf\", $$v)},expression:\"segurado.tomador.cpf\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"9\"}},[_c('b-form-group',{attrs:{\"label\":\"Nome Completo\",\"label-for\":\"nomeCompleto\"}},[_c('b-form-input',{staticStyle:{\"text-transform\":\"uppercase\"},attrs:{\"readonly\":\"\",\"id\":\"nomeCompleto\",\"type\":\"text\",\"placeholder\":\"Nome Completo\"},model:{value:(_vm.segurado.tomador.nomeCompleto),callback:function ($$v) {_vm.$set(_vm.segurado.tomador, \"nomeCompleto\", $$v)},expression:\"segurado.tomador.nomeCompleto\"}})],1)],1)],1),_c('b-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(this.exibeDadosSegurado),expression:\"this.exibeDadosSegurado\"}]},[_c('b-col',{attrs:{\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Categoria\",\"label-for\":\"categoria\"}},[_c('b-form-input',{attrs:{\"readonly\":\"\",\"id\":\"categoria\",\"type\":\"text\",\"placeholder\":\"Categoria\"},model:{value:(_vm.segurado.categoria),callback:function ($$v) {_vm.$set(_vm.segurado, \"categoria\", $$v)},expression:\"segurado.categoria\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"9\"}},[_c('b-form-group',{attrs:{\"label\":\"Nome Social\",\"label-for\":\"nomeSocial\"}},[_c('b-form-input',{staticStyle:{\"text-transform\":\"uppercase\"},attrs:{\"readonly\":\"\",\"id\":\"nomeSocial\",\"type\":\"text\",\"placeholder\":\"Nome Social\"},model:{value:(_vm.segurado.tomador.nomeSocial),callback:function ($$v) {_vm.$set(_vm.segurado.tomador, \"nomeSocial\", $$v)},expression:\"segurado.tomador.nomeSocial\"}})],1)],1)],1),_c('b-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(this.exibeDadosSegurado),expression:\"this.exibeDadosSegurado\"}]},[_c('b-col',{attrs:{\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Data de Nascimento\",\"label-for\":\"dataNascimento\"}},[_c('b-form-input',{staticStyle:{\"text-transform\":\"uppercase\"},attrs:{\"readonly\":\"\",\"id\":\"dataNascimento\",\"type\":\"text\",\"placeholder\":\"Data de Nascimento\"},model:{value:(_vm.segurado.tomador.dataNascimento),callback:function ($$v) {_vm.$set(_vm.segurado.tomador, \"dataNascimento\", $$v)},expression:\"segurado.tomador.dataNascimento\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Remuneração\",\"label-for\":\"remuneracaoProventos\"}},[_c('b-form-input',{staticStyle:{\"text-transform\":\"uppercase\"},attrs:{\"readonly\":\"\",\"id\":\"remuneracaoProventos\",\"type\":\"text\",\"placeholder\":\"Remuneração\"},model:{value:(_vm.segurado.remuneracaoProventos),callback:function ($$v) {_vm.$set(_vm.segurado, \"remuneracaoProventos\", $$v)},expression:\"segurado.remuneracaoProventos\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Margem Utilizada\",\"label-for\":\"margemUtilizada\"}},[_c('b-form-input',{staticStyle:{\"text-transform\":\"uppercase\"},attrs:{\"readonly\":\"\",\"id\":\"margemUtilizada\",\"type\":\"text\",\"placeholder\":\"Margem Utilizada\"},model:{value:(_vm.segurado.margemUtilizada),callback:function ($$v) {_vm.$set(_vm.segurado, \"margemUtilizada\", $$v)},expression:\"segurado.margemUtilizada\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Margem Disponível\",\"label-for\":\"margemDisponivel\"}},[_c('b-form-input',{staticStyle:{\"text-transform\":\"uppercase\"},attrs:{\"readonly\":\"\",\"id\":\"margemDisponivel\",\"type\":\"text\",\"placeholder\":\"Margem Disponível\"},model:{value:(_vm.segurado.margemDisponivel),callback:function ($$v) {_vm.$set(_vm.segurado, \"margemDisponivel\", $$v)},expression:\"segurado.margemDisponivel\"}})],1)],1)],1)],1)],1):_vm._e(),_c('tab-content',{attrs:{\"title\":\"Tipo de Cálculo\",\"before-change\":_vm.validationTipoCalculo}},[(_vm.origemAplicativo)?_c('b-card-title',{staticClass:\"font-weight-bold mb-2 mt-2\",attrs:{\"title-tag\":\"h3\"}},[_vm._v(\" Tipo de Cálculo \")]):_vm._e(),_c('validation-observer',{ref:\"tipRules\",attrs:{\"tag\":\"form\",\"rules\":\"required\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":_vm.origemAplicativo ? 12 : 6}},[_c('b-form-group',{attrs:{\"label\":\"Tabela de Cálculo\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar ariaDescribedby = ref.ariaDescribedby;\nreturn [_c('validation-provider',{attrs:{\"name\":\"Tabela de Cálculo\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-select',{attrs:{\"options\":_vm.statusTipoCalculo,\"aria-describedby\":ariaDescribedby,\"placeholder\":\"Selecione:\"},on:{\"change\":_vm.buscarTipoDeCalculo},model:{value:(_vm.proposta.tipoCalculo),callback:function ($$v) {_vm.$set(_vm.proposta, \"tipoCalculo\", $$v)},expression:\"proposta.tipoCalculo\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})]}}])})],1),_c('b-col',{attrs:{\"md\":_vm.origemAplicativo ? 12 : 6}},[_c('b-form-group',{attrs:{\"label\":\"Forma de Cálculo\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar ariaDescribedby = ref.ariaDescribedby;\nreturn [_c('validation-provider',{attrs:{\"name\":\"Forma de Cálculo\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-radio-group',{attrs:{\"id\":\"radiosFormasDeCalculo\",\"options\":_vm.optionsFormaCalculo,\"aria-describedby\":ariaDescribedby,\"button-variant\":\"outline-primary\",\"name\":\"radio-btn-outline\",\"buttons\":\"\"},model:{value:(_vm.proposta.formaCalculo),callback:function ($$v) {_vm.$set(_vm.proposta, \"formaCalculo\", $$v)},expression:\"proposta.formaCalculo\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})]}}])})],1),_c('b-col',{attrs:{\"md\":_vm.origemAplicativo ? 12 : 6}},[_c('b-form-group',{attrs:{\"label\":\"Compra de Dívida?\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar ariaDescribedby = ref.ariaDescribedby;\nreturn [_c('validation-provider',{attrs:{\"name\":\"Compra de Dívida?\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-radio-group',{attrs:{\"id\":\"compraDeDivida\",\"options\":[\n { text: 'SIM', value: true },\n { text: 'NÃO', value: false } ],\"aria-describedby\":ariaDescribedby,\"button-variant\":\"outline-primary\",\"name\":\"radio-btn-outline\",\"buttons\":\"\"},model:{value:(_vm.proposta.compraDeDivida),callback:function ($$v) {_vm.$set(_vm.proposta, \"compraDeDivida\", $$v)},expression:\"proposta.compraDeDivida\"}}),_c('small',{staticClass:\"d-block text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})]}}])})],1)],1)],1)],1),_c('tab-content',{attrs:{\"title\":\"Dados da consignação\",\"before-change\":_vm.validationDadosConsignacao}},[(_vm.origemAplicativo)?_c('b-card-title',{staticClass:\"font-weight-bold mb-2 mt-2\",attrs:{\"title-tag\":\"h3\"}},[_vm._v(\" Dados da consignação \")]):_vm._e(),_c('validation-observer',{ref:\"dadosRules\",attrs:{\"tag\":\"form\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Valor do Empréstimo\",\"label-for\":\"valor\"}},[(_vm.calculandoParcela)?_c('b-skeleton',{attrs:{\"type\":\"input\"}}):_c('validation-provider',{attrs:{\"name\":\"Valor do Empréstimo\",\"rules\":{\n required: true,\n valor: Number(_vm.proposta.valorMaximoGeral).toFixed(2),\n valor_minimo: _vm.formatarParaNumber(_vm.parametroValorMinimoEmprestimo),\n zero: [],\n }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\nreturn [_c('b-input-group',[_c('b-input-group-prepend',[_c('span',{staticClass:\"input-group-text\"},[_vm._v(\"R$\")])]),_c('b-form-input',{directives:[{name:\"number\",rawName:\"v-number\",value:(_vm.number),expression:\"number\"}],attrs:{\"id\":\"valor\",\"placeholder\":\"Valor do Empréstimo\",\"readonly\":_vm.proposta.formaCalculo == 'valorDaParcela'},model:{value:(_vm.proposta.valor),callback:function ($$v) {_vm.$set(_vm.proposta, \"valor\", $$v)},expression:\"proposta.valor\"}})],1),(_vm.proposta.valorMaximoGeral != null || _vm.proposta.valorMaximoGeral != undefined)?_c('small',{staticClass:\"text-primary d-block\"},[_vm._v(\"Valor Máx (\"+_vm._s(_vm.formatarValor(_vm.proposta.valorMaximoGeral))+\")\")]):_vm._e(),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Parcelas\",\"label-for\":\"parcelas\"}},[_c('validation-provider',{attrs:{\"name\":\"Parcelas\",\"rules\":{\n required: true,\n parcela: _vm.proposta.parcelaMaxima,\n zero: [],\n }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\nreturn [_c('b-form-input',{directives:[{name:\"bloqueioCaractereMask\",rawName:\"v-bloqueioCaractereMask\",value:({ tamanho: 3, regex: /[^0-9]/ }),expression:\"{ tamanho: 3, regex: /[^0-9]/ }\"}],attrs:{\"id\":\"parcelas\",\"placeholder\":\"Parcelas\",\"maxlength\":\"3\"},on:{\"keypress\":function($event){return _vm.isNumber($event)}},model:{value:(_vm.proposta.parcelas),callback:function ($$v) {_vm.$set(_vm.proposta, \"parcelas\", $$v)},expression:\"proposta.parcelas\"}}),(_vm.proposta.parcelaMaxima)?_c('small',{staticClass:\"text-primary d-block\"},[_vm._v(\"Parcela(s) Máx (\"+_vm._s(_vm.proposta.parcelaMaxima)+\"x)\")]):_vm._e(),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":_vm.proposta.tipoCalculo == 'SAC'\n ? 'Valor da 1º Parcela'\n : _vm.proposta.tipoCalculo == 'posFixado'\n ? 'Valor Previsto'\n : 'Valor da Parcela',\"label-for\":\"valorPrimeiraParcela\"}},[(_vm.calculandoEmprestimo)?_c('b-skeleton',{attrs:{\"type\":\"input\"}}):_c('validation-provider',{attrs:{\"name\":\"Valor da Parcela\",\"rules\":{\n required: true,\n valor: _vm.proposta.valorMaximoPrimeiraParcela,\n valor_minimo: _vm.formatarParaNumber(_vm.parametroValorMinimoParcela),\n zero: [],\n }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\nreturn [_c('b-input-group',[_c('b-input-group-prepend',[_c('span',{staticClass:\"input-group-text\"},[_vm._v(\"R$\")])]),_c('b-form-input',{directives:[{name:\"number\",rawName:\"v-number\",value:(_vm.number),expression:\"number\"}],attrs:{\"id\":\"valorPrimeiraParcela\",\"placeholder\":_vm.proposta.tipoCalculo == 'SAC'\n ? 'Valor da 1º Parcela'\n : _vm.proposta.tipoCalculo == 'posFixado'\n ? 'Valor Previsto'\n : 'Valor da Parcela',\"readonly\":_vm.proposta.formaCalculo == 'valorDoEmprestimo'},model:{value:(_vm.proposta.valorPrimeiraParcela),callback:function ($$v) {_vm.$set(_vm.proposta, \"valorPrimeiraParcela\", $$v)},expression:\"proposta.valorPrimeiraParcela\"}})],1),(_vm.proposta.valorMaximoPrimeiraParcela != null || _vm.proposta.valorMaximoPrimeiraParcela != undefined)?_c('small',{staticClass:\"text-primary d-block\"},[_vm._v(\"Valor Máx (\"+_vm._s(_vm.formatarValor(_vm.proposta.valorMaximoPrimeiraParcela))+\")\")]):_vm._e(),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)],1),_c('b-row',[(_vm.proposta.compraDeDivida)?_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Valor da Dívida\",\"label-for\":\"valor\"}},[_c('validation-provider',{attrs:{\"name\":\"Valor da Dívida\",\"rules\":{\n required: true,\n zero: [],\n }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\nreturn [_c('b-input-group',[_c('b-input-group-prepend',[_c('span',{staticClass:\"input-group-text\"},[_vm._v(\"R$\")])]),_c('b-form-input',{directives:[{name:\"number\",rawName:\"v-number\",value:(_vm.number),expression:\"number\"}],attrs:{\"id\":\"valor\",\"placeholder\":\"Valor da Dívida\"},model:{value:(_vm.proposta.valorDaDivida),callback:function ($$v) {_vm.$set(_vm.proposta, \"valorDaDivida\", $$v)},expression:\"proposta.valorDaDivida\"}})],1),(_vm.proposta.valor != null || _vm.proposta.valorDaDivida != undefined)?_c('small',{staticClass:\"text-primary d-block\"},[_vm._v(\"Valor da Dívida (\"+_vm._s(_vm.formatarValor( _vm.formatarParseFloat(_vm.proposta.valor ? _vm.proposta.valor : '0') - _vm.formatarParseFloat(_vm.proposta.valorDaDivida ? _vm.proposta.valorDaDivida : '0') ))+\")\")]):_vm._e(),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,false,3473525343)})],1)],1):_vm._e(),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"1º Parcela\",\"label-for\":\"primeiraParcela\"}},[_c('b-form-input',{staticClass:\"form-control\",attrs:{\"id\":\"primeiraParcela\",\"type\":\"text\",\"placeholder\":\"DD/MM/AAAA\",\"options\":_vm.options.cleaveDate,\"raw\":false,\"readonly\":true},model:{value:(_vm.proposta.primeiraParcela),callback:function ($$v) {_vm.$set(_vm.proposta, \"primeiraParcela\", $$v)},expression:\"proposta.primeiraParcela\"}})],1)],1),(_vm.userData.Instituto.utilizaIOF)?_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Valor do IOF\",\"label-for\":\"valorIOF\"}},[(_vm.calculandoParcela || _vm.calculandoEmprestimo)?_c('b-skeleton',{attrs:{\"type\":\"input\"}}):_c('b-input-group',[_c('b-input-group-prepend',[_c('span',{staticClass:\"input-group-text\"},[_vm._v(\"R$\")])]),_c('b-form-input',{directives:[{name:\"number\",rawName:\"v-number\",value:(_vm.number),expression:\"number\"}],attrs:{\"id\":\"valorIOF\",\"placeholder\":\"Valor do IOF\",\"readonly\":true},model:{value:(_vm.proposta.valorIOF),callback:function ($$v) {_vm.$set(_vm.proposta, \"valorIOF\", $$v)},expression:\"proposta.valorIOF\"}})],1)],1)],1):_vm._e(),(_vm.proposta.compraDeDivida)?_c('b-col',{attrs:{\"md\":\"8\"}},[_c('b-form-group',{attrs:{\"label\":\"Banco\",\"label-for\":\"dadoBancarioBanco\"}},[_c('validation-provider',{attrs:{\"name\":\"Banco\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\nreturn [_c('v-select-pt',{attrs:{\"name\":\"dadoBancarioBanco\",\"options\":_vm.banco,\"reduce\":function (option) { return option.id; },\"label\":\"nome\"},model:{value:(_vm.proposta.bancoId),callback:function ($$v) {_vm.$set(_vm.proposta, \"bancoId\", $$v)},expression:\"proposta.bancoId\"}}),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}],null,false,3172994353)})],1)],1):_vm._e(),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-form-group',{attrs:{\"label\":\"Valor Emprestado\",\"label-for\":\"valorTotal\"}},[(_vm.calculandoParcela || _vm.calculandoEmprestimo)?_c('b-skeleton',{attrs:{\"type\":\"input\"}}):_c('b-input-group',[_c('b-input-group-prepend',[_c('span',{staticClass:\"input-group-text\"},[_vm._v(\"R$\")])]),_c('b-form-input',{directives:[{name:\"number\",rawName:\"v-number\",value:(_vm.number),expression:\"number\"}],attrs:{\"id\":\"valorTotal\",\"placeholder\":\"Valor Emprestado\",\"readonly\":true},model:{value:(_vm.proposta.valorTotal),callback:function ($$v) {_vm.$set(_vm.proposta, \"valorTotal\", $$v)},expression:\"proposta.valorTotal\"}})],1)],1)],1)],1)],1)],1),_c('tab-content',{attrs:{\"title\":\"Tabela de Parcelas\",\"before-change\":_vm.validationTabelaParcelas}},[(_vm.origemAplicativo)?_c('b-card-title',{staticClass:\"font-weight-bold mb-2 mt-2\",attrs:{\"title-tag\":\"h3\"}},[_vm._v(\" Tabela de Parcelas \")]):_vm._e(),_c('validation-observer',{ref:\"bankRules\",attrs:{\"tag\":\"form\"}},[_c('b-form',[_c('b-row',[_c('b-table',{staticClass:\"position-relative\",attrs:{\"striped\":\"\",\"responsive\":\"\",\"foot-clone\":\"\",\"per-page\":_vm.perPageParcelas,\"current-page\":_vm.currentPageParcelas,\"items\":_vm.itemsParcelas,\"fields\":_vm.fieldsParcelas,\"sort-by\":_vm.sortByParcelas,\"sort-desc\":_vm.sortDescParcelas,\"sort-direction\":_vm.sortDirectionParcelas,\"busy\":_vm.isBusy},on:{\"update:sortBy\":function($event){_vm.sortByParcelas=$event},\"update:sort-by\":function($event){_vm.sortByParcelas=$event},\"update:sortDesc\":function($event){_vm.sortDescParcelas=$event},\"update:sort-desc\":function($event){_vm.sortDescParcelas=$event}},scopedSlots:_vm._u([{key:\"cell(valor)\",fn:function(row){return [_vm._v(\" \"+_vm._s(_vm.proposta.tipoCalculo == 'posFixado' ? _vm.formatarValor(row.item.valor) + ' + ' + _vm.userData.Instituto.tipoIndiceSelecionado : _vm.formatarValor(row.item.valor))+\" \")]}},{key:\"cell(vencimento)\",fn:function(row){return [_vm._v(\" \"+_vm._s(_vm.formatarData(row.item.vencimento))+\" \")]}},{key:\"foot(parcela)\",fn:function(){return [_c('span',[_vm._v(\"Total: \")])]},proxy:true},{key:\"foot(valor)\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.valorTotalParcelas ? _vm.valorTotalParcelas : 0.0))])]},proxy:true},{key:\"foot(vencimento)\",fn:function(){return [_vm._v(\" \"+_vm._s('')+\" \")]},proxy:true}])}),_c('b-card-body',{staticClass:\"d-flex justify-content-center flex-wrap pt-0\"},[_c('b-pagination',{staticClass:\"mb-0\",attrs:{\"first-number\":\"\",\"last-number\":\"\",\"total-rows\":_vm.totalRowsParcelas,\"per-page\":_vm.perPageParcelas,\"prev-class\":\"prev-item\",\"next-class\":\"next-item\"},scopedSlots:_vm._u([{key:\"prev-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronLeftIcon\",\"size\":\"18\"}})]},proxy:true},{key:\"next-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronRightIcon\",\"size\":\"18\"}})]},proxy:true}]),model:{value:(_vm.currentPageParcelas),callback:function ($$v) {_vm.currentPageParcelas=$$v},expression:\"currentPageParcelas\"}})],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gerarPropostaExterna.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gerarPropostaExterna.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./gerarPropostaExterna.vue?vue&type=template&id=9e426868\"\nimport script from \"./gerarPropostaExterna.vue?vue&type=script&lang=js\"\nexport * from \"./gerarPropostaExterna.vue?vue&type=script&lang=js\"\nimport style0 from \"./gerarPropostaExterna.vue?vue&type=style&index=0&id=9e426868&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',[_c('h4',{staticClass:\"rounded bg-primary text-white\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"text-align\":\"center\",\"font-size\":\"20px\",\"font-weight\":\"bold\",\"margin-bottom\":\"25px\",\"padding\":\"10px 8px 8px 15px\"}},[_vm._v(\" Anexar documentos \")]),_c('validation-observer',{ref:\"dadosDocsRules\",attrs:{\"tag\":\"form\"}},[(!this.documentsListIsZero())?_c('span',{staticClass:\"d-block mt-1 mb-1\"},[_vm._v(\"São aceitos documentos: .jpg, .heic, .png ou .pdf\")]):_vm._e(),_c('b-row',[(!this.documentsListIsZero())?_c('b-col',{staticClass:\"mb-1\",attrs:{\"md\":\"9\"}},[_c('b-form-select',{attrs:{\"id\":\"tiposDocumentos\",\"value-field\":\"id\",\"text-field\":\"nome\",\"options\":_vm.tiposDocumentosFiltrados},model:{value:(_vm.dados.tipoDocumento),callback:function ($$v) {_vm.$set(_vm.dados, \"tipoDocumento\", $$v)},expression:\"dados.tipoDocumento\"}})],1):_vm._e(),(!this.documentsListIsZero())?_c('b-col',{staticClass:\"mb-1\",attrs:{\"md\":\"3\"}},[[_c('b-dropdown',{attrs:{\"variant\":\"link\",\"no-caret\":\"\",\"toggle-class\":\"p-0\",\"dropright\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"btn-icon\",attrs:{\"block\":\"\",\"variant\":\"primary\",\"title\":\"Este botão contém as opções disponíveis para este registro\"}},[_c('feather-icon',{staticClass:\"mr-1\",attrs:{\"icon\":\"UploadIcon\",\"title\":\"\"}}),_vm._v(\" \"+_vm._s(!_vm.loading ? ' Selecione' : '')+\" \"),(_vm.loading)?_c('b-spinner',{attrs:{\"small\":\"\"}}):_vm._e()],1)]},proxy:true}],null,false,2651605348)},[_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.tirarFotoDoc()}}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":'CameraIcon'}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Tirar foto\")])],1),_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.selecionarArquivo()}}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":'HardDriveIcon'}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Anexar arquivo\")])],1)],1)],_c('canvas',{ref:\"refCanvasEl\",staticStyle:{\"display\":\"none !important\"}}),_c('img',{ref:\"refPreviewEl\",staticClass:\"img-fluid rounded\",staticStyle:{\"max-height\":\"320px\",\"display\":\"none !important\"}}),_c('b-form-file',{ref:\"refInputEl\",staticStyle:{\"display\":\"none\"},attrs:{\"accept\":\".pdf, .heic, .jpeg, .jpg, .png\"},on:{\"change\":_vm.getFileDoc},model:{value:(_vm.refInputEl),callback:function ($$v) {_vm.refInputEl=$$v},expression:\"refInputEl\"}})],2):_vm._e()],1),_c('div',{staticStyle:{\"display\":\"auto\"},attrs:{\"id\":\"divListaDocsAnexados\"}},[_c('b-form',{ref:\"form\",staticClass:\"repeater-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.repeateAgain.apply(null, arguments)}}},_vm._l((_vm.docAnexados),function(item,index){return _c('b-row',{key:item.id,ref:\"row\",refInFor:true,attrs:{\"id\":item.id}},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Tipo do Documento\",\"label-for\":\"item-nome\"}},[_c('div',{staticClass:\"disabled\"},[_vm._v(_vm._s(item.nome))])])],1),_c('b-col',[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.300\",value:('rgba(40, 199, 111, 0.15)'),expression:\"'rgba(40, 199, 111, 0.15)'\",modifiers:{\"300\":true}}],staticClass:\"mt-0 mt-md-2 mr-1\",attrs:{\"variant\":\"outline-danger\"},on:{\"click\":function($event){return _vm.removeItem(index, item)}}},[_c('feather-icon',{staticClass:\"mr-25\",attrs:{\"icon\":\"XIcon\"}}),_c('span',[_vm._v(\"Excluir\")])],1),_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.300\",value:('rgba(440, 199, 111, 0.15)'),expression:\"'rgba(440, 199, 111, 0.15)'\",modifiers:{\"300\":true}}],staticClass:\"mt-0 mt-md-2 mr-1\",attrs:{\"variant\":\"outline-info\"},on:{\"click\":function($event){return _vm.showFotoPreview(item)}}},[_c('feather-icon',{staticClass:\"mr-25\",attrs:{\"icon\":\"EyeIcon\"}}),_c('span',[_vm._v(\"Visualizar\")])],1)],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('hr')])],1)}),1)],1)],1)],1),_c('b-modal',{ref:\"modal-foto\",staticStyle:{\"position\":\"Absolute\"},attrs:{\"id\":\"modal-foto\",\"centered\":\"\",\"size\":\"sm\",\"title\":\"Captura de Foto\",\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\",\"hide-footer\":\"\"},on:{\"hidden\":_vm.stopCameraStream,\"close\":_vm.stopCameraStream}},[_c('div',{staticClass:\"camera-canvas\"},[(_vm.isCameraOpen)?_c('video',{ref:\"camera\",attrs:{\"width\":_vm.canvasWidth,\"height\":_vm.canvasHeight,\"autoplay\":\"\"}}):_vm._e(),_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isCameraOpen),expression:\"!isCameraOpen\"}],ref:\"canvas\",attrs:{\"width\":_vm.canvasWidth,\"height\":_vm.canvasHeight}})]),[_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isCameraOpen),expression:\"isCameraOpen\"}],attrs:{\"size\":\"sm\",\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.capture()}}},[_vm._v(\" Tirar Foto \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isCameraOpen),expression:\"!isCameraOpen\"}],attrs:{\"size\":\"sm\",\"variant\":\"success\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.checkTwoConfirm()}}},[_vm._v(\" Confirmar Foto \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isCameraOpen),expression:\"!isCameraOpen\"}],attrs:{\"size\":\"sm\",\"variant\":\"danger\"},on:{\"click\":function($event){return _vm.toggleCamera()}}},[_vm._v(\" Limpar Foto \")])]],2),_c('b-modal',{ref:\"modal-previewFoto\",staticStyle:{\"position\":\"relative\"},attrs:{\"id\":\"modal-previewFoto\",\"centered\":\"\",\"size\":\"lg\",\"title\":_vm.titlePreviewModal,\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\",\"hide-footer\":\"\"},on:{\"close\":_vm.closeModalPreviewAnexoDoc}},[_c('div',{staticClass:\"camera-canvas\"},[_c('img',{staticStyle:{\"max-width\":\"100%\",\"max-height\":\"100%\"},attrs:{\"src\":_vm.imagemPreviewModal}})])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import useJwt from '@/auth/jwt/useJwt'\r\n\r\nexport const createAnexoRegistroReconhecimentoFacial = async (data: any) => {\r\n return useJwt.post(`reconhecimentoFacial/createAnexoRegistroReconhecimentoFacial`, {\r\n foto: data.foto,\r\n nome: data.nome,\r\n tipo: data.tipo,\r\n registroReconhecimentoFacialId: data.registroReconhecimentoFacialId,\r\n anexoReconhecimentoFacialId: data.anexoReconhecimentoFacialId,\r\n ocr: data.ocr,\r\n lixeira: data.lixeira || false,\r\n institutoId: data.institutoId,\r\n cpf: data.cpf,\r\n origemDocumento: data.origemDocumento,\r\n })\r\n}\r\n\r\nexport const deleteAnexoRegistroReconhecimentoFacial = async (id: number) => {\r\n return useJwt.delete(`reconhecimentoFacial/deleteAnexoRegistroReconhecimentoFacial`, id)\r\n}\r\n\r\nexport const getReconhecimentoFacial = async (institutoId: number, cpf: string, includeAnexo: boolean) => {\r\n return useJwt.get(\r\n `reconhecimentoFacial/getReconhecimentoFacial?institutoId=${institutoId}&cpf=${cpf}&includeAnexo=${includeAnexo}`,\r\n )\r\n}\r\n\r\nexport const createRegistroReconhecimentoFacial = async (dados: any) => {\r\n return useJwt.post(`reconhecimentoFacial/createRegistroReconhecimentoFacial`, dados)\r\n}\r\n\r\nexport const VerificaRostoDocumentoAnexadoAWS = async (base64: any) => {\r\n return useJwt.post(`reconhecimentoFacial/VerificaRostoDocumentoAnexadoAWS`, {\r\n base64: base64,\r\n })\r\n}\r\n\r\nexport const VerificaRostoImagem = async (dataUrl: any) => {\r\n return useJwt.post(`reconhecimentoFacial/VerificaRostoImagem`, dataUrl)\r\n}\r\n","export const fileToBase64 = (file: File): Promise => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n});\r\n","import heic2any from 'heic2any'\r\n\r\nexport async function convertHeicToJpeg(file) {\r\n let imagem = file\r\n let arquivo = file.name.toLowerCase()\r\n try {\r\n const imagemConvertidaBlobArray = await heic2any({\r\n blob: imagem,\r\n toType: 'image/jpeg',\r\n })\r\n // Certifique-se de que estamos trabalhando com um Blob único, mesmo que a biblioteca retorne um array\r\n const imagemConvertidaBlob =\r\n imagemConvertidaBlobArray instanceof Blob ? imagemConvertidaBlobArray : imagemConvertidaBlobArray[0]\r\n\r\n let resultado = new File([imagemConvertidaBlob], arquivo.replace('.heic', '.jpeg'), { type: 'image/jpeg' })\r\n return resultado\r\n } catch (error) {\r\n console.error(\"Erro ao converter imagem '.heic' para '.jpeg,' tente anexar uma imagem em outro formato.\")\r\n }\r\n}\r\n","import ImageCompressor from 'image-compressor'\r\n\r\nexport async function compactImagem(file) {\r\n const fileConverted = await handleFileChange(file)\r\n return fileConverted\r\n}\r\n\r\nasync function handleFileChange(file) {\r\n if (file) {\r\n try {\r\n const compressedFile = await compressFile(file)\r\n return URL.createObjectURL(compressedFile)\r\n } catch (error) {\r\n console.error('Error compressing file:', error)\r\n }\r\n }\r\n}\r\n\r\nasync function compressFile(file) {\r\n if (file.type.includes('image')) {\r\n return await compressImage(file)\r\n } else {\r\n // Handle other file types here (e.g., docx)\r\n console.warn('Unsupported file type:', file.type)\r\n return file\r\n }\r\n}\r\n\r\nasync function compressImage(file) {\r\n const options = {\r\n quality: 0.7, // Adjust quality as needed\r\n maxWidth: 800, // Adjust max width as needed\r\n maxHeight: 800, // Adjust max height as needed\r\n }\r\n\r\n const compressedFile = await ImageCompressor(file, options)\r\n return compressedFile\r\n}\r\n","import { PDFDocument, rgb } from 'pdf-lib'\r\nimport pako from 'pako'\r\n\r\nexport async function compactPDF(file) {\r\n const fileConverted = await handleFileChange(file)\r\n return fileConverted\r\n}\r\n\r\nasync function handleFileChange(file) {\r\n if (file) {\r\n try {\r\n const compressedFile = await compressFile(file)\r\n return URL.createObjectURL(compressedFile)\r\n } catch (error) {\r\n console.error('Error compressing file:', error)\r\n }\r\n }\r\n}\r\n\r\nasync function compressFile(file) {\r\n if (file.type === 'application/pdf') {\r\n return await compressPDF(file)\r\n } else {\r\n // Handle other file types here (e.g., docx)\r\n console.warn('Unsupported file type:', file.type)\r\n return file\r\n }\r\n}\r\n\r\nasync function compressPDF(file) {\r\n if (file) {\r\n const pdfData = await file.arrayBuffer()\r\n const pdfDoc = await PDFDocument.load(pdfData)\r\n\r\n // Perform PDF manipulation here using the pdf-lib library\r\n // For example, you can remove unnecessary elements or reduce image quality\r\n\r\n const compressedPdfData = await pdfDoc.save()\r\n const compressedPdfBlob = new Blob([compressedPdfData], { type: 'application/pdf' })\r\n\r\n if (compressedPdfBlob.size <= 5 * 1024 * 1024) {\r\n // PDF is already compressed and under 5MB\r\n console.error('PDF is compressed and under 5MB.')\r\n return\r\n }\r\n\r\n // Perform additional compression using the pako library\r\n const compressedData = pako.deflate(compressedPdfData)\r\n const compressedBlob = new Blob([compressedData], { type: 'application/pdf' })\r\n\r\n if (compressedBlob.size <= 5 * 1024 * 1024) {\r\n // Successfully compressed PDF under 5MB\r\n const compressedPdfUrl = URL.createObjectURL(compressedBlob)\r\n window.open(compressedPdfUrl)\r\n } else {\r\n console.error('Compression failed. PDF still over 5MB.')\r\n }\r\n }\r\n}\r\n","export const heightTransition = {\r\n /*\r\n\r\n HowTo:\r\n 1. Add dynamic style to element and set style as `trHeight`\r\n 2. Set transition speed using `transition: 0.35s height;` <= you can use appropriate value;\r\n 3. Optionally you can set `overflow: hidden;` to hide element overflow while height is animated.\r\n 4. Set initial height using `trSetHeight` before any operation. [mounted hook is recommended - You can use `ref` for dynamic contents]\r\n 5. Toggle height using height operations 🍻\r\n 6. Toggle usage of $nextTick for height operations is any issue occur [experimental] 🔬\r\n\r\n */\r\n\r\n data() {\r\n return {\r\n trHeight: null,\r\n }\r\n },\r\n methods: {\r\n trAddHeight(val) {\r\n // Add height to existing height\r\n // Usage: Where new element is append or more height is added (e.g. list append)\r\n\r\n /* Assumes:\r\n - Height is assigned and is `String`\r\n - Incoming value is valid number in `Number` or `String`\r\n */\r\n const heightValue = Number(this.trHeight.substring(0, this.trHeight.length - 2))\r\n this.trHeight = `${heightValue + Number(val)}px`\r\n },\r\n trTrimHeight(val) {\r\n // Remove height from existing height\r\n // Usage: Where new element is removed or height is remove (e.g. list pop/ele remove)\r\n\r\n /* Assumes:\r\n - Height is assigned and is `String`\r\n - Incoming value is valid number in `Number` or `String`\r\n */\r\n const heightValue = Number(this.trHeight.substring(0, this.trHeight.length - 2))\r\n this.trHeight = `${heightValue - Number(val)}px`\r\n },\r\n trSetHeight(val) {\r\n // Set height\r\n // Usage: Mostly for assigning initial value from mounted hook\r\n\r\n /* Assumes:\r\n - Height is not assigned and what to assign for add/remove operation\r\n - What to set height at something for odd usage\r\n - Incoming value is valid number in `Number` or `String`\r\n */\r\n if (val === null) this.trHeight = 'auto'\r\n else this.trHeight = `${Number(val)}px`\r\n },\r\n },\r\n}\r\n\r\n// Ignore below for now. We will remove it when we add more transition in future.\r\nexport const _ = null\r\n","export const getMediaError = (error: any) => {\r\n return error.name === 'NotFoundError'\r\n ? 'Os dispositivos de câmera e ou microfone não foram encontrados.'\r\n : error.name === 'NotAllowedError'\r\n ? 'Permissão para acessar a câmera e ou microfone foi negada.'\r\n : error.name === 'SecurityError'\r\n ? 'Erro de segurança ao acessar a câmera e o microfone.'\r\n : error.name === 'AbortError'\r\n ? 'A solicitação de acesso à câmera e ou microfone foi cancelada.'\r\n : error.name === 'NotReadableError'\r\n ? 'Dispositivos de mídia, câmera e ou microfone, estão indisponíveis ou não podem ser acessados.'\r\n : error.name === 'OverconstrainedError'\r\n ? 'As configurações de mídia especificadas pelo sistema não podem ser atendidas por este dispositivo.'\r\n : error.name === 'TypeError'\r\n ? 'Tipo inválido de configuração especificada para câmera e ou microfone.'\r\n : 'Erro desconhecido ao acessar a câmera e ou microfone.'\r\n}\r\n","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./documentosObrigatorios.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./documentosObrigatorios.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./documentosObrigatorios.vue?vue&type=template&id=1fd777b2&scoped=true\"\nimport script from \"./documentosObrigatorios.vue?vue&type=script&lang=js\"\nexport * from \"./documentosObrigatorios.vue?vue&type=script&lang=js\"\nimport style0 from \"./documentosObrigatorios.vue?vue&type=style&index=0&id=1fd777b2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1fd777b2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',[_c('h4',{staticClass:\"rounded bg-primary text-white\",staticStyle:{\"text-align\":\"center\",\"font-size\":\"20px\",\"font-weight\":\"bold\",\"margin-bottom\":\"25px\",\"padding\":\"10px 8px 8px 15px\"}},[_vm._v(\" Selfie - Foto de rosto \")]),_c('validation-observer',{ref:\"fotoRules\",attrs:{\"tag\":\"form\"}},[_c('h4',{staticClass:\"text-center\"},[_vm._v(\"Tire uma foto sua\")]),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('div',{staticClass:\"profile-img\",staticStyle:{\"text-align\":\"center\",\"right\":\"20px\",\"top\":\"10px\"}},[(!_vm.hasSelfie)?_c('span',{staticClass:\"b-avatar badge-secondary rounded\",staticStyle:{\"width\":\"360px\",\"height\":\"320px\"}},[_c('feather-icon',{attrs:{\"icon\":\"UserIcon\",\"fill\":\"currentColor\",\"size\":\"80\"}})],1):_vm._e(),(_vm.hasSelfie)?_c('img',{staticClass:\"img-fluid rounded\",staticStyle:{\"max-height\":\"320px\"},attrs:{\"src\":_vm.selfie.s3url || _vm.selfie.foto}}):_vm._e(),_c('div',{staticStyle:{\"text-align\":\"center\"}},[(!_vm.hasSelfie && this.showRemoveSelfieButton)?_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(40, 199, 111, 0.15)'),expression:\"'rgba(40, 199, 111, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"btn-icon rounded-circle\",attrs:{\"variant\":\"flat-success\",\"title\":\"Tirar foto\"},on:{\"click\":function($event){return _vm.capturarFoto()}}},[_c('feather-icon',{attrs:{\"icon\":\"CameraIcon\"}}),_vm._v(\" Tirar Foto \")],1):_vm._e(),(_vm.hasSelfie && this.showRemoveSelfieButton)?_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(40, 199, 111, 0.15)'),expression:\"'rgba(40, 199, 111, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"btn-icon rounded-circle\",attrs:{\"variant\":\"flat-danger\"},on:{\"click\":function($event){return _vm.limparFoto()}}},[_c('feather-icon',{attrs:{\"icon\":\"XSquareIcon\"}}),_vm._v(\" Limpar Foto \")],1):_vm._e(),_c('b-form-file',{ref:\"fileIndividual\",staticStyle:{\"display\":\"none\"},attrs:{\"accept\":\".pdf,.jpg,.heic,.png\"},on:{\"change\":_vm.checkTwoConfirm},model:{value:(_vm.fileIndividual),callback:function ($$v) {_vm.fileIndividual=$$v},expression:\"fileIndividual\"}})],1)])])],1)],1)],1),_c('b-modal',{ref:\"modal-foto\",staticStyle:{\"position\":\"Absolute\"},attrs:{\"id\":\"modal-foto\",\"centered\":\"\",\"size\":\"sm\",\"title\":\"Captura de Foto\",\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\",\"hide-footer\":\"\"},on:{\"hidden\":_vm.stopCameraStream,\"close\":_vm.stopCameraStream}},[_c('div',{staticClass:\"camera-canvas\"},[(_vm.isCameraOpen)?_c('video',{ref:\"camera\",attrs:{\"width\":_vm.canvasWidth,\"height\":_vm.canvasHeight,\"autoplay\":\"\"}}):_vm._e(),_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isCameraOpen),expression:\"!isCameraOpen\"}],ref:\"canvas\",attrs:{\"width\":_vm.canvasWidth,\"height\":_vm.canvasHeight}})]),[_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isCameraOpen),expression:\"isCameraOpen\"}],attrs:{\"size\":\"sm\",\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.capture()}}},[_vm._v(\" Tirar Foto \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isCameraOpen),expression:\"!isCameraOpen\"}],attrs:{\"size\":\"sm\",\"variant\":\"success\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.checkTwoConfirm()}}},[_vm._v(\" Confirmar Foto \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isCameraOpen),expression:\"!isCameraOpen\"}],attrs:{\"size\":\"sm\",\"variant\":\"danger\"},on:{\"click\":function($event){return _vm.toggleCamera()}}},[_vm._v(\" Limpar Foto \")])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./selfie.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./selfie.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./selfie.vue?vue&type=template&id=3a990dbc&scoped=true\"\nimport script from \"./selfie.vue?vue&type=script&lang=js\"\nexport * from \"./selfie.vue?vue&type=script&lang=js\"\nimport style0 from \"./selfie.vue?vue&type=style&index=0&id=3a990dbc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a990dbc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card-title',{staticClass:\"font-weight-bold text-center mb-1\",attrs:{\"title-tag\":\"h2\"}},[_vm._v(\" Lista de Parcelas \")]),(!_vm.listaDePropostas.length)?_c('b-card-text',[_c('b-row',[_vm._v(\" Nenhuma proposta encontrada \")])],1):_vm._e(),_c('b-table',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.listaDePropostas.length > 0),expression:\"listaDePropostas.length > 0\"}],ref:\"tablePropostas\",staticClass:\"position-relative\",attrs:{\"small\":\"\",\"striped\":\"\",\"responsive\":\"\",\"id\":\"tablePropostas\",\"per-page\":_vm.perPage,\"current-page\":_vm.currentPage,\"items\":this.listaDePropostas,\"fields\":this.fields,\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc,\"sort-direction\":_vm.sortDirection,\"busy\":_vm.isBusy},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event}},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle mr-1\"}),_c('strong',[_vm._v(\"Carregando Proposta(s)...\")])],1)]},proxy:true},{key:\"cell(visualizar)\",fn:function(row){return [_c('b-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"disabled\":row.item.statusFinanceiro == 'Cancelado'},on:{\"click\":function($event){return _vm.VisualizarContrato(row.item.id)}}},[_c('feather-icon',{attrs:{\"icon\":'EyeIcon'}})],1)]}},{key:\"cell(valorComIOF)\",fn:function(row){return [(row.item.valorComIOF)?_c('p',[_vm._v(_vm._s(_vm.formatarValor(row.item.valorComIOF)))]):(!row.item.valorComIOF && row.item.valorIOF)?_c('p',[_vm._v(\" \"+_vm._s(_vm.formatarValor(Number(row.item.valorBaseCalculo) + Number(row.item.valorIOF)))+\" \")]):_c('p',[_vm._v(_vm._s(_vm.formatarValor(row.item.valorBaseCalculo)))])]}},{key:\"cell(opcoes)\",fn:function(row){return [_c('b-dropdown',{attrs:{\"variant\":\"link\",\"no-caret\":\"\",\"toggle-class\":\"p-0\",\"left\":\"\",\"popper-opts\":{ positionFixed: true }},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"btn-icon\",attrs:{\"variant\":\"primary\",\"title\":\"Este botão contém as opções disponíveis para este registro\"}},[_c('feather-icon',{attrs:{\"icon\":\"SettingsIcon\"}})],1)]},proxy:true}],null,true)},[_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.visualizarProposta(row.item)}}},[_c('feather-icon',{attrs:{\"icon\":\"EyeIcon\",\"size\":\"16\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Visualizar Proposta\")])],1)],1)]}},{key:\"cell(statusFinanceiro)\",fn:function(row){return [_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":_vm.status[0][row.item.statusFinanceiro]}},[_vm._v(\" \"+_vm._s(_vm.formatarStatus(row.item.statusFinanceiro))+\" \")])]}}])}),(this.listaDePropostas.length > 0)?_c('b-card-body',{staticClass:\"d-flex justify-content-between flex-wrap pt-0\"},[_c('b-form-group',{staticClass:\"text-nowrap mb-md-0 mr-1\",staticStyle:{\"align-items\":\"center\"},attrs:{\"label\":\"Por Página\",\"label-cols\":\"6\",\"label-align\":\"left\",\"label-size\":\"sm\",\"label-for\":\"sortBySelect\"}},[_c('b-form-select',{attrs:{\"id\":\"perPageSelect\",\"size\":\"sm\",\"inline\":\"\",\"options\":_vm.pageOptions},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1),_c('b-pagination',{staticClass:\"mb-0\",attrs:{\"total-rows\":this.listaDePropostas.length,\"per-page\":_vm.perPage,\"first-number\":\"\",\"last-number\":\"\",\"prev-class\":\"prev-item\",\"next-class\":\"next-item\"},scopedSlots:_vm._u([{key:\"prev-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronLeftIcon\",\"size\":\"18\"}})]},proxy:true},{key:\"next-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronRightIcon\",\"size\":\"18\"}})]},proxy:true}],null,false,1308952388),model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1):_vm._e(),_c('b-modal',{ref:\"modal-visualizar-contrato\",attrs:{\"id\":\"modal-visualizar-contrato\",\"centered\":\"\",\"title\":\"Visualizar Contrato\",\"hide-footer\":\"\"}},[_c('b-table',{attrs:{\"items\":_vm.parcelasPropostas,\"fields\":_vm.fieldsParcelasContrato,\"busy\":_vm.isBusy,\"small\":\"\",\"striped\":\"\",\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"cell(pagamento)\",fn:function(row){return [(row.item.pagamento)?_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":\"info\"}},[_vm._v(\" Pago \")]):_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":\"warning\"}},[_vm._v(\" A Vencer \")])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListaDePropostas.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListaDePropostas.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ListaDePropostas.vue?vue&type=template&id=530485c9\"\nimport script from \"./ListaDePropostas.vue?vue&type=script&lang=js\"\nexport * from \"./ListaDePropostas.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',[_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('h4',{staticClass:\"rounded bg-primary text-white\",staticStyle:{\"text-align\":\"center\",\"font-size\":\"20px\",\"font-weight\":\"bold\",\"margin-bottom\":\"25px\",\"padding\":\"10px 8px 8px 15px\"}},[_vm._v(\" Detecção de Movimento \")])])],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[(!_vm.showImage && !_vm.videoPrint && !_vm.finalizaEvent)?_c('div',{staticClass:\"profile-img\",staticStyle:{\"text-align\":\"center\",\"right\":\"20px\",\"top\":\"10px\"}},[_c('span',{staticClass:\"b-avatar badge-secondary rounded\",staticStyle:{\"width\":\"360px\",\"height\":\"320px\"}},[_c('feather-icon',{attrs:{\"icon\":\"UserIcon\",\"fill\":\"currentColor\",\"size\":\"80\"}})],1)]):_vm._e(),(_vm.videoPrint && _vm.finalizaEvent)?_c('img',{staticClass:\"img-fluid rounded\",staticStyle:{\"max-height\":\"320px\"},attrs:{\"src\":_vm.videoPrint}}):_vm._e(),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.videoLoaded && _vm.messageStart),expression:\"!videoLoaded && messageStart\"}]})]),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showImage && _vm.videoLoaded),expression:\"showImage && videoLoaded\"}],staticClass:\"rounded-gray-box mb-2\"},[_vm._v(\" Enquadre seu rosto para iniciar a detecção de movimento \")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showImage),expression:\"showImage\"}],staticClass:\"video-container\",staticStyle:{\"text-align\":\"center\",\"max-width\":\"100%\",\"overflow\":\"hidden\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"align-items\":\"center\",\"position\":\"relative\"}},[_c('transition',{attrs:{\"name\":\"fade\"}},[_c('LottieAnimation',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showOlheCima),expression:\"showOlheCima\"}],ref:\"anim\",staticClass:\"video-overlay-top\",attrs:{\"animation-data\":_vm.animationJSON,\"auto-play\":true,\"loop\":true,\"speed\":1}})],1),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('LottieAnimation',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showOlheBaixo && !_vm.showOlheCima),expression:\"showOlheBaixo && !showOlheCima\"}],ref:\"anim\",staticClass:\"video-overlay-down\",attrs:{\"animation-data\":_vm.animationJSON,\"auto-play\":true,\"loop\":true,\"speed\":1}})],1),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('LottieAnimation',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showOlheDireita && !_vm.showOlheBaixo),expression:\"showOlheDireita && !showOlheBaixo\"}],ref:\"anim\",staticClass:\"video-overlay-right\",attrs:{\"animation-data\":_vm.animationJSON,\"auto-play\":true,\"loop\":true,\"speed\":1}})],1),_c('transition',{attrs:{\"name\":\"fade\"}},[_c('LottieAnimation',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showOlheEsquerda && !_vm.showOlheDireita),expression:\"showOlheEsquerda && !showOlheDireita\"}],ref:\"anim\",staticClass:\"video-overlay-left\",attrs:{\"animation-data\":_vm.animationJSON,\"auto-play\":true,\"loop\":true,\"speed\":1}})],1),(!_vm.finalizaEvent)?_c('video',{ref:\"webcam\",attrs:{\"id\":\"webcam\",\"autoplay\":\"\",\"playsinline\":\"\"},on:{\"loadedmetadata\":_vm.handleVideoLoaded}}):_vm._e()],1),_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],ref:\"output_canvas\",staticClass:\"output_canvas\",staticStyle:{\"position\":\"absolute\",\"left\":\"0\",\"top\":\"0\"},attrs:{\"id\":\"output_canvas\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"blend-shapes\"},[_c('ul',{ref:\"video-blend-shapes\",staticClass:\"blend-shapes-list\",attrs:{\"id\":\"video-blend-shapes\"}})])]),_c('div',{staticStyle:{\"text-align\":\"center\",\"margin-top\":\"20px\"}},[(!_vm.webcamRunning && !_vm.finalizaEvent)?_c('b-button',{ref:\"webcamButton\",staticClass:\"mdc-button mdc-button--raised btn-success\",attrs:{\"id\":\"webcamButton\"},on:{\"click\":_vm.enableCam}},[_c('span',{staticClass:\"mdc-button__ripple\"}),_c('span',{staticClass:\"mdc-button__label\"},[_vm._v(\"Iniciar detecção\")])]):_vm._e()],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Sistema de Recadastramento Agenda Assessoria - RecadOnlineBack - DESENVOLVIMENTO\r\n * Facilitar o Recadastramento dos Servidores Efetivos.\r\n *\r\n * The version of the OpenAPI document: 1.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport { Configuration } from \"./configuration\";\r\n// Some imports not used depending on template conditions\r\n// @ts-ignore\r\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\r\n\r\nexport const BASE_PATH = \"http://localhost\".replace(/\\/+$/, \"\");\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const COLLECTION_FORMATS = {\r\n csv: \",\",\r\n ssv: \" \",\r\n tsv: \"\\t\",\r\n pipes: \"|\",\r\n};\r\n\r\n/**\r\n *\r\n * @export\r\n * @interface RequestArgs\r\n */\r\nexport interface RequestArgs {\r\n url: string;\r\n options: AxiosRequestConfig;\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n * @class BaseAPI\r\n */\r\nexport class BaseAPI {\r\n protected configuration: Configuration | undefined;\r\n\r\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\r\n if (configuration) {\r\n this.configuration = configuration;\r\n this.basePath = configuration.basePath || this.basePath;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n *\r\n * @export\r\n * @class RequiredError\r\n * @extends {Error}\r\n */\r\nexport class RequiredError extends Error {\r\n name: \"RequiredError\" = \"RequiredError\";\r\n constructor(public field: string, msg?: string) {\r\n super(msg);\r\n }\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Sistema de Recadastramento Agenda Assessoria - RecadOnlineBack - DESENVOLVIMENTO\r\n * Facilitar o Recadastramento dos Servidores Efetivos.\r\n *\r\n * The version of the OpenAPI document: 1.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport { Configuration } from \"./configuration\";\r\nimport { RequiredError, RequestArgs } from \"./base\";\r\nimport { AxiosInstance, AxiosResponse } from 'axios';\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const DUMMY_BASE_URL = 'https://example.com'\r\n\r\n/**\r\n *\r\n * @throws {RequiredError}\r\n * @export\r\n */\r\nexport const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {\r\n if (paramValue === null || paramValue === undefined) {\r\n throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {\r\n if (configuration && configuration.apiKey) {\r\n const localVarApiKeyValue = typeof configuration.apiKey === 'function'\r\n ? await configuration.apiKey(keyParamName)\r\n : await configuration.apiKey;\r\n object[keyParamName] = localVarApiKeyValue;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setBasicAuthToObject = function (object: any, configuration?: Configuration) {\r\n if (configuration && (configuration.username || configuration.password)) {\r\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {\r\n if (configuration && configuration.accessToken) {\r\n const accessToken = typeof configuration.accessToken === 'function'\r\n ? await configuration.accessToken()\r\n : await configuration.accessToken;\r\n object[\"Authorization\"] = \"Bearer \" + accessToken;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {\r\n if (configuration && configuration.accessToken) {\r\n const localVarAccessTokenValue = typeof configuration.accessToken === 'function'\r\n ? await configuration.accessToken(name, scopes)\r\n : await configuration.accessToken;\r\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const setSearchParams = function (url: URL, ...objects: any[]) {\r\n const searchParams = new URLSearchParams(url.search);\r\n for (const object of objects) {\r\n for (const key in object) {\r\n if (Array.isArray(object[key])) {\r\n searchParams.delete(key);\r\n for (const item of object[key]) {\r\n searchParams.append(key, item);\r\n }\r\n } else {\r\n searchParams.set(key, object[key]);\r\n }\r\n }\r\n }\r\n url.search = searchParams.toString();\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {\r\n const nonString = typeof value !== 'string';\r\n const needsSerialization = nonString && configuration && configuration.isJsonMime\r\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\r\n : nonString;\r\n return needsSerialization\r\n ? JSON.stringify(value !== undefined ? value : {})\r\n : (value || \"\");\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const toPathString = function (url: URL) {\r\n return url.pathname + url.search + url.hash\r\n}\r\n\r\n/**\r\n *\r\n * @export\r\n */\r\nexport const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {\r\n return >(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\r\n const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url};\r\n return axios.request(axiosRequestArgs);\r\n };\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Sistema de Recadastramento Agenda Assessoria - RecadOnlineBack - DESENVOLVIMENTO\r\n * Facilitar o Recadastramento dos Servidores Efetivos.\r\n *\r\n * The version of the OpenAPI document: 1.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\r\nimport { Configuration } from '../configuration';\r\n// Some imports not used depending on template conditions\r\n// @ts-ignore\r\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';\r\n// @ts-ignore\r\nimport { AwsCompareFaces } from '../models';\r\n// @ts-ignore\r\nimport { AwsCompareFacesResponse } from '../models';\r\n/**\r\n * AwsApi - axios parameter creator\r\n * @export\r\n */\r\nexport const AwsApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {AwsCompareFaces} awsCompareFaces \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n compareFaces: async (awsCompareFaces: AwsCompareFaces, options: AxiosRequestConfig = {}): Promise => {\r\n // verify required parameter 'awsCompareFaces' is not null or undefined\r\n assertParamExists('compareFaces', 'awsCompareFaces', awsCompareFaces)\r\n const localVarPath = `/aws/faces/compare`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(awsCompareFaces, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * AwsApi - functional programming interface\r\n * @export\r\n */\r\nexport const AwsApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = AwsApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {AwsCompareFaces} awsCompareFaces \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async compareFaces(awsCompareFaces: AwsCompareFaces, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.compareFaces(awsCompareFaces, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * AwsApi - factory interface\r\n * @export\r\n */\r\nexport const AwsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = AwsApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {AwsCompareFaces} awsCompareFaces \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n compareFaces(awsCompareFaces: AwsCompareFaces, options?: any): AxiosPromise {\r\n return localVarFp.compareFaces(awsCompareFaces, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * AwsApi - object-oriented interface\r\n * @export\r\n * @class AwsApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class AwsApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {AwsCompareFaces} awsCompareFaces \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof AwsApi\r\n */\r\n public compareFaces(awsCompareFaces: AwsCompareFaces, options?: AxiosRequestConfig) {\r\n return AwsApiFp(this.configuration).compareFaces(awsCompareFaces, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Sistema de Recadastramento Agenda Assessoria - RecadOnlineBack - DESENVOLVIMENTO\r\n * Facilitar o Recadastramento dos Servidores Efetivos.\r\n *\r\n * The version of the OpenAPI document: 1.0\r\n * \r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nexport interface ConfigurationParameters {\r\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\r\n username?: string;\r\n password?: string;\r\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\r\n basePath?: string;\r\n baseOptions?: any;\r\n formDataCtor?: new () => any;\r\n}\r\n\r\nexport class Configuration {\r\n /**\r\n * parameter for apiKey security\r\n * @param name security name\r\n * @memberof Configuration\r\n */\r\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\r\n /**\r\n * parameter for basic security\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n username?: string;\r\n /**\r\n * parameter for basic security\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n password?: string;\r\n /**\r\n * parameter for oauth2 security\r\n * @param name security name\r\n * @param scopes oauth2 scope\r\n * @memberof Configuration\r\n */\r\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\r\n /**\r\n * override base path\r\n *\r\n * @type {string}\r\n * @memberof Configuration\r\n */\r\n basePath?: string;\r\n /**\r\n * base options for axios calls\r\n *\r\n * @type {any}\r\n * @memberof Configuration\r\n */\r\n baseOptions?: any;\r\n /**\r\n * The FormData constructor that will be used to create multipart form data\r\n * requests. You can inject this here so that execution environments that\r\n * do not support the FormData class can still run the generated client.\r\n *\r\n * @type {new () => FormData}\r\n */\r\n formDataCtor?: new () => any;\r\n\r\n constructor(param: ConfigurationParameters = {}) {\r\n this.apiKey = param.apiKey;\r\n this.username = param.username;\r\n this.password = param.password;\r\n this.accessToken = param.accessToken;\r\n this.basePath = param.basePath;\r\n this.baseOptions = param.baseOptions;\r\n this.formDataCtor = param.formDataCtor;\r\n }\r\n\r\n /**\r\n * Check if the given MIME is a JSON MIME.\r\n * JSON MIME examples:\r\n * application/json\r\n * application/json; charset=UTF8\r\n * APPLICATION/JSON\r\n * application/vnd.company+json\r\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\r\n * @return True if the given MIME is JSON, false otherwise.\r\n */\r\n public isJsonMime(mime: string): boolean {\r\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\r\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\r\n }\r\n}\r\n","import useJwt from '@/auth/jwt/useJwt'\r\nimport { AxiosInstance } from 'axios'\r\nimport { Configuration} from '.'\r\n\r\nconst config = new Configuration({\r\n accessToken: useJwt.getToken(),\r\n })\r\n\r\nexport function fetcherFactory any>(func: T, ...args: Parameters): ReturnType {\r\n return func(config, \"\", useJwt.axiosIns);\r\n}","import {\r\n AwsApiFactory,\r\n AwsCompareFaces,\r\n AwsCompareFacesFace,\r\n AwsCompareFacesResponse,\r\n} from '@/config/api';\r\nimport { fetcherFactory } from '@/config/api/fetcher';\r\nimport { pipe } from 'fp-ts/lib/function';\r\nimport * as TaskEither from 'fp-ts/TaskEither';\r\nimport * as Either from 'fp-ts/Either';\r\nimport * as Array from 'fp-ts/Array';\r\nimport { AxiosPromise } from 'axios';\r\nimport { fromPredicate } from 'fp-ts/Either';\r\nimport { Validations, FaceValidatorQuota } from './CompareFaces.types';\r\n\r\nexport const compare = (\r\n faces: AwsCompareFaces,\r\n awsFactory = fetcherFactory(AwsApiFactory)\r\n): AxiosPromise => {\r\n return awsFactory.compareFaces(faces);\r\n};\r\n\r\nexport const validate = (\r\n response: AwsCompareFacesResponse,\r\n { faceNotFound, tooManyFaces, notTheSameFace }: Validations\r\n): Either.Either => {\r\n const eitherFaces = pipe(\r\n response,\r\n tooManyFaces,\r\n Either.map(faces => faces.faces),\r\n Either.chain(faceNotFound),\r\n Either.chain(notTheSameFace)\r\n );\r\n\r\n return eitherFaces;\r\n};\r\n\r\nexport const validations = {\r\n faceNotFound: fromPredicate, string>(\r\n x => !(x.length == 0),\r\n () => 'Nenhuma face correspondente encontrada.'\r\n ),\r\n tooManyFaces: fromPredicate(\r\n x => !(x.unmatchedFaces?.length ?? 0 > 0),\r\n () => 'Faces incongruentes encontradas.'\r\n ),\r\n notTheSameFace: ({ quota }: FaceValidatorQuota) =>\r\n fromPredicate, string>(\r\n faces =>\r\n faces.every(face => face.similarity > quota && face.confidence > quota),\r\n () => 'A face do documento não corresponde com a face da foto.'\r\n ),\r\n};\r\n\r\nexport const faces = {\r\n validate,\r\n compare,\r\n validations,\r\n};\r\n","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modalDetectaRosto.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modalDetectaRosto.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./modalDetectaRosto.vue?vue&type=template&id=3085bf1d\"\nimport script from \"./modalDetectaRosto.vue?vue&type=script&lang=js\"\nexport * from \"./modalDetectaRosto.vue?vue&type=script&lang=js\"\nimport style0 from \"./modalDetectaRosto.vue?vue&type=style&index=0&id=3085bf1d&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./propostaExterna.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./propostaExterna.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./propostaExterna.vue?vue&type=template&id=4fb62911\"\nimport script from \"./propostaExterna.vue?vue&type=script&lang=js\"\nexport * from \"./propostaExterna.vue?vue&type=script&lang=js\"\nimport style0 from \"./propostaExterna.vue?vue&type=style&index=0&id=4fb62911&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n","import { factory } from '../../utils/factory.js';\nvar name = 'count';\nvar dependencies = ['typed', 'size', 'prod'];\nexport var createCount = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n size,\n prod\n } = _ref;\n /**\n * Count the number of elements of a matrix, array or string.\n *\n * Syntax:\n *\n * math.count(x)\n *\n * Examples:\n *\n * math.count('hello world') // returns 11\n * const A = [[1, 2, 3], [4, 5, 6]]\n * math.count(A) // returns 6\n * math.count(math.range(1,6)) // returns 5\n *\n * See also:\n *\n * size\n *\n * @param {string | Array | Matrix} x A matrix or string\n * @return {number} An integer with the elements in `x`.\n */\n return typed(name, {\n string: function string(x) {\n return x.length;\n },\n 'Matrix | Array': function MatrixArray(x) {\n return prod(size(x));\n }\n });\n});","import { pipe } from './function';\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var fromEquals = function (equals) { return ({\n equals: function (x, y) { return x === y || equals(x, y); }\n}); };\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nexport var struct = function (eqs) {\n return fromEquals(function (first, second) {\n for (var key in eqs) {\n if (!eqs[key].equals(first[key], second[key])) {\n return false;\n }\n }\n return true;\n });\n};\n/**\n * Given a tuple of `Eq`s returns a `Eq` for the tuple\n *\n * @example\n * import { tuple } from 'fp-ts/Eq'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import * as B from 'fp-ts/boolean'\n *\n * const E = tuple(S.Eq, N.Eq, B.Eq)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true)\n * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false)\n *\n * @since 2.10.0\n */\nexport var tuple = function () {\n var eqs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n eqs[_i] = arguments[_i];\n }\n return fromEquals(function (first, second) { return eqs.every(function (E, i) { return E.equals(first[i], second[i]); }); });\n};\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return pipe(fa, contramap(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for equality (meaning we have an `Eq`)\n *\n * For example, given the following `User` type, we want to construct an `Eq` that just looks at the `key` field\n * for each user (since it's known to be unique).\n *\n * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq`) and we know how to go from `User -> UUID`,\n * using `contramap` we can do this\n *\n * @example\n * import { contramap, Eq } from 'fp-ts/Eq'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/string'\n *\n * type UUID = string\n *\n * interface User {\n * readonly key: UUID\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const eqUUID: Eq = S.Eq\n *\n * const eqUserByKey: Eq = pipe(\n * eqUUID,\n * contramap((user) => user.key)\n * )\n *\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k2', firstName: 'a1', lastName: 'b1' }\n * ),\n * false\n * )\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k1', firstName: 'a2', lastName: 'b1' }\n * ),\n * true\n * )\n *\n * @since 2.0.0\n */\nexport var contramap = function (f) { return function (fa) {\n return fromEquals(function (x, y) { return fa.equals(f(x), f(y)); });\n}; };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Eq';\n/**\n * @category instances\n * @since 2.5.0\n */\nexport var eqStrict = {\n equals: function (a, b) { return a === b; }\n};\nvar empty = {\n equals: function () { return true; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getSemigroup = function () { return ({\n concat: function (x, y) { return fromEquals(function (a, b) { return x.equals(a, b) && y.equals(a, b); }); }\n}); };\n/**\n * @category instances\n * @since 2.6.0\n */\nexport var getMonoid = function () { return ({\n concat: getSemigroup().concat,\n empty: empty\n}); };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Contravariant = {\n URI: URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getTupleEq = tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getStructEq = struct;\n/**\n * Use [`eqStrict`](#eqstrict) instead\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var strictEqual = eqStrict.equals;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq`\n * (where `E` is from `import E from 'fp-ts/Eq'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var eq = Contravariant;\n/**\n * Use [`Eq`](./boolean.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var eqBoolean = eqStrict;\n/**\n * Use [`Eq`](./string.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var eqString = eqStrict;\n/**\n * Use [`Eq`](./number.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var eqNumber = eqStrict;\n/**\n * Use [`Eq`](./Date.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var eqDate = {\n equals: function (first, second) { return first.valueOf() === second.valueOf(); }\n};\n","import { flatten, generalize, identify } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'setIntersect';\nvar dependencies = ['typed', 'size', 'subset', 'compareNatural', 'Index', 'DenseMatrix'];\nexport var createSetIntersect = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n size,\n subset,\n compareNatural,\n Index,\n DenseMatrix\n } = _ref;\n /**\n * Create the intersection of two (multi)sets.\n * Multi-dimension arrays will be converted to single-dimension arrays before the operation.\n *\n * Syntax:\n *\n * math.setIntersect(set1, set2)\n *\n * Examples:\n *\n * math.setIntersect([1, 2, 3, 4], [3, 4, 5, 6]) // returns [3, 4]\n * math.setIntersect([[1, 2], [3, 4]], [[3, 4], [5, 6]]) // returns [3, 4]\n *\n * See also:\n *\n * setUnion, setDifference\n *\n * @param {Array | Matrix} a1 A (multi)set\n * @param {Array | Matrix} a2 A (multi)set\n * @return {Array | Matrix} The intersection of two (multi)sets\n */\n return typed(name, {\n 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {\n var result;\n if (subset(size(a1), new Index(0)) === 0 || subset(size(a2), new Index(0)) === 0) {\n // of any of them is empty, return empty\n result = [];\n } else {\n var b1 = identify(flatten(Array.isArray(a1) ? a1 : a1.toArray()).sort(compareNatural));\n var b2 = identify(flatten(Array.isArray(a2) ? a2 : a2.toArray()).sort(compareNatural));\n result = [];\n for (var i = 0; i < b1.length; i++) {\n for (var j = 0; j < b2.length; j++) {\n if (compareNatural(b1[i].value, b2[j].value) === 0 && b1[i].identifier === b2[j].identifier) {\n // the identifier is always a decimal int\n result.push(b1[i]);\n break;\n }\n }\n }\n }\n // return an array, if both inputs were arrays\n if (Array.isArray(a1) && Array.isArray(a2)) {\n return generalize(result);\n }\n // return a matrix otherwise\n return new DenseMatrix(generalize(result));\n }\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","/* 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","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\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","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","import { flatten } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'setSymDifference';\nvar dependencies = ['typed', 'size', 'concat', 'subset', 'setDifference', 'Index'];\nexport var createSetSymDifference = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n size,\n concat,\n subset,\n setDifference,\n Index\n } = _ref;\n /**\n * Create the symmetric difference of two (multi)sets.\n * Multi-dimension arrays will be converted to single-dimension arrays before the operation.\n *\n * Syntax:\n *\n * math.setSymDifference(set1, set2)\n *\n * Examples:\n *\n * math.setSymDifference([1, 2, 3, 4], [3, 4, 5, 6]) // returns [1, 2, 5, 6]\n * math.setSymDifference([[1, 2], [3, 4]], [[3, 4], [5, 6]]) // returns [1, 2, 5, 6]\n *\n * See also:\n *\n * setUnion, setIntersect, setDifference\n *\n * @param {Array | Matrix} a1 A (multi)set\n * @param {Array | Matrix} a2 A (multi)set\n * @return {Array | Matrix} The symmetric difference of two (multi)sets\n */\n return typed(name, {\n 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {\n if (subset(size(a1), new Index(0)) === 0) {\n // if any of them is empty, return the other one\n return flatten(a2);\n } else if (subset(size(a2), new Index(0)) === 0) {\n return flatten(a1);\n }\n var b1 = flatten(a1);\n var b2 = flatten(a2);\n return concat(setDifference(b1, b2), setDifference(b2, b1));\n }\n });\n});","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n entry = entry.next;\n }\n state.first = state.last = undefined;\n state.index = create(null);\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","import { factory } from '../../../utils/factory.js';\nvar name = 'schur';\nvar dependencies = ['typed', 'matrix', 'identity', 'multiply', 'qr', 'norm', 'subtract'];\nexport var createSchur = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n identity,\n multiply,\n qr,\n norm,\n subtract\n } = _ref;\n /**\n *\n * Performs a real Schur decomposition of the real matrix A = UTU' where U is orthogonal\n * and T is upper quasi-triangular.\n * https://en.wikipedia.org/wiki/Schur_decomposition\n *\n * Syntax:\n *\n * math.schur(A)\n *\n * Examples:\n *\n * const A = [[1, 0], [-4, 3]]\n * math.schur(A) // returns {T: [[3, 4], [0, 1]], R: [[0, 1], [-1, 0]]}\n *\n * See also:\n *\n * sylvester, lyap, qr\n *\n * @param {Array | Matrix} A Matrix A\n * @return {{U: Array | Matrix, T: Array | Matrix}} Object containing both matrix U and T of the Schur Decomposition A=UTU'\n */\n return typed(name, {\n Array: function Array(X) {\n var r = _schur(matrix(X));\n return {\n U: r.U.valueOf(),\n T: r.T.valueOf()\n };\n },\n Matrix: function Matrix(X) {\n return _schur(X);\n }\n });\n function _schur(X) {\n var n = X.size()[0];\n var A = X;\n var U = identity(n);\n var k = 0;\n var A0;\n do {\n A0 = A;\n var QR = qr(A);\n var Q = QR.Q;\n var R = QR.R;\n A = multiply(R, Q);\n U = multiply(U, Q);\n if (k++ > 100) {\n break;\n }\n } while (norm(subtract(A, A0)) > 1e-4);\n return {\n U,\n T: A\n };\n }\n});","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { isComplex, isUnit, typeOf } from '../../utils/is.js';\nimport { factory } from '../../utils/factory.js';\nimport { memoize } from '../../utils/function.js';\nimport { endsWith } from '../../utils/string.js';\nimport { clone, hasOwnProperty } from '../../utils/object.js';\nimport { createBigNumberPi as createPi } from '../../utils/bignumber/constants.js';\nvar name = 'Unit';\nvar dependencies = ['?on', 'config', 'addScalar', 'subtractScalar', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];\nexport var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n on,\n config,\n addScalar,\n subtractScalar,\n multiplyScalar,\n divideScalar,\n pow,\n abs,\n fix,\n round,\n equal,\n isNumeric,\n format,\n number: _number,\n Complex,\n BigNumber: _BigNumber,\n Fraction: _Fraction\n } = _ref;\n var toNumber = _number;\n /**\n * A unit can be constructed in the following ways:\n *\n * const a = new Unit(value, valuelessUnit)\n * const b = new Unit(null, valuelessUnit)\n * const c = Unit.parse(str)\n *\n * Example usage:\n *\n * const a = new Unit(5, 'cm') // 50 mm\n * const b = Unit.parse('23 kg') // 23 kg\n * const c = math.in(a, new Unit(null, 'm') // 0.05 m\n * const d = new Unit(9.81, \"m/s^2\") // 9.81 m/s^2\n *\n * @class Unit\n * @constructor Unit\n * @param {number | BigNumber | Fraction | Complex | boolean} [value] A value like 5.2\n * @param {string | Unit} valuelessUnit A unit without value. Can have prefix, like \"cm\"\n */\n function Unit(value, valuelessUnit) {\n if (!(this instanceof Unit)) {\n throw new Error('Constructor must be called with the new operator');\n }\n if (!(value === null || value === undefined || isNumeric(value) || isComplex(value))) {\n throw new TypeError('First parameter in Unit constructor must be number, BigNumber, Fraction, Complex, or undefined');\n }\n this.fixPrefix = false; // if true, function format will not search for the\n // best prefix but leave it as initially provided.\n // fixPrefix is set true by the method Unit.to\n\n // The justification behind this is that if the constructor is explicitly called,\n // the caller wishes the units to be returned exactly as supplied.\n this.skipAutomaticSimplification = true;\n if (valuelessUnit === undefined) {\n this.units = [];\n this.dimensions = BASE_DIMENSIONS.map(x => 0);\n } else if (typeof valuelessUnit === 'string') {\n var u = Unit.parse(valuelessUnit);\n this.units = u.units;\n this.dimensions = u.dimensions;\n } else if (isUnit(valuelessUnit) && valuelessUnit.value === null) {\n // clone from valuelessUnit\n this.fixPrefix = valuelessUnit.fixPrefix;\n this.skipAutomaticSimplification = valuelessUnit.skipAutomaticSimplification;\n this.dimensions = valuelessUnit.dimensions.slice(0);\n this.units = valuelessUnit.units.map(u => _extends({}, u));\n } else {\n throw new TypeError('Second parameter in Unit constructor must be a string or valueless Unit');\n }\n this.value = this._normalize(value);\n }\n\n /**\n * Attach type information\n */\n Object.defineProperty(Unit, 'name', {\n value: 'Unit'\n });\n Unit.prototype.constructor = Unit;\n Unit.prototype.type = 'Unit';\n Unit.prototype.isUnit = true;\n\n // private variables and functions for the Unit parser\n var text, index, c;\n function skipWhitespace() {\n while (c === ' ' || c === '\\t') {\n next();\n }\n }\n function isDigitDot(c) {\n return c >= '0' && c <= '9' || c === '.';\n }\n function isDigit(c) {\n return c >= '0' && c <= '9';\n }\n function next() {\n index++;\n c = text.charAt(index);\n }\n function revert(oldIndex) {\n index = oldIndex;\n c = text.charAt(index);\n }\n function parseNumber() {\n var number = '';\n var oldIndex = index;\n if (c === '+') {\n next();\n } else if (c === '-') {\n number += c;\n next();\n }\n if (!isDigitDot(c)) {\n // a + or - must be followed by a digit\n revert(oldIndex);\n return null;\n }\n\n // get number, can have a single dot\n if (c === '.') {\n number += c;\n next();\n if (!isDigit(c)) {\n // this is no legal number, it is just a dot\n revert(oldIndex);\n return null;\n }\n } else {\n while (isDigit(c)) {\n number += c;\n next();\n }\n if (c === '.') {\n number += c;\n next();\n }\n }\n while (isDigit(c)) {\n number += c;\n next();\n }\n\n // check for exponential notation like \"2.3e-4\" or \"1.23e50\"\n if (c === 'E' || c === 'e') {\n // The grammar branches here. This could either be part of an exponent or the start of a unit that begins with the letter e, such as \"4exabytes\"\n\n var tentativeNumber = '';\n var tentativeIndex = index;\n tentativeNumber += c;\n next();\n if (c === '+' || c === '-') {\n tentativeNumber += c;\n next();\n }\n\n // Scientific notation MUST be followed by an exponent (otherwise we assume it is not scientific notation)\n if (!isDigit(c)) {\n // The e or E must belong to something else, so return the number without the e or E.\n revert(tentativeIndex);\n return number;\n }\n\n // We can now safely say that this is scientific notation.\n number = number + tentativeNumber;\n while (isDigit(c)) {\n number += c;\n next();\n }\n }\n return number;\n }\n function parseUnit() {\n var unitName = '';\n\n // Alphanumeric characters only; matches [a-zA-Z0-9]\n while (isDigit(c) || Unit.isValidAlpha(c)) {\n unitName += c;\n next();\n }\n\n // Must begin with [a-zA-Z]\n var firstC = unitName.charAt(0);\n if (Unit.isValidAlpha(firstC)) {\n return unitName;\n } else {\n return null;\n }\n }\n function parseCharacter(toFind) {\n if (c === toFind) {\n next();\n return toFind;\n } else {\n return null;\n }\n }\n\n /**\n * Parse a string into a unit. The value of the unit is parsed as number,\n * BigNumber, or Fraction depending on the math.js config setting `number`.\n *\n * Throws an exception if the provided string does not contain a valid unit or\n * cannot be parsed.\n * @memberof Unit\n * @param {string} str A string like \"5.2 inch\", \"4e2 cm/s^2\"\n * @return {Unit} unit\n */\n Unit.parse = function (str, options) {\n options = options || {};\n text = str;\n index = -1;\n c = '';\n if (typeof text !== 'string') {\n throw new TypeError('Invalid argument in Unit.parse, string expected');\n }\n var unit = new Unit();\n unit.units = [];\n var powerMultiplierCurrent = 1;\n var expectingUnit = false;\n\n // A unit should follow this pattern:\n // [number] ...[ [*/] unit[^number] ]\n // unit[^number] ... [ [*/] unit[^number] ]\n\n // Rules:\n // number is any floating point number.\n // unit is any alphanumeric string beginning with an alpha. Units with names like e3 should be avoided because they look like the exponent of a floating point number!\n // The string may optionally begin with a number.\n // Each unit may optionally be followed by ^number.\n // Whitespace or a forward slash is recommended between consecutive units, although the following technically is parseable:\n // 2m^2kg/s^2\n // it is not good form. If a unit starts with e, then it could be confused as a floating point number:\n // 4erg\n\n next();\n skipWhitespace();\n\n // Optional number at the start of the string\n var valueStr = parseNumber();\n var value = null;\n if (valueStr) {\n if (config.number === 'BigNumber') {\n value = new _BigNumber(valueStr);\n } else if (config.number === 'Fraction') {\n try {\n // not all numbers can be turned in Fractions, for example very small numbers not\n value = new _Fraction(valueStr);\n } catch (err) {\n value = parseFloat(valueStr);\n }\n } else {\n // number\n value = parseFloat(valueStr);\n }\n skipWhitespace(); // Whitespace is not required here\n\n // handle multiplication or division right after the value, like '1/s'\n if (parseCharacter('*')) {\n powerMultiplierCurrent = 1;\n expectingUnit = true;\n } else if (parseCharacter('/')) {\n powerMultiplierCurrent = -1;\n expectingUnit = true;\n }\n }\n\n // Stack to keep track of powerMultipliers applied to each parentheses group\n var powerMultiplierStack = [];\n\n // Running product of all elements in powerMultiplierStack\n var powerMultiplierStackProduct = 1;\n while (true) {\n skipWhitespace();\n\n // Check for and consume opening parentheses, pushing powerMultiplierCurrent to the stack\n // A '(' will always appear directly before a unit.\n while (c === '(') {\n powerMultiplierStack.push(powerMultiplierCurrent);\n powerMultiplierStackProduct *= powerMultiplierCurrent;\n powerMultiplierCurrent = 1;\n next();\n skipWhitespace();\n }\n\n // Is there something here?\n var uStr = void 0;\n if (c) {\n var oldC = c;\n uStr = parseUnit();\n if (uStr === null) {\n throw new SyntaxError('Unexpected \"' + oldC + '\" in \"' + text + '\" at index ' + index.toString());\n }\n } else {\n // End of input.\n break;\n }\n\n // Verify the unit exists and get the prefix (if any)\n var res = _findUnit(uStr);\n if (res === null) {\n // Unit not found.\n throw new SyntaxError('Unit \"' + uStr + '\" not found.');\n }\n var power = powerMultiplierCurrent * powerMultiplierStackProduct;\n // Is there a \"^ number\"?\n skipWhitespace();\n if (parseCharacter('^')) {\n skipWhitespace();\n var p = parseNumber();\n if (p === null) {\n // No valid number found for the power!\n throw new SyntaxError('In \"' + str + '\", \"^\" must be followed by a floating-point number');\n }\n power *= p;\n }\n\n // Add the unit to the list\n unit.units.push({\n unit: res.unit,\n prefix: res.prefix,\n power\n });\n for (var i = 0; i < BASE_DIMENSIONS.length; i++) {\n unit.dimensions[i] += (res.unit.dimensions[i] || 0) * power;\n }\n\n // Check for and consume closing parentheses, popping from the stack.\n // A ')' will always follow a unit.\n skipWhitespace();\n while (c === ')') {\n if (powerMultiplierStack.length === 0) {\n throw new SyntaxError('Unmatched \")\" in \"' + text + '\" at index ' + index.toString());\n }\n powerMultiplierStackProduct /= powerMultiplierStack.pop();\n next();\n skipWhitespace();\n }\n\n // \"*\" and \"/\" should mean we are expecting something to come next.\n // Is there a forward slash? If so, negate powerMultiplierCurrent. The next unit or paren group is in the denominator.\n expectingUnit = false;\n if (parseCharacter('*')) {\n // explicit multiplication\n powerMultiplierCurrent = 1;\n expectingUnit = true;\n } else if (parseCharacter('/')) {\n // division\n powerMultiplierCurrent = -1;\n expectingUnit = true;\n } else {\n // implicit multiplication\n powerMultiplierCurrent = 1;\n }\n\n // Replace the unit into the auto unit system\n if (res.unit.base) {\n var baseDim = res.unit.base.key;\n UNIT_SYSTEMS.auto[baseDim] = {\n unit: res.unit,\n prefix: res.prefix\n };\n }\n }\n\n // Has the string been entirely consumed?\n skipWhitespace();\n if (c) {\n throw new SyntaxError('Could not parse: \"' + str + '\"');\n }\n\n // Is there a trailing slash?\n if (expectingUnit) {\n throw new SyntaxError('Trailing characters: \"' + str + '\"');\n }\n\n // Is the parentheses stack empty?\n if (powerMultiplierStack.length !== 0) {\n throw new SyntaxError('Unmatched \"(\" in \"' + text + '\"');\n }\n\n // Are there any units at all?\n if (unit.units.length === 0 && !options.allowNoUnits) {\n throw new SyntaxError('\"' + str + '\" contains no units');\n }\n unit.value = value !== undefined ? unit._normalize(value) : null;\n return unit;\n };\n\n /**\n * create a copy of this unit\n * @memberof Unit\n * @return {Unit} Returns a cloned version of the unit\n */\n Unit.prototype.clone = function () {\n var unit = new Unit();\n unit.fixPrefix = this.fixPrefix;\n unit.skipAutomaticSimplification = this.skipAutomaticSimplification;\n unit.value = clone(this.value);\n unit.dimensions = this.dimensions.slice(0);\n unit.units = [];\n for (var i = 0; i < this.units.length; i++) {\n unit.units[i] = {};\n for (var p in this.units[i]) {\n if (hasOwnProperty(this.units[i], p)) {\n unit.units[i][p] = this.units[i][p];\n }\n }\n }\n return unit;\n };\n\n /**\n * Return the type of the value of this unit\n *\n * @memberof Unit\n * @ return {string} type of the value of the unit\n */\n Unit.prototype.valueType = function () {\n return typeOf(this.value);\n };\n\n /**\n * Return whether the unit is derived (such as m/s, or cm^2, but not N)\n * @memberof Unit\n * @return {boolean} True if the unit is derived\n */\n Unit.prototype._isDerived = function () {\n if (this.units.length === 0) {\n return false;\n }\n return this.units.length > 1 || Math.abs(this.units[0].power - 1.0) > 1e-15;\n };\n\n /**\n * Normalize a value, based on its currently set unit(s)\n * @memberof Unit\n * @param {number | BigNumber | Fraction | boolean} value\n * @return {number | BigNumber | Fraction | boolean} normalized value\n * @private\n */\n Unit.prototype._normalize = function (value) {\n if (value === null || value === undefined || this.units.length === 0) {\n return value;\n }\n var res = value;\n var convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed\n\n for (var i = 0; i < this.units.length; i++) {\n var unitValue = convert(this.units[i].unit.value);\n var unitPrefixValue = convert(this.units[i].prefix.value);\n var unitPower = convert(this.units[i].power);\n res = multiplyScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));\n }\n return res;\n };\n\n /**\n * Denormalize a value, based on its currently set unit(s)\n * @memberof Unit\n * @param {number} value\n * @param {number} [prefixValue] Optional prefix value to be used (ignored if this is a derived unit)\n * @return {number} denormalized value\n * @private\n */\n Unit.prototype._denormalize = function (value, prefixValue) {\n if (value === null || value === undefined || this.units.length === 0) {\n return value;\n }\n var res = value;\n var convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed\n\n for (var i = 0; i < this.units.length; i++) {\n var unitValue = convert(this.units[i].unit.value);\n var unitPrefixValue = convert(this.units[i].prefix.value);\n var unitPower = convert(this.units[i].power);\n res = divideScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));\n }\n return res;\n };\n\n /**\n * Find a unit from a string\n * @memberof Unit\n * @param {string} str A string like 'cm' or 'inch'\n * @returns {Object | null} result When found, an object with fields unit and\n * prefix is returned. Else, null is returned.\n * @private\n */\n var _findUnit = memoize(str => {\n // First, match units names exactly. For example, a user could define 'mm' as 10^-4 m, which is silly, but then we would want 'mm' to match the user-defined unit.\n if (hasOwnProperty(UNITS, str)) {\n var unit = UNITS[str];\n var prefix = unit.prefixes[''];\n return {\n unit,\n prefix\n };\n }\n for (var _name in UNITS) {\n if (hasOwnProperty(UNITS, _name)) {\n if (endsWith(str, _name)) {\n var _unit = UNITS[_name];\n var prefixLen = str.length - _name.length;\n var prefixName = str.substring(0, prefixLen);\n var _prefix = hasOwnProperty(_unit.prefixes, prefixName) ? _unit.prefixes[prefixName] : undefined;\n if (_prefix !== undefined) {\n // store unit, prefix, and value\n return {\n unit: _unit,\n prefix: _prefix\n };\n }\n }\n }\n }\n return null;\n }, {\n hasher: args => args[0],\n limit: 100\n });\n\n /**\n * Test if the given expression is a unit.\n * The unit can have a prefix but cannot have a value.\n * @memberof Unit\n * @param {string} name A string to be tested whether it is a value less unit.\n * The unit can have prefix, like \"cm\"\n * @return {boolean} true if the given string is a unit\n */\n Unit.isValuelessUnit = function (name) {\n return _findUnit(name) !== null;\n };\n\n /**\n * check if this unit has given base unit\n * If this unit is a derived unit, this will ALWAYS return false, since by definition base units are not derived.\n * @memberof Unit\n * @param {BASE_UNITS | string | undefined} base\n */\n Unit.prototype.hasBase = function (base) {\n if (typeof base === 'string') {\n base = BASE_UNITS[base];\n }\n if (!base) {\n return false;\n }\n\n // All dimensions must be the same\n for (var i = 0; i < BASE_DIMENSIONS.length; i++) {\n if (Math.abs((this.dimensions[i] || 0) - (base.dimensions[i] || 0)) > 1e-12) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * Check if this unit has a base or bases equal to another base or bases\n * For derived units, the exponent on each base also must match\n * @memberof Unit\n * @param {Unit} other\n * @return {boolean} true if equal base\n */\n Unit.prototype.equalBase = function (other) {\n // All dimensions must be the same\n for (var i = 0; i < BASE_DIMENSIONS.length; i++) {\n if (Math.abs((this.dimensions[i] || 0) - (other.dimensions[i] || 0)) > 1e-12) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * Check if this unit equals another unit\n * @memberof Unit\n * @param {Unit} other\n * @return {boolean} true if both units are equal\n */\n Unit.prototype.equals = function (other) {\n return this.equalBase(other) && equal(this.value, other.value);\n };\n\n /**\n * Multiply this unit with another one or with a scalar\n * @memberof Unit\n * @param {Unit} other\n * @return {Unit} product of this unit and the other unit\n */\n Unit.prototype.multiply = function (_other) {\n var res = this.clone();\n var other = isUnit(_other) ? _other : new Unit(_other);\n for (var i = 0; i < BASE_DIMENSIONS.length; i++) {\n // Dimensions arrays may be of different lengths. Default to 0.\n res.dimensions[i] = (this.dimensions[i] || 0) + (other.dimensions[i] || 0);\n }\n\n // Append other's units list onto res\n for (var _i = 0; _i < other.units.length; _i++) {\n // Make a shallow copy of every unit\n var inverted = _objectSpread({}, other.units[_i]);\n res.units.push(inverted);\n }\n\n // If at least one operand has a value, then the result should also have a value\n if (this.value !== null || other.value !== null) {\n var valThis = this.value === null ? this._normalize(1) : this.value;\n var valOther = other.value === null ? other._normalize(1) : other.value;\n res.value = multiplyScalar(valThis, valOther);\n } else {\n res.value = null;\n }\n if (isUnit(_other)) {\n res.skipAutomaticSimplification = false;\n }\n return getNumericIfUnitless(res);\n };\n\n /**\n * Divide a number by this unit\n *\n * @memberof Unit\n * @param {numeric} numerator\n * @param {unit} result of dividing numerator by this unit\n */\n Unit.prototype.divideInto = function (numerator) {\n return new Unit(numerator).divide(this);\n };\n\n /**\n * Divide this unit by another one\n * @memberof Unit\n * @param {Unit | numeric} other\n * @return {Unit} result of dividing this unit by the other unit\n */\n Unit.prototype.divide = function (_other) {\n var res = this.clone();\n var other = isUnit(_other) ? _other : new Unit(_other);\n for (var i = 0; i < BASE_DIMENSIONS.length; i++) {\n // Dimensions arrays may be of different lengths. Default to 0.\n res.dimensions[i] = (this.dimensions[i] || 0) - (other.dimensions[i] || 0);\n }\n\n // Invert and append other's units list onto res\n for (var _i2 = 0; _i2 < other.units.length; _i2++) {\n // Make a shallow copy of every unit\n var inverted = _objectSpread(_objectSpread({}, other.units[_i2]), {}, {\n power: -other.units[_i2].power\n });\n res.units.push(inverted);\n }\n\n // If at least one operand has a value, the result should have a value\n if (this.value !== null || other.value !== null) {\n var valThis = this.value === null ? this._normalize(1) : this.value;\n var valOther = other.value === null ? other._normalize(1) : other.value;\n res.value = divideScalar(valThis, valOther);\n } else {\n res.value = null;\n }\n if (isUnit(_other)) {\n res.skipAutomaticSimplification = false;\n }\n return getNumericIfUnitless(res);\n };\n\n /**\n * Calculate the power of a unit\n * @memberof Unit\n * @param {number | Fraction | BigNumber} p\n * @returns {Unit} The result: this^p\n */\n Unit.prototype.pow = function (p) {\n var res = this.clone();\n for (var i = 0; i < BASE_DIMENSIONS.length; i++) {\n // Dimensions arrays may be of different lengths. Default to 0.\n res.dimensions[i] = (this.dimensions[i] || 0) * p;\n }\n\n // Adjust the power of each unit in the list\n for (var _i3 = 0; _i3 < res.units.length; _i3++) {\n res.units[_i3].power *= p;\n }\n if (res.value !== null) {\n res.value = pow(res.value, p);\n\n // only allow numeric output, we don't want to return a Complex number\n // if (!isNumeric(res.value)) {\n // res.value = NaN\n // }\n // Update: Complex supported now\n } else {\n res.value = null;\n }\n res.skipAutomaticSimplification = false;\n return getNumericIfUnitless(res);\n };\n\n /**\n * Return the numeric value of this unit if it is dimensionless, has a value, and config.predictable == false; or the original unit otherwise\n * @param {Unit} unit\n * @returns {number | Fraction | BigNumber | Unit} The numeric value of the unit if conditions are met, or the original unit otherwise\n */\n function getNumericIfUnitless(unit) {\n if (unit.equalBase(BASE_UNITS.NONE) && unit.value !== null && !config.predictable) {\n return unit.value;\n } else {\n return unit;\n }\n }\n\n /**\n * Calculate the absolute value of a unit\n * @memberof Unit\n * @param {number | Fraction | BigNumber} x\n * @returns {Unit} The result: |x|, absolute value of x\n */\n Unit.prototype.abs = function () {\n var ret = this.clone();\n if (ret.value !== null) {\n if (ret._isDerived() || ret.units[0].unit.offset === 0) {\n ret.value = abs(ret.value);\n } else {\n // To give the correct, but unexpected, results for units with an offset.\n // For example, abs(-283.15 degC) = -263.15 degC !!!\n // We must take the offset into consideration here\n var convert = ret._numberConverter(); // convert to Fraction or BigNumber if needed\n var unitValue = convert(ret.units[0].unit.value);\n var nominalOffset = convert(ret.units[0].unit.offset);\n var unitOffset = multiplyScalar(unitValue, nominalOffset);\n ret.value = subtractScalar(abs(addScalar(ret.value, unitOffset)), unitOffset);\n }\n }\n for (var i in ret.units) {\n if (ret.units[i].unit.name === 'VA' || ret.units[i].unit.name === 'VAR') {\n ret.units[i].unit = UNITS.W;\n }\n }\n return ret;\n };\n\n /**\n * Convert the unit to a specific unit name.\n * @memberof Unit\n * @param {string | Unit} valuelessUnit A unit without value. Can have prefix, like \"cm\"\n * @returns {Unit} Returns a clone of the unit with a fixed prefix and unit.\n */\n Unit.prototype.to = function (valuelessUnit) {\n var value = this.value === null ? this._normalize(1) : this.value;\n var other;\n if (typeof valuelessUnit === 'string') {\n other = Unit.parse(valuelessUnit);\n } else if (isUnit(valuelessUnit)) {\n other = valuelessUnit.clone();\n } else {\n throw new Error('String or Unit expected as parameter');\n }\n if (!this.equalBase(other)) {\n throw new Error(\"Units do not match ('\".concat(other.toString(), \"' != '\").concat(this.toString(), \"')\"));\n }\n if (other.value !== null) {\n throw new Error('Cannot convert to a unit with a value');\n }\n if (this.value === null || this._isDerived() || this.units[0].unit.offset === other.units[0].unit.offset) {\n other.value = clone(value);\n } else {\n /* Need to adjust value by difference in offset to convert */\n var convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed\n\n var thisUnitValue = this.units[0].unit.value;\n var thisNominalOffset = this.units[0].unit.offset;\n var thisUnitOffset = multiplyScalar(thisUnitValue, thisNominalOffset);\n var otherUnitValue = other.units[0].unit.value;\n var otherNominalOffset = other.units[0].unit.offset;\n var otherUnitOffset = multiplyScalar(otherUnitValue, otherNominalOffset);\n other.value = addScalar(value, convert(subtractScalar(thisUnitOffset, otherUnitOffset)));\n }\n other.fixPrefix = true;\n other.skipAutomaticSimplification = true;\n return other;\n };\n\n /**\n * Return the value of the unit when represented with given valueless unit\n * @memberof Unit\n * @param {string | Unit} valuelessUnit For example 'cm' or 'inch'\n * @return {number} Returns the unit value as number.\n */\n // TODO: deprecate Unit.toNumber? It's always better to use toNumeric\n Unit.prototype.toNumber = function (valuelessUnit) {\n return toNumber(this.toNumeric(valuelessUnit));\n };\n\n /**\n * Return the value of the unit in the original numeric type\n * @memberof Unit\n * @param {string | Unit} valuelessUnit For example 'cm' or 'inch'\n * @return {number | BigNumber | Fraction} Returns the unit value\n */\n Unit.prototype.toNumeric = function (valuelessUnit) {\n var other;\n if (valuelessUnit) {\n // Allow getting the numeric value without converting to a different unit\n other = this.to(valuelessUnit);\n } else {\n other = this.clone();\n }\n if (other._isDerived() || other.units.length === 0) {\n return other._denormalize(other.value);\n } else {\n return other._denormalize(other.value, other.units[0].prefix.value);\n }\n };\n\n /**\n * Get a string representation of the unit.\n * @memberof Unit\n * @return {string}\n */\n Unit.prototype.toString = function () {\n return this.format();\n };\n\n /**\n * Get a JSON representation of the unit\n * @memberof Unit\n * @returns {Object} Returns a JSON object structured as:\n * `{\"mathjs\": \"Unit\", \"value\": 2, \"unit\": \"cm\", \"fixPrefix\": false}`\n */\n Unit.prototype.toJSON = function () {\n return {\n mathjs: 'Unit',\n value: this._denormalize(this.value),\n unit: this.formatUnits(),\n fixPrefix: this.fixPrefix\n };\n };\n\n /**\n * Instantiate a Unit from a JSON object\n * @memberof Unit\n * @param {Object} json A JSON object structured as:\n * `{\"mathjs\": \"Unit\", \"value\": 2, \"unit\": \"cm\", \"fixPrefix\": false}`\n * @return {Unit}\n */\n Unit.fromJSON = function (json) {\n var unit = new Unit(json.value, json.unit);\n unit.fixPrefix = json.fixPrefix || false;\n return unit;\n };\n\n /**\n * Returns the string representation of the unit.\n * @memberof Unit\n * @return {string}\n */\n Unit.prototype.valueOf = Unit.prototype.toString;\n\n /**\n * Simplify this Unit's unit list and return a new Unit with the simplified list.\n * The returned Unit will contain a list of the \"best\" units for formatting.\n */\n Unit.prototype.simplify = function () {\n var ret = this.clone();\n var proposedUnitList = [];\n\n // Search for a matching base\n var matchingBase;\n for (var key in currentUnitSystem) {\n if (hasOwnProperty(currentUnitSystem, key)) {\n if (ret.hasBase(BASE_UNITS[key])) {\n matchingBase = key;\n break;\n }\n }\n }\n if (matchingBase === 'NONE') {\n ret.units = [];\n } else {\n var matchingUnit;\n if (matchingBase) {\n // Does the unit system have a matching unit?\n if (hasOwnProperty(currentUnitSystem, matchingBase)) {\n matchingUnit = currentUnitSystem[matchingBase];\n }\n }\n if (matchingUnit) {\n ret.units = [{\n unit: matchingUnit.unit,\n prefix: matchingUnit.prefix,\n power: 1.0\n }];\n } else {\n // Multiple units or units with powers are formatted like this:\n // 5 (kg m^2) / (s^3 mol)\n // Build an representation from the base units of the current unit system\n var missingBaseDim = false;\n for (var i = 0; i < BASE_DIMENSIONS.length; i++) {\n var baseDim = BASE_DIMENSIONS[i];\n if (Math.abs(ret.dimensions[i] || 0) > 1e-12) {\n if (hasOwnProperty(currentUnitSystem, baseDim)) {\n proposedUnitList.push({\n unit: currentUnitSystem[baseDim].unit,\n prefix: currentUnitSystem[baseDim].prefix,\n power: ret.dimensions[i] || 0\n });\n } else {\n missingBaseDim = true;\n }\n }\n }\n\n // Is the proposed unit list \"simpler\" than the existing one?\n if (proposedUnitList.length < ret.units.length && !missingBaseDim) {\n // Replace this unit list with the proposed list\n ret.units = proposedUnitList;\n }\n }\n }\n return ret;\n };\n\n /**\n * Returns a new Unit in the SI system with the same value as this one\n */\n Unit.prototype.toSI = function () {\n var ret = this.clone();\n var proposedUnitList = [];\n\n // Multiple units or units with powers are formatted like this:\n // 5 (kg m^2) / (s^3 mol)\n // Build an representation from the base units of the SI unit system\n for (var i = 0; i < BASE_DIMENSIONS.length; i++) {\n var baseDim = BASE_DIMENSIONS[i];\n if (Math.abs(ret.dimensions[i] || 0) > 1e-12) {\n if (hasOwnProperty(UNIT_SYSTEMS.si, baseDim)) {\n proposedUnitList.push({\n unit: UNIT_SYSTEMS.si[baseDim].unit,\n prefix: UNIT_SYSTEMS.si[baseDim].prefix,\n power: ret.dimensions[i] || 0\n });\n } else {\n throw new Error('Cannot express custom unit ' + baseDim + ' in SI units');\n }\n }\n }\n\n // Replace this unit list with the proposed list\n ret.units = proposedUnitList;\n ret.fixPrefix = true;\n ret.skipAutomaticSimplification = true;\n return ret;\n };\n\n /**\n * Get a string representation of the units of this Unit, without the value. The unit list is formatted as-is without first being simplified.\n * @memberof Unit\n * @return {string}\n */\n Unit.prototype.formatUnits = function () {\n var strNum = '';\n var strDen = '';\n var nNum = 0;\n var nDen = 0;\n for (var i = 0; i < this.units.length; i++) {\n if (this.units[i].power > 0) {\n nNum++;\n strNum += ' ' + this.units[i].prefix.name + this.units[i].unit.name;\n if (Math.abs(this.units[i].power - 1.0) > 1e-15) {\n strNum += '^' + this.units[i].power;\n }\n } else if (this.units[i].power < 0) {\n nDen++;\n }\n }\n if (nDen > 0) {\n for (var _i4 = 0; _i4 < this.units.length; _i4++) {\n if (this.units[_i4].power < 0) {\n if (nNum > 0) {\n strDen += ' ' + this.units[_i4].prefix.name + this.units[_i4].unit.name;\n if (Math.abs(this.units[_i4].power + 1.0) > 1e-15) {\n strDen += '^' + -this.units[_i4].power;\n }\n } else {\n strDen += ' ' + this.units[_i4].prefix.name + this.units[_i4].unit.name;\n strDen += '^' + this.units[_i4].power;\n }\n }\n }\n }\n // Remove leading \" \"\n strNum = strNum.substr(1);\n strDen = strDen.substr(1);\n\n // Add parans for better copy/paste back into evaluate, for example, or for better pretty print formatting\n if (nNum > 1 && nDen > 0) {\n strNum = '(' + strNum + ')';\n }\n if (nDen > 1 && nNum > 0) {\n strDen = '(' + strDen + ')';\n }\n var str = strNum;\n if (nNum > 0 && nDen > 0) {\n str += ' / ';\n }\n str += strDen;\n return str;\n };\n\n /**\n * Get a string representation of the Unit, with optional formatting options.\n * @memberof Unit\n * @param {Object | number | Function} [options] Formatting options. See\n * lib/utils/number:format for a\n * description of the available\n * options.\n * @return {string}\n */\n Unit.prototype.format = function (options) {\n // Simplfy the unit list, unless it is valueless or was created directly in the\n // constructor or as the result of to or toSI\n var simp = this.skipAutomaticSimplification || this.value === null ? this.clone() : this.simplify();\n\n // Apply some custom logic for handling VA and VAR. The goal is to express the value of the unit as a real value, if possible. Otherwise, use a real-valued unit instead of a complex-valued one.\n var isImaginary = false;\n if (typeof simp.value !== 'undefined' && simp.value !== null && isComplex(simp.value)) {\n // TODO: Make this better, for example, use relative magnitude of re and im rather than absolute\n isImaginary = Math.abs(simp.value.re) < 1e-14;\n }\n for (var i in simp.units) {\n if (hasOwnProperty(simp.units, i)) {\n if (simp.units[i].unit) {\n if (simp.units[i].unit.name === 'VA' && isImaginary) {\n simp.units[i].unit = UNITS.VAR;\n } else if (simp.units[i].unit.name === 'VAR' && !isImaginary) {\n simp.units[i].unit = UNITS.VA;\n }\n }\n }\n }\n\n // Now apply the best prefix\n // Units must have only one unit and not have the fixPrefix flag set\n if (simp.units.length === 1 && !simp.fixPrefix) {\n // Units must have integer powers, otherwise the prefix will change the\n // outputted value by not-an-integer-power-of-ten\n if (Math.abs(simp.units[0].power - Math.round(simp.units[0].power)) < 1e-14) {\n // Apply the best prefix\n simp.units[0].prefix = simp._bestPrefix();\n }\n }\n var value = simp._denormalize(simp.value);\n var str = simp.value !== null ? format(value, options || {}) : '';\n var unitStr = simp.formatUnits();\n if (simp.value && isComplex(simp.value)) {\n str = '(' + str + ')'; // Surround complex values with ( ) to enable better parsing\n }\n\n if (unitStr.length > 0 && str.length > 0) {\n str += ' ';\n }\n str += unitStr;\n return str;\n };\n\n /**\n * Calculate the best prefix using current value.\n * @memberof Unit\n * @returns {Object} prefix\n * @private\n */\n Unit.prototype._bestPrefix = function () {\n if (this.units.length !== 1) {\n throw new Error('Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!');\n }\n if (Math.abs(this.units[0].power - Math.round(this.units[0].power)) >= 1e-14) {\n throw new Error('Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!');\n }\n\n // find the best prefix value (resulting in the value of which\n // the absolute value of the log10 is closest to zero,\n // though with a little offset of 1.2 for nicer values: you get a\n // sequence 1mm 100mm 500mm 0.6m 1m 10m 100m 500m 0.6km 1km ...\n\n // Note: the units value can be any numeric type, but to find the best\n // prefix it's enough to work with limited precision of a regular number\n // Update: using mathjs abs since we also allow complex numbers\n var absValue = this.value !== null ? abs(this.value) : 0;\n var absUnitValue = abs(this.units[0].unit.value);\n var bestPrefix = this.units[0].prefix;\n if (absValue === 0) {\n return bestPrefix;\n }\n var power = this.units[0].power;\n var bestDiff = Math.log(absValue / Math.pow(bestPrefix.value * absUnitValue, power)) / Math.LN10 - 1.2;\n if (bestDiff > -2.200001 && bestDiff < 1.800001) return bestPrefix; // Allow the original prefix\n bestDiff = Math.abs(bestDiff);\n var prefixes = this.units[0].unit.prefixes;\n for (var p in prefixes) {\n if (hasOwnProperty(prefixes, p)) {\n var prefix = prefixes[p];\n if (prefix.scientific) {\n var diff = Math.abs(Math.log(absValue / Math.pow(prefix.value * absUnitValue, power)) / Math.LN10 - 1.2);\n if (diff < bestDiff || diff === bestDiff && prefix.name.length < bestPrefix.name.length) {\n // choose the prefix with the smallest diff, or if equal, choose the one\n // with the shortest name (can happen with SHORTLONG for example)\n bestPrefix = prefix;\n bestDiff = diff;\n }\n }\n }\n }\n return bestPrefix;\n };\n\n /**\n * Returns an array of units whose sum is equal to this unit\n * @memberof Unit\n * @param {Array} [parts] An array of strings or valueless units.\n *\n * Example:\n *\n * const u = new Unit(1, 'm')\n * u.splitUnit(['feet', 'inch'])\n * [ 3 feet, 3.3700787401575 inch ]\n *\n * @return {Array} An array of units.\n */\n Unit.prototype.splitUnit = function (parts) {\n var x = this.clone();\n var ret = [];\n for (var i = 0; i < parts.length; i++) {\n // Convert x to the requested unit\n x = x.to(parts[i]);\n if (i === parts.length - 1) break;\n\n // Get the numeric value of this unit\n var xNumeric = x.toNumeric();\n\n // Check to see if xNumeric is nearly equal to an integer,\n // since fix can incorrectly round down if there is round-off error\n var xRounded = round(xNumeric);\n var xFixed = void 0;\n var isNearlyEqual = equal(xRounded, xNumeric);\n if (isNearlyEqual) {\n xFixed = xRounded;\n } else {\n xFixed = fix(x.toNumeric());\n }\n var y = new Unit(xFixed, parts[i].toString());\n ret.push(y);\n x = subtractScalar(x, y);\n }\n\n // This little bit fixes a bug where the remainder should be 0 but is a little bit off.\n // But instead of comparing x, the remainder, with zero--we will compare the sum of\n // all the parts so far with the original value. If they are nearly equal,\n // we set the remainder to 0.\n var testSum = 0;\n for (var _i5 = 0; _i5 < ret.length; _i5++) {\n testSum = addScalar(testSum, ret[_i5].value);\n }\n if (equal(testSum, this.value)) {\n x.value = 0;\n }\n ret.push(x);\n return ret;\n };\n var PREFIXES = {\n NONE: {\n '': {\n name: '',\n value: 1,\n scientific: true\n }\n },\n SHORT: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n da: {\n name: 'da',\n value: 1e1,\n scientific: false\n },\n h: {\n name: 'h',\n value: 1e2,\n scientific: false\n },\n k: {\n name: 'k',\n value: 1e3,\n scientific: true\n },\n M: {\n name: 'M',\n value: 1e6,\n scientific: true\n },\n G: {\n name: 'G',\n value: 1e9,\n scientific: true\n },\n T: {\n name: 'T',\n value: 1e12,\n scientific: true\n },\n P: {\n name: 'P',\n value: 1e15,\n scientific: true\n },\n E: {\n name: 'E',\n value: 1e18,\n scientific: true\n },\n Z: {\n name: 'Z',\n value: 1e21,\n scientific: true\n },\n Y: {\n name: 'Y',\n value: 1e24,\n scientific: true\n },\n d: {\n name: 'd',\n value: 1e-1,\n scientific: false\n },\n c: {\n name: 'c',\n value: 1e-2,\n scientific: false\n },\n m: {\n name: 'm',\n value: 1e-3,\n scientific: true\n },\n u: {\n name: 'u',\n value: 1e-6,\n scientific: true\n },\n n: {\n name: 'n',\n value: 1e-9,\n scientific: true\n },\n p: {\n name: 'p',\n value: 1e-12,\n scientific: true\n },\n f: {\n name: 'f',\n value: 1e-15,\n scientific: true\n },\n a: {\n name: 'a',\n value: 1e-18,\n scientific: true\n },\n z: {\n name: 'z',\n value: 1e-21,\n scientific: true\n },\n y: {\n name: 'y',\n value: 1e-24,\n scientific: true\n }\n },\n LONG: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n deca: {\n name: 'deca',\n value: 1e1,\n scientific: false\n },\n hecto: {\n name: 'hecto',\n value: 1e2,\n scientific: false\n },\n kilo: {\n name: 'kilo',\n value: 1e3,\n scientific: true\n },\n mega: {\n name: 'mega',\n value: 1e6,\n scientific: true\n },\n giga: {\n name: 'giga',\n value: 1e9,\n scientific: true\n },\n tera: {\n name: 'tera',\n value: 1e12,\n scientific: true\n },\n peta: {\n name: 'peta',\n value: 1e15,\n scientific: true\n },\n exa: {\n name: 'exa',\n value: 1e18,\n scientific: true\n },\n zetta: {\n name: 'zetta',\n value: 1e21,\n scientific: true\n },\n yotta: {\n name: 'yotta',\n value: 1e24,\n scientific: true\n },\n deci: {\n name: 'deci',\n value: 1e-1,\n scientific: false\n },\n centi: {\n name: 'centi',\n value: 1e-2,\n scientific: false\n },\n milli: {\n name: 'milli',\n value: 1e-3,\n scientific: true\n },\n micro: {\n name: 'micro',\n value: 1e-6,\n scientific: true\n },\n nano: {\n name: 'nano',\n value: 1e-9,\n scientific: true\n },\n pico: {\n name: 'pico',\n value: 1e-12,\n scientific: true\n },\n femto: {\n name: 'femto',\n value: 1e-15,\n scientific: true\n },\n atto: {\n name: 'atto',\n value: 1e-18,\n scientific: true\n },\n zepto: {\n name: 'zepto',\n value: 1e-21,\n scientific: true\n },\n yocto: {\n name: 'yocto',\n value: 1e-24,\n scientific: true\n }\n },\n SQUARED: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n da: {\n name: 'da',\n value: 1e2,\n scientific: false\n },\n h: {\n name: 'h',\n value: 1e4,\n scientific: false\n },\n k: {\n name: 'k',\n value: 1e6,\n scientific: true\n },\n M: {\n name: 'M',\n value: 1e12,\n scientific: true\n },\n G: {\n name: 'G',\n value: 1e18,\n scientific: true\n },\n T: {\n name: 'T',\n value: 1e24,\n scientific: true\n },\n P: {\n name: 'P',\n value: 1e30,\n scientific: true\n },\n E: {\n name: 'E',\n value: 1e36,\n scientific: true\n },\n Z: {\n name: 'Z',\n value: 1e42,\n scientific: true\n },\n Y: {\n name: 'Y',\n value: 1e48,\n scientific: true\n },\n d: {\n name: 'd',\n value: 1e-2,\n scientific: false\n },\n c: {\n name: 'c',\n value: 1e-4,\n scientific: false\n },\n m: {\n name: 'm',\n value: 1e-6,\n scientific: true\n },\n u: {\n name: 'u',\n value: 1e-12,\n scientific: true\n },\n n: {\n name: 'n',\n value: 1e-18,\n scientific: true\n },\n p: {\n name: 'p',\n value: 1e-24,\n scientific: true\n },\n f: {\n name: 'f',\n value: 1e-30,\n scientific: true\n },\n a: {\n name: 'a',\n value: 1e-36,\n scientific: true\n },\n z: {\n name: 'z',\n value: 1e-42,\n scientific: true\n },\n y: {\n name: 'y',\n value: 1e-48,\n scientific: true\n }\n },\n CUBIC: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n da: {\n name: 'da',\n value: 1e3,\n scientific: false\n },\n h: {\n name: 'h',\n value: 1e6,\n scientific: false\n },\n k: {\n name: 'k',\n value: 1e9,\n scientific: true\n },\n M: {\n name: 'M',\n value: 1e18,\n scientific: true\n },\n G: {\n name: 'G',\n value: 1e27,\n scientific: true\n },\n T: {\n name: 'T',\n value: 1e36,\n scientific: true\n },\n P: {\n name: 'P',\n value: 1e45,\n scientific: true\n },\n E: {\n name: 'E',\n value: 1e54,\n scientific: true\n },\n Z: {\n name: 'Z',\n value: 1e63,\n scientific: true\n },\n Y: {\n name: 'Y',\n value: 1e72,\n scientific: true\n },\n d: {\n name: 'd',\n value: 1e-3,\n scientific: false\n },\n c: {\n name: 'c',\n value: 1e-6,\n scientific: false\n },\n m: {\n name: 'm',\n value: 1e-9,\n scientific: true\n },\n u: {\n name: 'u',\n value: 1e-18,\n scientific: true\n },\n n: {\n name: 'n',\n value: 1e-27,\n scientific: true\n },\n p: {\n name: 'p',\n value: 1e-36,\n scientific: true\n },\n f: {\n name: 'f',\n value: 1e-45,\n scientific: true\n },\n a: {\n name: 'a',\n value: 1e-54,\n scientific: true\n },\n z: {\n name: 'z',\n value: 1e-63,\n scientific: true\n },\n y: {\n name: 'y',\n value: 1e-72,\n scientific: true\n }\n },\n BINARY_SHORT_SI: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n k: {\n name: 'k',\n value: 1e3,\n scientific: true\n },\n M: {\n name: 'M',\n value: 1e6,\n scientific: true\n },\n G: {\n name: 'G',\n value: 1e9,\n scientific: true\n },\n T: {\n name: 'T',\n value: 1e12,\n scientific: true\n },\n P: {\n name: 'P',\n value: 1e15,\n scientific: true\n },\n E: {\n name: 'E',\n value: 1e18,\n scientific: true\n },\n Z: {\n name: 'Z',\n value: 1e21,\n scientific: true\n },\n Y: {\n name: 'Y',\n value: 1e24,\n scientific: true\n }\n },\n BINARY_SHORT_IEC: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n Ki: {\n name: 'Ki',\n value: 1024,\n scientific: true\n },\n Mi: {\n name: 'Mi',\n value: Math.pow(1024, 2),\n scientific: true\n },\n Gi: {\n name: 'Gi',\n value: Math.pow(1024, 3),\n scientific: true\n },\n Ti: {\n name: 'Ti',\n value: Math.pow(1024, 4),\n scientific: true\n },\n Pi: {\n name: 'Pi',\n value: Math.pow(1024, 5),\n scientific: true\n },\n Ei: {\n name: 'Ei',\n value: Math.pow(1024, 6),\n scientific: true\n },\n Zi: {\n name: 'Zi',\n value: Math.pow(1024, 7),\n scientific: true\n },\n Yi: {\n name: 'Yi',\n value: Math.pow(1024, 8),\n scientific: true\n }\n },\n BINARY_LONG_SI: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n kilo: {\n name: 'kilo',\n value: 1e3,\n scientific: true\n },\n mega: {\n name: 'mega',\n value: 1e6,\n scientific: true\n },\n giga: {\n name: 'giga',\n value: 1e9,\n scientific: true\n },\n tera: {\n name: 'tera',\n value: 1e12,\n scientific: true\n },\n peta: {\n name: 'peta',\n value: 1e15,\n scientific: true\n },\n exa: {\n name: 'exa',\n value: 1e18,\n scientific: true\n },\n zetta: {\n name: 'zetta',\n value: 1e21,\n scientific: true\n },\n yotta: {\n name: 'yotta',\n value: 1e24,\n scientific: true\n }\n },\n BINARY_LONG_IEC: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n kibi: {\n name: 'kibi',\n value: 1024,\n scientific: true\n },\n mebi: {\n name: 'mebi',\n value: Math.pow(1024, 2),\n scientific: true\n },\n gibi: {\n name: 'gibi',\n value: Math.pow(1024, 3),\n scientific: true\n },\n tebi: {\n name: 'tebi',\n value: Math.pow(1024, 4),\n scientific: true\n },\n pebi: {\n name: 'pebi',\n value: Math.pow(1024, 5),\n scientific: true\n },\n exi: {\n name: 'exi',\n value: Math.pow(1024, 6),\n scientific: true\n },\n zebi: {\n name: 'zebi',\n value: Math.pow(1024, 7),\n scientific: true\n },\n yobi: {\n name: 'yobi',\n value: Math.pow(1024, 8),\n scientific: true\n }\n },\n BTU: {\n '': {\n name: '',\n value: 1,\n scientific: true\n },\n MM: {\n name: 'MM',\n value: 1e6,\n scientific: true\n }\n }\n };\n PREFIXES.SHORTLONG = _extends({}, PREFIXES.SHORT, PREFIXES.LONG);\n PREFIXES.BINARY_SHORT = _extends({}, PREFIXES.BINARY_SHORT_SI, PREFIXES.BINARY_SHORT_IEC);\n PREFIXES.BINARY_LONG = _extends({}, PREFIXES.BINARY_LONG_SI, PREFIXES.BINARY_LONG_IEC);\n\n /* Internally, each unit is represented by a value and a dimension array. The elements of the dimensions array have the following meaning:\n * Index Dimension\n * ----- ---------\n * 0 Length\n * 1 Mass\n * 2 Time\n * 3 Current\n * 4 Temperature\n * 5 Luminous intensity\n * 6 Amount of substance\n * 7 Angle\n * 8 Bit (digital)\n * For example, the unit \"298.15 K\" is a pure temperature and would have a value of 298.15 and a dimension array of [0, 0, 0, 0, 1, 0, 0, 0, 0]. The unit \"1 cal / (gm °C)\" can be written in terms of the 9 fundamental dimensions as [length^2] / ([time^2] * [temperature]), and would a value of (after conversion to SI) 4184.0 and a dimensions array of [2, 0, -2, 0, -1, 0, 0, 0, 0].\n *\n */\n\n var BASE_DIMENSIONS = ['MASS', 'LENGTH', 'TIME', 'CURRENT', 'TEMPERATURE', 'LUMINOUS_INTENSITY', 'AMOUNT_OF_SUBSTANCE', 'ANGLE', 'BIT'];\n var BASE_UNITS = {\n NONE: {\n dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 0]\n },\n MASS: {\n dimensions: [1, 0, 0, 0, 0, 0, 0, 0, 0]\n },\n LENGTH: {\n dimensions: [0, 1, 0, 0, 0, 0, 0, 0, 0]\n },\n TIME: {\n dimensions: [0, 0, 1, 0, 0, 0, 0, 0, 0]\n },\n CURRENT: {\n dimensions: [0, 0, 0, 1, 0, 0, 0, 0, 0]\n },\n TEMPERATURE: {\n dimensions: [0, 0, 0, 0, 1, 0, 0, 0, 0]\n },\n LUMINOUS_INTENSITY: {\n dimensions: [0, 0, 0, 0, 0, 1, 0, 0, 0]\n },\n AMOUNT_OF_SUBSTANCE: {\n dimensions: [0, 0, 0, 0, 0, 0, 1, 0, 0]\n },\n FORCE: {\n dimensions: [1, 1, -2, 0, 0, 0, 0, 0, 0]\n },\n SURFACE: {\n dimensions: [0, 2, 0, 0, 0, 0, 0, 0, 0]\n },\n VOLUME: {\n dimensions: [0, 3, 0, 0, 0, 0, 0, 0, 0]\n },\n ENERGY: {\n dimensions: [1, 2, -2, 0, 0, 0, 0, 0, 0]\n },\n POWER: {\n dimensions: [1, 2, -3, 0, 0, 0, 0, 0, 0]\n },\n PRESSURE: {\n dimensions: [1, -1, -2, 0, 0, 0, 0, 0, 0]\n },\n ELECTRIC_CHARGE: {\n dimensions: [0, 0, 1, 1, 0, 0, 0, 0, 0]\n },\n ELECTRIC_CAPACITANCE: {\n dimensions: [-1, -2, 4, 2, 0, 0, 0, 0, 0]\n },\n ELECTRIC_POTENTIAL: {\n dimensions: [1, 2, -3, -1, 0, 0, 0, 0, 0]\n },\n ELECTRIC_RESISTANCE: {\n dimensions: [1, 2, -3, -2, 0, 0, 0, 0, 0]\n },\n ELECTRIC_INDUCTANCE: {\n dimensions: [1, 2, -2, -2, 0, 0, 0, 0, 0]\n },\n ELECTRIC_CONDUCTANCE: {\n dimensions: [-1, -2, 3, 2, 0, 0, 0, 0, 0]\n },\n MAGNETIC_FLUX: {\n dimensions: [1, 2, -2, -1, 0, 0, 0, 0, 0]\n },\n MAGNETIC_FLUX_DENSITY: {\n dimensions: [1, 0, -2, -1, 0, 0, 0, 0, 0]\n },\n FREQUENCY: {\n dimensions: [0, 0, -1, 0, 0, 0, 0, 0, 0]\n },\n ANGLE: {\n dimensions: [0, 0, 0, 0, 0, 0, 0, 1, 0]\n },\n BIT: {\n dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 1]\n }\n };\n for (var key in BASE_UNITS) {\n if (hasOwnProperty(BASE_UNITS, key)) {\n BASE_UNITS[key].key = key;\n }\n }\n var BASE_UNIT_NONE = {};\n var UNIT_NONE = {\n name: '',\n base: BASE_UNIT_NONE,\n value: 1,\n offset: 0,\n dimensions: BASE_DIMENSIONS.map(x => 0)\n };\n var UNITS = {\n // length\n meter: {\n name: 'meter',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n inch: {\n name: 'inch',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.0254,\n offset: 0\n },\n foot: {\n name: 'foot',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.3048,\n offset: 0\n },\n yard: {\n name: 'yard',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.9144,\n offset: 0\n },\n mile: {\n name: 'mile',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 1609.344,\n offset: 0\n },\n link: {\n name: 'link',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.201168,\n offset: 0\n },\n rod: {\n name: 'rod',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 5.0292,\n offset: 0\n },\n chain: {\n name: 'chain',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 20.1168,\n offset: 0\n },\n angstrom: {\n name: 'angstrom',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 1e-10,\n offset: 0\n },\n m: {\n name: 'm',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n in: {\n name: 'in',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.0254,\n offset: 0\n },\n ft: {\n name: 'ft',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.3048,\n offset: 0\n },\n yd: {\n name: 'yd',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.9144,\n offset: 0\n },\n mi: {\n name: 'mi',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 1609.344,\n offset: 0\n },\n li: {\n name: 'li',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.201168,\n offset: 0\n },\n rd: {\n name: 'rd',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 5.029210,\n offset: 0\n },\n ch: {\n name: 'ch',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 20.1168,\n offset: 0\n },\n mil: {\n name: 'mil',\n base: BASE_UNITS.LENGTH,\n prefixes: PREFIXES.NONE,\n value: 0.0000254,\n offset: 0\n },\n // 1/1000 inch\n\n // Surface\n m2: {\n name: 'm2',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.SQUARED,\n value: 1,\n offset: 0\n },\n sqin: {\n name: 'sqin',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 0.00064516,\n offset: 0\n },\n // 645.16 mm2\n sqft: {\n name: 'sqft',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 0.09290304,\n offset: 0\n },\n // 0.09290304 m2\n sqyd: {\n name: 'sqyd',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 0.83612736,\n offset: 0\n },\n // 0.83612736 m2\n sqmi: {\n name: 'sqmi',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 2589988.110336,\n offset: 0\n },\n // 2.589988110336 km2\n sqrd: {\n name: 'sqrd',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 25.29295,\n offset: 0\n },\n // 25.29295 m2\n sqch: {\n name: 'sqch',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 404.6873,\n offset: 0\n },\n // 404.6873 m2\n sqmil: {\n name: 'sqmil',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 6.4516e-10,\n offset: 0\n },\n // 6.4516 * 10^-10 m2\n acre: {\n name: 'acre',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 4046.86,\n offset: 0\n },\n // 4046.86 m2\n hectare: {\n name: 'hectare',\n base: BASE_UNITS.SURFACE,\n prefixes: PREFIXES.NONE,\n value: 10000,\n offset: 0\n },\n // 10000 m2\n\n // Volume\n m3: {\n name: 'm3',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.CUBIC,\n value: 1,\n offset: 0\n },\n L: {\n name: 'L',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.SHORT,\n value: 0.001,\n offset: 0\n },\n // litre\n l: {\n name: 'l',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.SHORT,\n value: 0.001,\n offset: 0\n },\n // litre\n litre: {\n name: 'litre',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.LONG,\n value: 0.001,\n offset: 0\n },\n cuin: {\n name: 'cuin',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 1.6387064e-5,\n offset: 0\n },\n // 1.6387064e-5 m3\n cuft: {\n name: 'cuft',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.028316846592,\n offset: 0\n },\n // 28.316 846 592 L\n cuyd: {\n name: 'cuyd',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.764554857984,\n offset: 0\n },\n // 764.554 857 984 L\n teaspoon: {\n name: 'teaspoon',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.000005,\n offset: 0\n },\n // 5 mL\n tablespoon: {\n name: 'tablespoon',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.000015,\n offset: 0\n },\n // 15 mL\n // {name: 'cup', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.000240, offset: 0}, // 240 mL // not possible, we have already another cup\n drop: {\n name: 'drop',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 5e-8,\n offset: 0\n },\n // 0.05 mL = 5e-8 m3\n gtt: {\n name: 'gtt',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 5e-8,\n offset: 0\n },\n // 0.05 mL = 5e-8 m3\n\n // Liquid volume\n minim: {\n name: 'minim',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.00000006161152,\n offset: 0\n },\n // 0.06161152 mL\n fluiddram: {\n name: 'fluiddram',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0000036966911,\n offset: 0\n },\n // 3.696691 mL\n fluidounce: {\n name: 'fluidounce',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.00002957353,\n offset: 0\n },\n // 29.57353 mL\n gill: {\n name: 'gill',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0001182941,\n offset: 0\n },\n // 118.2941 mL\n cc: {\n name: 'cc',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 1e-6,\n offset: 0\n },\n // 1e-6 L\n cup: {\n name: 'cup',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0002365882,\n offset: 0\n },\n // 236.5882 mL\n pint: {\n name: 'pint',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0004731765,\n offset: 0\n },\n // 473.1765 mL\n quart: {\n name: 'quart',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0009463529,\n offset: 0\n },\n // 946.3529 mL\n gallon: {\n name: 'gallon',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.003785412,\n offset: 0\n },\n // 3.785412 L\n beerbarrel: {\n name: 'beerbarrel',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.1173478,\n offset: 0\n },\n // 117.3478 L\n oilbarrel: {\n name: 'oilbarrel',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.1589873,\n offset: 0\n },\n // 158.9873 L\n hogshead: {\n name: 'hogshead',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.2384810,\n offset: 0\n },\n // 238.4810 L\n\n // {name: 'min', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.00000006161152, offset: 0}, // 0.06161152 mL // min is already in use as minute\n fldr: {\n name: 'fldr',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0000036966911,\n offset: 0\n },\n // 3.696691 mL\n floz: {\n name: 'floz',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.00002957353,\n offset: 0\n },\n // 29.57353 mL\n gi: {\n name: 'gi',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0001182941,\n offset: 0\n },\n // 118.2941 mL\n cp: {\n name: 'cp',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0002365882,\n offset: 0\n },\n // 236.5882 mL\n pt: {\n name: 'pt',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0004731765,\n offset: 0\n },\n // 473.1765 mL\n qt: {\n name: 'qt',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.0009463529,\n offset: 0\n },\n // 946.3529 mL\n gal: {\n name: 'gal',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.003785412,\n offset: 0\n },\n // 3.785412 L\n bbl: {\n name: 'bbl',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.1173478,\n offset: 0\n },\n // 117.3478 L\n obl: {\n name: 'obl',\n base: BASE_UNITS.VOLUME,\n prefixes: PREFIXES.NONE,\n value: 0.1589873,\n offset: 0\n },\n // 158.9873 L\n // {name: 'hogshead', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.2384810, offset: 0}, // 238.4810 L // TODO: hh?\n\n // Mass\n g: {\n name: 'g',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.SHORT,\n value: 0.001,\n offset: 0\n },\n gram: {\n name: 'gram',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.LONG,\n value: 0.001,\n offset: 0\n },\n ton: {\n name: 'ton',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.SHORT,\n value: 907.18474,\n offset: 0\n },\n t: {\n name: 't',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.SHORT,\n value: 1000,\n offset: 0\n },\n tonne: {\n name: 'tonne',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.LONG,\n value: 1000,\n offset: 0\n },\n grain: {\n name: 'grain',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 64.79891e-6,\n offset: 0\n },\n dram: {\n name: 'dram',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 1.7718451953125e-3,\n offset: 0\n },\n ounce: {\n name: 'ounce',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 28.349523125e-3,\n offset: 0\n },\n poundmass: {\n name: 'poundmass',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 453.59237e-3,\n offset: 0\n },\n hundredweight: {\n name: 'hundredweight',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 45.359237,\n offset: 0\n },\n stick: {\n name: 'stick',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 115e-3,\n offset: 0\n },\n stone: {\n name: 'stone',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 6.35029318,\n offset: 0\n },\n gr: {\n name: 'gr',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 64.79891e-6,\n offset: 0\n },\n dr: {\n name: 'dr',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 1.7718451953125e-3,\n offset: 0\n },\n oz: {\n name: 'oz',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 28.349523125e-3,\n offset: 0\n },\n lbm: {\n name: 'lbm',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 453.59237e-3,\n offset: 0\n },\n cwt: {\n name: 'cwt',\n base: BASE_UNITS.MASS,\n prefixes: PREFIXES.NONE,\n value: 45.359237,\n offset: 0\n },\n // Time\n s: {\n name: 's',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n min: {\n name: 'min',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 60,\n offset: 0\n },\n h: {\n name: 'h',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 3600,\n offset: 0\n },\n second: {\n name: 'second',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n sec: {\n name: 'sec',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n minute: {\n name: 'minute',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 60,\n offset: 0\n },\n hour: {\n name: 'hour',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 3600,\n offset: 0\n },\n day: {\n name: 'day',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 86400,\n offset: 0\n },\n week: {\n name: 'week',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 7 * 86400,\n offset: 0\n },\n month: {\n name: 'month',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 2629800,\n // 1/12th of Julian year\n offset: 0\n },\n year: {\n name: 'year',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 31557600,\n // Julian year\n offset: 0\n },\n decade: {\n name: 'decade',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 315576000,\n // Julian decade\n offset: 0\n },\n century: {\n name: 'century',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 3155760000,\n // Julian century\n offset: 0\n },\n millennium: {\n name: 'millennium',\n base: BASE_UNITS.TIME,\n prefixes: PREFIXES.NONE,\n value: 31557600000,\n // Julian millennium\n offset: 0\n },\n // Frequency\n hertz: {\n name: 'Hertz',\n base: BASE_UNITS.FREQUENCY,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0,\n reciprocal: true\n },\n Hz: {\n name: 'Hz',\n base: BASE_UNITS.FREQUENCY,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0,\n reciprocal: true\n },\n // Angle\n rad: {\n name: 'rad',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n radian: {\n name: 'radian',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n // deg = rad / (2*pi) * 360 = rad / 0.017453292519943295769236907684888\n deg: {\n name: 'deg',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.SHORT,\n value: null,\n // will be filled in by calculateAngleValues()\n offset: 0\n },\n degree: {\n name: 'degree',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.LONG,\n value: null,\n // will be filled in by calculateAngleValues()\n offset: 0\n },\n // grad = rad / (2*pi) * 400 = rad / 0.015707963267948966192313216916399\n grad: {\n name: 'grad',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.SHORT,\n value: null,\n // will be filled in by calculateAngleValues()\n offset: 0\n },\n gradian: {\n name: 'gradian',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.LONG,\n value: null,\n // will be filled in by calculateAngleValues()\n offset: 0\n },\n // cycle = rad / (2*pi) = rad / 6.2831853071795864769252867665793\n cycle: {\n name: 'cycle',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.NONE,\n value: null,\n // will be filled in by calculateAngleValues()\n offset: 0\n },\n // arcsec = rad / (3600 * (360 / 2 * pi)) = rad / 0.0000048481368110953599358991410235795\n arcsec: {\n name: 'arcsec',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.NONE,\n value: null,\n // will be filled in by calculateAngleValues()\n offset: 0\n },\n // arcmin = rad / (60 * (360 / 2 * pi)) = rad / 0.00029088820866572159615394846141477\n arcmin: {\n name: 'arcmin',\n base: BASE_UNITS.ANGLE,\n prefixes: PREFIXES.NONE,\n value: null,\n // will be filled in by calculateAngleValues()\n offset: 0\n },\n // Electric current\n A: {\n name: 'A',\n base: BASE_UNITS.CURRENT,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n ampere: {\n name: 'ampere',\n base: BASE_UNITS.CURRENT,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n // Temperature\n // K(C) = °C + 273.15\n // K(F) = (°F + 459.67) * (5 / 9)\n // K(R) = °R * (5 / 9)\n K: {\n name: 'K',\n base: BASE_UNITS.TEMPERATURE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n degC: {\n name: 'degC',\n base: BASE_UNITS.TEMPERATURE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 273.15\n },\n degF: {\n name: 'degF',\n base: BASE_UNITS.TEMPERATURE,\n prefixes: PREFIXES.SHORT,\n value: new _Fraction(5, 9),\n offset: 459.67\n },\n degR: {\n name: 'degR',\n base: BASE_UNITS.TEMPERATURE,\n prefixes: PREFIXES.SHORT,\n value: new _Fraction(5, 9),\n offset: 0\n },\n kelvin: {\n name: 'kelvin',\n base: BASE_UNITS.TEMPERATURE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n celsius: {\n name: 'celsius',\n base: BASE_UNITS.TEMPERATURE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 273.15\n },\n fahrenheit: {\n name: 'fahrenheit',\n base: BASE_UNITS.TEMPERATURE,\n prefixes: PREFIXES.LONG,\n value: new _Fraction(5, 9),\n offset: 459.67\n },\n rankine: {\n name: 'rankine',\n base: BASE_UNITS.TEMPERATURE,\n prefixes: PREFIXES.LONG,\n value: new _Fraction(5, 9),\n offset: 0\n },\n // amount of substance\n mol: {\n name: 'mol',\n base: BASE_UNITS.AMOUNT_OF_SUBSTANCE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n mole: {\n name: 'mole',\n base: BASE_UNITS.AMOUNT_OF_SUBSTANCE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n // luminous intensity\n cd: {\n name: 'cd',\n base: BASE_UNITS.LUMINOUS_INTENSITY,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n candela: {\n name: 'candela',\n base: BASE_UNITS.LUMINOUS_INTENSITY,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n // TODO: units STERADIAN\n // {name: 'sr', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},\n // {name: 'steradian', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},\n\n // Force\n N: {\n name: 'N',\n base: BASE_UNITS.FORCE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n newton: {\n name: 'newton',\n base: BASE_UNITS.FORCE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n dyn: {\n name: 'dyn',\n base: BASE_UNITS.FORCE,\n prefixes: PREFIXES.SHORT,\n value: 0.00001,\n offset: 0\n },\n dyne: {\n name: 'dyne',\n base: BASE_UNITS.FORCE,\n prefixes: PREFIXES.LONG,\n value: 0.00001,\n offset: 0\n },\n lbf: {\n name: 'lbf',\n base: BASE_UNITS.FORCE,\n prefixes: PREFIXES.NONE,\n value: 4.4482216152605,\n offset: 0\n },\n poundforce: {\n name: 'poundforce',\n base: BASE_UNITS.FORCE,\n prefixes: PREFIXES.NONE,\n value: 4.4482216152605,\n offset: 0\n },\n kip: {\n name: 'kip',\n base: BASE_UNITS.FORCE,\n prefixes: PREFIXES.LONG,\n value: 4448.2216,\n offset: 0\n },\n kilogramforce: {\n name: 'kilogramforce',\n base: BASE_UNITS.FORCE,\n prefixes: PREFIXES.NONE,\n value: 9.80665,\n offset: 0\n },\n // Energy\n J: {\n name: 'J',\n base: BASE_UNITS.ENERGY,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n joule: {\n name: 'joule',\n base: BASE_UNITS.ENERGY,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n erg: {\n name: 'erg',\n base: BASE_UNITS.ENERGY,\n prefixes: PREFIXES.SHORTLONG,\n // Both kiloerg and kerg are acceptable\n value: 1e-7,\n offset: 0\n },\n Wh: {\n name: 'Wh',\n base: BASE_UNITS.ENERGY,\n prefixes: PREFIXES.SHORT,\n value: 3600,\n offset: 0\n },\n BTU: {\n name: 'BTU',\n base: BASE_UNITS.ENERGY,\n prefixes: PREFIXES.BTU,\n value: 1055.05585262,\n offset: 0\n },\n eV: {\n name: 'eV',\n base: BASE_UNITS.ENERGY,\n prefixes: PREFIXES.SHORT,\n value: 1.602176565e-19,\n offset: 0\n },\n electronvolt: {\n name: 'electronvolt',\n base: BASE_UNITS.ENERGY,\n prefixes: PREFIXES.LONG,\n value: 1.602176565e-19,\n offset: 0\n },\n // Power\n W: {\n name: 'W',\n base: BASE_UNITS.POWER,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n watt: {\n name: 'watt',\n base: BASE_UNITS.POWER,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n hp: {\n name: 'hp',\n base: BASE_UNITS.POWER,\n prefixes: PREFIXES.NONE,\n value: 745.6998715386,\n offset: 0\n },\n // Electrical power units\n VAR: {\n name: 'VAR',\n base: BASE_UNITS.POWER,\n prefixes: PREFIXES.SHORT,\n value: Complex.I,\n offset: 0\n },\n VA: {\n name: 'VA',\n base: BASE_UNITS.POWER,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n // Pressure\n Pa: {\n name: 'Pa',\n base: BASE_UNITS.PRESSURE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n psi: {\n name: 'psi',\n base: BASE_UNITS.PRESSURE,\n prefixes: PREFIXES.NONE,\n value: 6894.75729276459,\n offset: 0\n },\n atm: {\n name: 'atm',\n base: BASE_UNITS.PRESSURE,\n prefixes: PREFIXES.NONE,\n value: 101325,\n offset: 0\n },\n bar: {\n name: 'bar',\n base: BASE_UNITS.PRESSURE,\n prefixes: PREFIXES.SHORTLONG,\n value: 100000,\n offset: 0\n },\n torr: {\n name: 'torr',\n base: BASE_UNITS.PRESSURE,\n prefixes: PREFIXES.NONE,\n value: 133.322,\n offset: 0\n },\n mmHg: {\n name: 'mmHg',\n base: BASE_UNITS.PRESSURE,\n prefixes: PREFIXES.NONE,\n value: 133.322,\n offset: 0\n },\n mmH2O: {\n name: 'mmH2O',\n base: BASE_UNITS.PRESSURE,\n prefixes: PREFIXES.NONE,\n value: 9.80665,\n offset: 0\n },\n cmH2O: {\n name: 'cmH2O',\n base: BASE_UNITS.PRESSURE,\n prefixes: PREFIXES.NONE,\n value: 98.0665,\n offset: 0\n },\n // Electric charge\n coulomb: {\n name: 'coulomb',\n base: BASE_UNITS.ELECTRIC_CHARGE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n C: {\n name: 'C',\n base: BASE_UNITS.ELECTRIC_CHARGE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n // Electric capacitance\n farad: {\n name: 'farad',\n base: BASE_UNITS.ELECTRIC_CAPACITANCE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n F: {\n name: 'F',\n base: BASE_UNITS.ELECTRIC_CAPACITANCE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n // Electric potential\n volt: {\n name: 'volt',\n base: BASE_UNITS.ELECTRIC_POTENTIAL,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n V: {\n name: 'V',\n base: BASE_UNITS.ELECTRIC_POTENTIAL,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n // Electric resistance\n ohm: {\n name: 'ohm',\n base: BASE_UNITS.ELECTRIC_RESISTANCE,\n prefixes: PREFIXES.SHORTLONG,\n // Both Mohm and megaohm are acceptable\n value: 1,\n offset: 0\n },\n /*\n * Unicode breaks in browsers if charset is not specified\n Ω: {\n name: 'Ω',\n base: BASE_UNITS.ELECTRIC_RESISTANCE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n */\n // Electric inductance\n henry: {\n name: 'henry',\n base: BASE_UNITS.ELECTRIC_INDUCTANCE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n H: {\n name: 'H',\n base: BASE_UNITS.ELECTRIC_INDUCTANCE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n // Electric conductance\n siemens: {\n name: 'siemens',\n base: BASE_UNITS.ELECTRIC_CONDUCTANCE,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n S: {\n name: 'S',\n base: BASE_UNITS.ELECTRIC_CONDUCTANCE,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n // Magnetic flux\n weber: {\n name: 'weber',\n base: BASE_UNITS.MAGNETIC_FLUX,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n Wb: {\n name: 'Wb',\n base: BASE_UNITS.MAGNETIC_FLUX,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n // Magnetic flux density\n tesla: {\n name: 'tesla',\n base: BASE_UNITS.MAGNETIC_FLUX_DENSITY,\n prefixes: PREFIXES.LONG,\n value: 1,\n offset: 0\n },\n T: {\n name: 'T',\n base: BASE_UNITS.MAGNETIC_FLUX_DENSITY,\n prefixes: PREFIXES.SHORT,\n value: 1,\n offset: 0\n },\n // Binary\n b: {\n name: 'b',\n base: BASE_UNITS.BIT,\n prefixes: PREFIXES.BINARY_SHORT,\n value: 1,\n offset: 0\n },\n bits: {\n name: 'bits',\n base: BASE_UNITS.BIT,\n prefixes: PREFIXES.BINARY_LONG,\n value: 1,\n offset: 0\n },\n B: {\n name: 'B',\n base: BASE_UNITS.BIT,\n prefixes: PREFIXES.BINARY_SHORT,\n value: 8,\n offset: 0\n },\n bytes: {\n name: 'bytes',\n base: BASE_UNITS.BIT,\n prefixes: PREFIXES.BINARY_LONG,\n value: 8,\n offset: 0\n }\n };\n\n // aliases (formerly plurals)\n var ALIASES = {\n meters: 'meter',\n inches: 'inch',\n feet: 'foot',\n yards: 'yard',\n miles: 'mile',\n links: 'link',\n rods: 'rod',\n chains: 'chain',\n angstroms: 'angstrom',\n lt: 'l',\n litres: 'litre',\n liter: 'litre',\n liters: 'litre',\n teaspoons: 'teaspoon',\n tablespoons: 'tablespoon',\n minims: 'minim',\n fluiddrams: 'fluiddram',\n fluidounces: 'fluidounce',\n gills: 'gill',\n cups: 'cup',\n pints: 'pint',\n quarts: 'quart',\n gallons: 'gallon',\n beerbarrels: 'beerbarrel',\n oilbarrels: 'oilbarrel',\n hogsheads: 'hogshead',\n gtts: 'gtt',\n grams: 'gram',\n tons: 'ton',\n tonnes: 'tonne',\n grains: 'grain',\n drams: 'dram',\n ounces: 'ounce',\n poundmasses: 'poundmass',\n hundredweights: 'hundredweight',\n sticks: 'stick',\n lb: 'lbm',\n lbs: 'lbm',\n kips: 'kip',\n kgf: 'kilogramforce',\n acres: 'acre',\n hectares: 'hectare',\n sqfeet: 'sqft',\n sqyard: 'sqyd',\n sqmile: 'sqmi',\n sqmiles: 'sqmi',\n mmhg: 'mmHg',\n mmh2o: 'mmH2O',\n cmh2o: 'cmH2O',\n seconds: 'second',\n secs: 'second',\n minutes: 'minute',\n mins: 'minute',\n hours: 'hour',\n hr: 'hour',\n hrs: 'hour',\n days: 'day',\n weeks: 'week',\n months: 'month',\n years: 'year',\n decades: 'decade',\n centuries: 'century',\n millennia: 'millennium',\n hertz: 'hertz',\n radians: 'radian',\n degrees: 'degree',\n gradians: 'gradian',\n cycles: 'cycle',\n arcsecond: 'arcsec',\n arcseconds: 'arcsec',\n arcminute: 'arcmin',\n arcminutes: 'arcmin',\n BTUs: 'BTU',\n watts: 'watt',\n joules: 'joule',\n amperes: 'ampere',\n amps: 'ampere',\n amp: 'ampere',\n coulombs: 'coulomb',\n volts: 'volt',\n ohms: 'ohm',\n farads: 'farad',\n webers: 'weber',\n teslas: 'tesla',\n electronvolts: 'electronvolt',\n moles: 'mole',\n bit: 'bits',\n byte: 'bytes'\n };\n\n /**\n * Calculate the values for the angle units.\n * Value is calculated as number or BigNumber depending on the configuration\n * @param {{number: 'number' | 'BigNumber'}} config\n */\n function calculateAngleValues(config) {\n if (config.number === 'BigNumber') {\n var pi = createPi(_BigNumber);\n UNITS.rad.value = new _BigNumber(1);\n UNITS.deg.value = pi.div(180); // 2 * pi / 360\n UNITS.grad.value = pi.div(200); // 2 * pi / 400\n UNITS.cycle.value = pi.times(2); // 2 * pi\n UNITS.arcsec.value = pi.div(648000); // 2 * pi / 360 / 3600\n UNITS.arcmin.value = pi.div(10800); // 2 * pi / 360 / 60\n } else {\n // number\n UNITS.rad.value = 1;\n UNITS.deg.value = Math.PI / 180; // 2 * pi / 360\n UNITS.grad.value = Math.PI / 200; // 2 * pi / 400\n UNITS.cycle.value = Math.PI * 2; // 2 * pi\n UNITS.arcsec.value = Math.PI / 648000; // 2 * pi / 360 / 3600\n UNITS.arcmin.value = Math.PI / 10800; // 2 * pi / 360 / 60\n }\n\n // copy to the full names of the angles\n UNITS.radian.value = UNITS.rad.value;\n UNITS.degree.value = UNITS.deg.value;\n UNITS.gradian.value = UNITS.grad.value;\n }\n\n // apply the angle values now\n calculateAngleValues(config);\n if (on) {\n // recalculate the values on change of configuration\n on('config', function (curr, prev) {\n if (curr.number !== prev.number) {\n calculateAngleValues(curr);\n }\n });\n }\n\n /**\n * A unit system is a set of dimensionally independent base units plus a set of derived units, formed by multiplication and division of the base units, that are by convention used with the unit system.\n * A user perhaps could issue a command to select a preferred unit system, or use the default (see below).\n * Auto unit system: The default unit system is updated on the fly anytime a unit is parsed. The corresponding unit in the default unit system is updated, so that answers are given in the same units the user supplies.\n */\n var UNIT_SYSTEMS = {\n si: {\n // Base units\n NONE: {\n unit: UNIT_NONE,\n prefix: PREFIXES.NONE['']\n },\n LENGTH: {\n unit: UNITS.m,\n prefix: PREFIXES.SHORT['']\n },\n MASS: {\n unit: UNITS.g,\n prefix: PREFIXES.SHORT.k\n },\n TIME: {\n unit: UNITS.s,\n prefix: PREFIXES.SHORT['']\n },\n CURRENT: {\n unit: UNITS.A,\n prefix: PREFIXES.SHORT['']\n },\n TEMPERATURE: {\n unit: UNITS.K,\n prefix: PREFIXES.SHORT['']\n },\n LUMINOUS_INTENSITY: {\n unit: UNITS.cd,\n prefix: PREFIXES.SHORT['']\n },\n AMOUNT_OF_SUBSTANCE: {\n unit: UNITS.mol,\n prefix: PREFIXES.SHORT['']\n },\n ANGLE: {\n unit: UNITS.rad,\n prefix: PREFIXES.SHORT['']\n },\n BIT: {\n unit: UNITS.bits,\n prefix: PREFIXES.SHORT['']\n },\n // Derived units\n FORCE: {\n unit: UNITS.N,\n prefix: PREFIXES.SHORT['']\n },\n ENERGY: {\n unit: UNITS.J,\n prefix: PREFIXES.SHORT['']\n },\n POWER: {\n unit: UNITS.W,\n prefix: PREFIXES.SHORT['']\n },\n PRESSURE: {\n unit: UNITS.Pa,\n prefix: PREFIXES.SHORT['']\n },\n ELECTRIC_CHARGE: {\n unit: UNITS.C,\n prefix: PREFIXES.SHORT['']\n },\n ELECTRIC_CAPACITANCE: {\n unit: UNITS.F,\n prefix: PREFIXES.SHORT['']\n },\n ELECTRIC_POTENTIAL: {\n unit: UNITS.V,\n prefix: PREFIXES.SHORT['']\n },\n ELECTRIC_RESISTANCE: {\n unit: UNITS.ohm,\n prefix: PREFIXES.SHORT['']\n },\n ELECTRIC_INDUCTANCE: {\n unit: UNITS.H,\n prefix: PREFIXES.SHORT['']\n },\n ELECTRIC_CONDUCTANCE: {\n unit: UNITS.S,\n prefix: PREFIXES.SHORT['']\n },\n MAGNETIC_FLUX: {\n unit: UNITS.Wb,\n prefix: PREFIXES.SHORT['']\n },\n MAGNETIC_FLUX_DENSITY: {\n unit: UNITS.T,\n prefix: PREFIXES.SHORT['']\n },\n FREQUENCY: {\n unit: UNITS.Hz,\n prefix: PREFIXES.SHORT['']\n }\n }\n };\n\n // Clone to create the other unit systems\n UNIT_SYSTEMS.cgs = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));\n UNIT_SYSTEMS.cgs.LENGTH = {\n unit: UNITS.m,\n prefix: PREFIXES.SHORT.c\n };\n UNIT_SYSTEMS.cgs.MASS = {\n unit: UNITS.g,\n prefix: PREFIXES.SHORT['']\n };\n UNIT_SYSTEMS.cgs.FORCE = {\n unit: UNITS.dyn,\n prefix: PREFIXES.SHORT['']\n };\n UNIT_SYSTEMS.cgs.ENERGY = {\n unit: UNITS.erg,\n prefix: PREFIXES.NONE['']\n };\n // there are wholly 4 unique cgs systems for electricity and magnetism,\n // so let's not worry about it unless somebody complains\n\n UNIT_SYSTEMS.us = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));\n UNIT_SYSTEMS.us.LENGTH = {\n unit: UNITS.ft,\n prefix: PREFIXES.NONE['']\n };\n UNIT_SYSTEMS.us.MASS = {\n unit: UNITS.lbm,\n prefix: PREFIXES.NONE['']\n };\n UNIT_SYSTEMS.us.TEMPERATURE = {\n unit: UNITS.degF,\n prefix: PREFIXES.NONE['']\n };\n UNIT_SYSTEMS.us.FORCE = {\n unit: UNITS.lbf,\n prefix: PREFIXES.NONE['']\n };\n UNIT_SYSTEMS.us.ENERGY = {\n unit: UNITS.BTU,\n prefix: PREFIXES.BTU['']\n };\n UNIT_SYSTEMS.us.POWER = {\n unit: UNITS.hp,\n prefix: PREFIXES.NONE['']\n };\n UNIT_SYSTEMS.us.PRESSURE = {\n unit: UNITS.psi,\n prefix: PREFIXES.NONE['']\n };\n\n // Add additional unit systems here.\n\n // Choose a unit system to seed the auto unit system.\n UNIT_SYSTEMS.auto = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));\n\n // Set the current unit system\n var currentUnitSystem = UNIT_SYSTEMS.auto;\n\n /**\n * Set a unit system for formatting derived units.\n * @param {string} [name] The name of the unit system.\n */\n Unit.setUnitSystem = function (name) {\n if (hasOwnProperty(UNIT_SYSTEMS, name)) {\n currentUnitSystem = UNIT_SYSTEMS[name];\n } else {\n throw new Error('Unit system ' + name + ' does not exist. Choices are: ' + Object.keys(UNIT_SYSTEMS).join(', '));\n }\n };\n\n /**\n * Return the current unit system.\n * @return {string} The current unit system.\n */\n Unit.getUnitSystem = function () {\n for (var _key in UNIT_SYSTEMS) {\n if (hasOwnProperty(UNIT_SYSTEMS, _key)) {\n if (UNIT_SYSTEMS[_key] === currentUnitSystem) {\n return _key;\n }\n }\n }\n };\n\n /**\n * Converters to convert from number to an other numeric type like BigNumber\n * or Fraction\n */\n Unit.typeConverters = {\n BigNumber: function BigNumber(x) {\n if (x !== null && x !== void 0 && x.isFraction) return new _BigNumber(x.n).div(x.d).times(x.s);\n return new _BigNumber(x + ''); // stringify to prevent constructor error\n },\n\n Fraction: function Fraction(x) {\n return new _Fraction(x);\n },\n Complex: function Complex(x) {\n return x;\n },\n number: function number(x) {\n if (x !== null && x !== void 0 && x.isFraction) return _number(x);\n return x;\n }\n };\n\n /**\n * Retrieve the right converter function corresponding with this unit's\n * value\n *\n * @memberof Unit\n * @return {Function}\n */\n Unit.prototype._numberConverter = function () {\n var convert = Unit.typeConverters[this.valueType()];\n if (convert) {\n return convert;\n }\n throw new TypeError('Unsupported Unit value type \"' + this.valueType() + '\"');\n };\n\n /**\n * Retrieve the right convertor function corresponding with the type\n * of provided exampleValue.\n *\n * @param {string} type A string 'number', 'BigNumber', or 'Fraction'\n * In case of an unknown type,\n * @return {Function}\n */\n Unit._getNumberConverter = function (type) {\n if (!Unit.typeConverters[type]) {\n throw new TypeError('Unsupported type \"' + type + '\"');\n }\n return Unit.typeConverters[type];\n };\n\n // Add dimensions to each built-in unit\n for (var _key2 in UNITS) {\n if (hasOwnProperty(UNITS, _key2)) {\n var unit = UNITS[_key2];\n unit.dimensions = unit.base.dimensions;\n }\n }\n\n // Create aliases\n for (var _name2 in ALIASES) {\n if (hasOwnProperty(ALIASES, _name2)) {\n var _unit2 = UNITS[ALIASES[_name2]];\n var alias = {};\n for (var _key3 in _unit2) {\n if (hasOwnProperty(_unit2, _key3)) {\n alias[_key3] = _unit2[_key3];\n }\n }\n alias.name = _name2;\n UNITS[_name2] = alias;\n }\n }\n\n /**\n * Checks if a character is a valid latin letter (upper or lower case).\n * Note that this function can be overridden, for example to allow support of other alphabets.\n * @param {string} c Tested character\n */\n Unit.isValidAlpha = function isValidAlpha(c) {\n return /^[a-zA-Z]$/.test(c);\n };\n function assertUnitNameIsValid(name) {\n for (var i = 0; i < name.length; i++) {\n c = name.charAt(i);\n if (i === 0 && !Unit.isValidAlpha(c)) {\n throw new Error('Invalid unit name (must begin with alpha character): \"' + name + '\"');\n }\n if (i > 0 && !(Unit.isValidAlpha(c) || isDigit(c))) {\n throw new Error('Invalid unit name (only alphanumeric characters are allowed): \"' + name + '\"');\n }\n }\n }\n\n /**\n * Wrapper around createUnitSingle.\n * Example:\n * createUnit({\n * foo: { },\n * bar: {\n * definition: 'kg/foo',\n * aliases: ['ba', 'barr', 'bars'],\n * offset: 200\n * },\n * baz: '4 bar'\n * },\n * {\n * override: true\n * })\n * @param {object} obj Object map. Each key becomes a unit which is defined by its value.\n * @param {object} options\n */\n Unit.createUnit = function (obj, options) {\n if (typeof obj !== 'object') {\n throw new TypeError(\"createUnit expects first parameter to be of type 'Object'\");\n }\n\n // Remove all units and aliases we are overriding\n if (options && options.override) {\n for (var _key4 in obj) {\n if (hasOwnProperty(obj, _key4)) {\n Unit.deleteUnit(_key4);\n }\n if (obj[_key4].aliases) {\n for (var i = 0; i < obj[_key4].aliases.length; i++) {\n Unit.deleteUnit(obj[_key4].aliases[i]);\n }\n }\n }\n }\n\n // TODO: traverse multiple times until all units have been added\n var lastUnit;\n for (var _key5 in obj) {\n if (hasOwnProperty(obj, _key5)) {\n lastUnit = Unit.createUnitSingle(_key5, obj[_key5]);\n }\n }\n return lastUnit;\n };\n\n /**\n * Create a user-defined unit and register it with the Unit type.\n * Example:\n * createUnitSingle('knot', '0.514444444 m/s')\n * createUnitSingle('acre', new Unit(43560, 'ft^2'))\n *\n * @param {string} name The name of the new unit. Must be unique. Example: 'knot'\n * @param {string, Unit, Object} definition Definition of the unit in terms\n * of existing units. For example, '0.514444444 m / s'. Can be a Unit, a string,\n * or an Object. If an Object, may have the following properties:\n * - definition {string|Unit} The definition of this unit.\n * - prefixes {string} \"none\", \"short\", \"long\", \"binary_short\", or \"binary_long\".\n * The default is \"none\".\n * - aliases {Array} Array of strings. Example: ['knots', 'kt', 'kts']\n * - offset {Numeric} An offset to apply when converting from the unit. For\n * example, the offset for celsius is 273.15 and the offset for farhenheit\n * is 459.67. Default is 0.\n * - baseName {string} If the unit's dimension does not match that of any other\n * base unit, the name of the newly create base unit. Otherwise, this property\n * has no effect.\n *\n * @return {Unit}\n */\n Unit.createUnitSingle = function (name, obj) {\n if (typeof obj === 'undefined' || obj === null) {\n obj = {};\n }\n if (typeof name !== 'string') {\n throw new TypeError(\"createUnitSingle expects first parameter to be of type 'string'\");\n }\n\n // Check collisions with existing units\n if (hasOwnProperty(UNITS, name)) {\n throw new Error('Cannot create unit \"' + name + '\": a unit with that name already exists');\n }\n\n // TODO: Validate name for collisions with other built-in functions (like abs or cos, for example), and for acceptable variable names. For example, '42' is probably not a valid unit. Nor is '%', since it is also an operator.\n\n assertUnitNameIsValid(name);\n var defUnit = null; // The Unit from which the new unit will be created.\n var aliases = [];\n var offset = 0;\n var definition;\n var prefixes;\n var baseName;\n if (obj && obj.type === 'Unit') {\n defUnit = obj.clone();\n } else if (typeof obj === 'string') {\n if (obj !== '') {\n definition = obj;\n }\n } else if (typeof obj === 'object') {\n definition = obj.definition;\n prefixes = obj.prefixes;\n offset = obj.offset;\n baseName = obj.baseName;\n if (obj.aliases) {\n aliases = obj.aliases.valueOf(); // aliases could be a Matrix, so convert to Array\n }\n } else {\n throw new TypeError('Cannot create unit \"' + name + '\" from \"' + obj.toString() + '\": expecting \"string\" or \"Unit\" or \"Object\"');\n }\n if (aliases) {\n for (var i = 0; i < aliases.length; i++) {\n if (hasOwnProperty(UNITS, aliases[i])) {\n throw new Error('Cannot create alias \"' + aliases[i] + '\": a unit with that name already exists');\n }\n }\n }\n if (definition && typeof definition === 'string' && !defUnit) {\n try {\n defUnit = Unit.parse(definition, {\n allowNoUnits: true\n });\n } catch (ex) {\n ex.message = 'Could not create unit \"' + name + '\" from \"' + definition + '\": ' + ex.message;\n throw ex;\n }\n } else if (definition && definition.type === 'Unit') {\n defUnit = definition.clone();\n }\n aliases = aliases || [];\n offset = offset || 0;\n if (prefixes && prefixes.toUpperCase) {\n prefixes = PREFIXES[prefixes.toUpperCase()] || PREFIXES.NONE;\n } else {\n prefixes = PREFIXES.NONE;\n }\n\n // If defUnit is null, it is because the user did not\n // specify a defintion. So create a new base dimension.\n var newUnit = {};\n if (!defUnit) {\n // Add a new base dimension\n baseName = baseName || name + '_STUFF'; // foo --> foo_STUFF, or the essence of foo\n if (BASE_DIMENSIONS.indexOf(baseName) >= 0) {\n throw new Error('Cannot create new base unit \"' + name + '\": a base unit with that name already exists (and cannot be overridden)');\n }\n BASE_DIMENSIONS.push(baseName);\n\n // Push 0 onto existing base units\n for (var b in BASE_UNITS) {\n if (hasOwnProperty(BASE_UNITS, b)) {\n BASE_UNITS[b].dimensions[BASE_DIMENSIONS.length - 1] = 0;\n }\n }\n\n // Add the new base unit\n var newBaseUnit = {\n dimensions: []\n };\n for (var _i6 = 0; _i6 < BASE_DIMENSIONS.length; _i6++) {\n newBaseUnit.dimensions[_i6] = 0;\n }\n newBaseUnit.dimensions[BASE_DIMENSIONS.length - 1] = 1;\n newBaseUnit.key = baseName;\n BASE_UNITS[baseName] = newBaseUnit;\n newUnit = {\n name,\n value: 1,\n dimensions: BASE_UNITS[baseName].dimensions.slice(0),\n prefixes,\n offset,\n base: BASE_UNITS[baseName]\n };\n currentUnitSystem[baseName] = {\n unit: newUnit,\n prefix: PREFIXES.NONE['']\n };\n } else {\n newUnit = {\n name,\n value: defUnit.value,\n dimensions: defUnit.dimensions.slice(0),\n prefixes,\n offset\n };\n\n // Create a new base if no matching base exists\n var anyMatch = false;\n for (var _i7 in BASE_UNITS) {\n if (hasOwnProperty(BASE_UNITS, _i7)) {\n var match = true;\n for (var j = 0; j < BASE_DIMENSIONS.length; j++) {\n if (Math.abs((newUnit.dimensions[j] || 0) - (BASE_UNITS[_i7].dimensions[j] || 0)) > 1e-12) {\n match = false;\n break;\n }\n }\n if (match) {\n anyMatch = true;\n newUnit.base = BASE_UNITS[_i7];\n break;\n }\n }\n }\n if (!anyMatch) {\n baseName = baseName || name + '_STUFF'; // foo --> foo_STUFF, or the essence of foo\n // Add the new base unit\n var _newBaseUnit = {\n dimensions: defUnit.dimensions.slice(0)\n };\n _newBaseUnit.key = baseName;\n BASE_UNITS[baseName] = _newBaseUnit;\n currentUnitSystem[baseName] = {\n unit: newUnit,\n prefix: PREFIXES.NONE['']\n };\n newUnit.base = BASE_UNITS[baseName];\n }\n }\n Unit.UNITS[name] = newUnit;\n for (var _i8 = 0; _i8 < aliases.length; _i8++) {\n var aliasName = aliases[_i8];\n var _alias = {};\n for (var _key6 in newUnit) {\n if (hasOwnProperty(newUnit, _key6)) {\n _alias[_key6] = newUnit[_key6];\n }\n }\n _alias.name = aliasName;\n Unit.UNITS[aliasName] = _alias;\n }\n // delete the memoization cache, since adding a new unit to the array\n // invalidates all old results\n delete _findUnit.cache;\n return new Unit(null, name);\n };\n Unit.deleteUnit = function (name) {\n delete Unit.UNITS[name];\n };\n\n // expose arrays with prefixes, dimensions, units, systems\n Unit.PREFIXES = PREFIXES;\n Unit.BASE_DIMENSIONS = BASE_DIMENSIONS;\n Unit.BASE_UNITS = BASE_UNITS;\n Unit.UNIT_SYSTEMS = UNIT_SYSTEMS;\n Unit.UNITS = UNITS;\n return Unit;\n}, {\n isClass: true\n});","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","import { clone as objectClone } from '../../utils/object.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'clone';\nvar dependencies = ['typed'];\nexport var createClone = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Clone an object. Will make a deep copy of the data.\n *\n * Syntax:\n *\n * math.clone(x)\n *\n * Examples:\n *\n * math.clone(3.5) // returns number 3.5\n * math.clone(math.complex('2-4i')) // returns Complex 2 - 4i\n * math.clone(math.unit(45, 'deg')) // returns Unit 45 deg\n * math.clone([[1, 2], [3, 4]]) // returns Array [[1, 2], [3, 4]]\n * math.clone(\"hello world\") // returns string \"hello world\"\n *\n * @param {*} x Object to be cloned\n * @return {*} A clone of object x\n */\n return typed(name, {\n any: objectClone\n });\n});","'use strict';\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimStart, trimLeft }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\nmodule.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n","/**\n * lodash 3.0.3 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\n * as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && objectToString.call(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n","import { factory } from '../../utils/factory.js';\nvar name = 'ResultSet';\nvar dependencies = [];\nexport var createResultSet = /* #__PURE__ */factory(name, dependencies, () => {\n /**\n * A ResultSet contains a list or results\n * @class ResultSet\n * @param {Array} entries\n * @constructor ResultSet\n */\n function ResultSet(entries) {\n if (!(this instanceof ResultSet)) {\n throw new SyntaxError('Constructor must be called with the new operator');\n }\n this.entries = entries || [];\n }\n\n /**\n * Attach type information\n */\n ResultSet.prototype.type = 'ResultSet';\n ResultSet.prototype.isResultSet = true;\n\n /**\n * Returns the array with results hold by this ResultSet\n * @memberof ResultSet\n * @returns {Array} entries\n */\n ResultSet.prototype.valueOf = function () {\n return this.entries;\n };\n\n /**\n * Returns the stringified results of the ResultSet\n * @memberof ResultSet\n * @returns {string} string\n */\n ResultSet.prototype.toString = function () {\n return '[' + this.entries.join(', ') + ']';\n };\n\n /**\n * Get a JSON representation of the ResultSet\n * @memberof ResultSet\n * @returns {Object} Returns a JSON object structured as:\n * `{\"mathjs\": \"ResultSet\", \"entries\": [...]}`\n */\n ResultSet.prototype.toJSON = function () {\n return {\n mathjs: 'ResultSet',\n entries: this.entries\n };\n };\n\n /**\n * Instantiate a ResultSet from a JSON object\n * @memberof ResultSet\n * @param {Object} json A JSON object structured as:\n * `{\"mathjs\": \"ResultSet\", \"entries\": [...]}`\n * @return {ResultSet}\n */\n ResultSet.fromJSON = function (json) {\n return new ResultSet(json.entries);\n };\n return ResultSet;\n}, {\n isClass: true\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","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\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","import { factory } from '../../utils/factory.js';\nimport { isBigNumber, isComplex, isFraction } from '../../utils/is.js';\nimport { cbrtNumber } from '../../plain/number/index.js';\nvar name = 'cbrt';\nvar dependencies = ['config', 'typed', 'isNegative', 'unaryMinus', 'matrix', 'Complex', 'BigNumber', 'Fraction'];\nexport var createCbrt = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n config,\n typed,\n isNegative,\n unaryMinus,\n matrix,\n Complex,\n BigNumber,\n Fraction\n } = _ref;\n /**\n * Calculate the cubic root of a value.\n *\n * To avoid confusion with the matrix cube root, this function does not\n * apply to matrices. For a matrix, to take the cube root elementwise,\n * see the examples.\n *\n * Syntax:\n *\n * math.cbrt(x)\n * math.cbrt(x, allRoots)\n *\n * Examples:\n *\n * math.cbrt(27) // returns 3\n * math.cube(3) // returns 27\n * math.cbrt(-64) // returns -4\n * math.cbrt(math.unit('27 m^3')) // returns Unit 3 m\n * math.map([27, 64, 125], x => math.cbrt(x)) // returns [3, 4, 5]\n *\n * const x = math.complex('8i')\n * math.cbrt(x) // returns Complex 1.7320508075689 + i\n * math.cbrt(x, true) // returns Matrix [\n * // 1.7320508075689 + i\n * // -1.7320508075689 + i\n * // -2i\n * // ]\n *\n * See also:\n *\n * square, sqrt, cube\n *\n * @param {number | BigNumber | Complex | Unit} x\n * Value for which to calculate the cubic root.\n * @param {boolean} [allRoots] Optional, false by default. Only applicable\n * when `x` is a number or complex number. If true, all complex\n * roots are returned, if false (default) the principal root is\n * returned.\n * @return {number | BigNumber | Complex | Unit}\n * Returns the cubic root of `x`\n */\n return typed(name, {\n number: cbrtNumber,\n // note: signature 'number, boolean' is also supported,\n // created by typed as it knows how to convert number to Complex\n\n Complex: _cbrtComplex,\n 'Complex, boolean': _cbrtComplex,\n BigNumber: function BigNumber(x) {\n return x.cbrt();\n },\n Unit: _cbrtUnit\n });\n\n /**\n * Calculate the cubic root for a complex number\n * @param {Complex} x\n * @param {boolean} [allRoots] If true, the function will return an array\n * with all three roots. If false or undefined,\n * the principal root is returned.\n * @returns {Complex | Array. | Matrix.} Returns the cubic root(s) of x\n * @private\n */\n function _cbrtComplex(x, allRoots) {\n // https://www.wikiwand.com/en/Cube_root#/Complex_numbers\n\n var arg3 = x.arg() / 3;\n var abs = x.abs();\n\n // principal root:\n var principal = new Complex(cbrtNumber(abs), 0).mul(new Complex(0, arg3).exp());\n if (allRoots) {\n var all = [principal, new Complex(cbrtNumber(abs), 0).mul(new Complex(0, arg3 + Math.PI * 2 / 3).exp()), new Complex(cbrtNumber(abs), 0).mul(new Complex(0, arg3 - Math.PI * 2 / 3).exp())];\n return config.matrix === 'Array' ? all : matrix(all);\n } else {\n return principal;\n }\n }\n\n /**\n * Calculate the cubic root for a Unit\n * @param {Unit} x\n * @return {Unit} Returns the cubic root of x\n * @private\n */\n function _cbrtUnit(x) {\n if (x.value && isComplex(x.value)) {\n var result = x.clone();\n result.value = 1.0;\n result = result.pow(1.0 / 3); // Compute the units\n result.value = _cbrtComplex(x.value); // Compute the value\n return result;\n } else {\n var negate = isNegative(x.value);\n if (negate) {\n x.value = unaryMinus(x.value);\n }\n\n // TODO: create a helper function for this\n var third;\n if (isBigNumber(x.value)) {\n third = new BigNumber(1).div(3);\n } else if (isFraction(x.value)) {\n third = new Fraction(1, 3);\n } else {\n third = 1 / 3;\n }\n var _result = x.pow(third);\n if (negate) {\n _result.value = unaryMinus(_result.value);\n }\n return _result;\n }\n }\n});","import { factory } from '../../utils/factory.js';\nimport { gammaG, gammaNumber, gammaP } from '../../plain/number/index.js';\nvar name = 'gamma';\nvar dependencies = ['typed', 'config', 'multiplyScalar', 'pow', 'BigNumber', 'Complex'];\nexport var createGamma = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n multiplyScalar,\n pow,\n BigNumber: _BigNumber,\n Complex\n } = _ref;\n /**\n * Compute the gamma function of a value using Lanczos approximation for\n * small values, and an extended Stirling approximation for large values.\n *\n * To avoid confusion with the matrix Gamma function, this function does\n * not apply to matrices.\n *\n * Syntax:\n *\n * math.gamma(n)\n *\n * Examples:\n *\n * math.gamma(5) // returns 24\n * math.gamma(-0.5) // returns -3.5449077018110335\n * math.gamma(math.i) // returns -0.15494982830180973 - 0.49801566811835596i\n *\n * See also:\n *\n * combinations, factorial, permutations\n *\n * @param {number | BigNumber | Complex} n A real or complex number\n * @return {number | BigNumber | Complex} The gamma of `n`\n */\n\n function gammaComplex(n) {\n if (n.im === 0) {\n return gammaNumber(n.re);\n }\n\n // Lanczos approximation doesn't work well with real part lower than 0.5\n // So reflection formula is required\n if (n.re < 0.5) {\n // Euler's reflection formula\n // gamma(1-z) * gamma(z) = PI / sin(PI * z)\n // real part of Z should not be integer [sin(PI) == 0 -> 1/0 - undefined]\n // thanks to imperfect sin implementation sin(PI * n) != 0\n // we can safely use it anyway\n var _t = new Complex(1 - n.re, -n.im);\n var r = new Complex(Math.PI * n.re, Math.PI * n.im);\n return new Complex(Math.PI).div(r.sin()).div(gammaComplex(_t));\n }\n\n // Lanczos approximation\n // z -= 1\n n = new Complex(n.re - 1, n.im);\n\n // x = gammaPval[0]\n var x = new Complex(gammaP[0], 0);\n // for (i, gammaPval) in enumerate(gammaP):\n for (var i = 1; i < gammaP.length; ++i) {\n // x += gammaPval / (z + i)\n var gammaPval = new Complex(gammaP[i], 0);\n x = x.add(gammaPval.div(n.add(i)));\n }\n // t = z + gammaG + 0.5\n var t = new Complex(n.re + gammaG + 0.5, n.im);\n\n // y = sqrt(2 * pi) * t ** (z + 0.5) * exp(-t) * x\n var twoPiSqrt = Math.sqrt(2 * Math.PI);\n var tpow = t.pow(n.add(0.5));\n var expt = t.neg().exp();\n\n // y = [x] * [sqrt(2 * pi)] * [t ** (z + 0.5)] * [exp(-t)]\n return x.mul(twoPiSqrt).mul(tpow).mul(expt);\n }\n return typed(name, {\n number: gammaNumber,\n Complex: gammaComplex,\n BigNumber: function BigNumber(n) {\n if (n.isInteger()) {\n return n.isNegative() || n.isZero() ? new _BigNumber(Infinity) : bigFactorial(n.minus(1));\n }\n if (!n.isFinite()) {\n return new _BigNumber(n.isNegative() ? NaN : Infinity);\n }\n throw new Error('Integer BigNumber expected');\n }\n });\n\n /**\n * Calculate factorial for a BigNumber\n * @param {BigNumber} n\n * @returns {BigNumber} Returns the factorial of n\n */\n function bigFactorial(n) {\n if (n < 8) {\n return new _BigNumber([1, 1, 2, 6, 24, 120, 720, 5040][n]);\n }\n var precision = config.precision + (Math.log(n.toNumber()) | 0);\n var Big = _BigNumber.clone({\n precision\n });\n if (n % 2 === 1) {\n return n.times(bigFactorial(new _BigNumber(n - 1)));\n }\n var p = n;\n var prod = new Big(n);\n var sum = n.toNumber();\n while (p > 2) {\n p -= 2;\n sum += p;\n prod = prod.times(sum);\n }\n return new _BigNumber(prod.toPrecision(_BigNumber.precision));\n }\n});","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\n\nfunction base64url(string, encoding) {\n return Buffer\n .from(string, encoding)\n .toString('base64')\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction jwsSecuredInput(header, payload, encoding) {\n encoding = encoding || 'utf8';\n var encodedHeader = base64url(toString(header), 'binary');\n var encodedPayload = base64url(toString(payload), encoding);\n return util.format('%s.%s', encodedHeader, encodedPayload);\n}\n\nfunction jwsSign(opts) {\n var header = opts.header;\n var payload = opts.payload;\n var secretOrKey = opts.secret || opts.privateKey;\n var encoding = opts.encoding;\n var algo = jwa(header.alg);\n var securedInput = jwsSecuredInput(header, payload, encoding);\n var signature = algo.sign(securedInput, secretOrKey);\n return util.format('%s.%s', securedInput, signature);\n}\n\nfunction SignStream(opts) {\n var secret = opts.secret||opts.privateKey||opts.key;\n var secretStream = new DataStream(secret);\n this.readable = true;\n this.header = opts.header;\n this.encoding = opts.encoding;\n this.secret = this.privateKey = this.key = secretStream;\n this.payload = new DataStream(opts.payload);\n this.secret.once('close', function () {\n if (!this.payload.writable && this.readable)\n this.sign();\n }.bind(this));\n\n this.payload.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.sign();\n }.bind(this));\n}\nutil.inherits(SignStream, Stream);\n\nSignStream.prototype.sign = function sign() {\n try {\n var signature = jwsSign({\n header: this.header,\n payload: this.payload.buffer,\n secret: this.secret.buffer,\n encoding: this.encoding\n });\n this.emit('done', signature);\n this.emit('data', signature);\n this.emit('end');\n this.readable = false;\n return signature;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nSignStream.sign = jwsSign;\n\nmodule.exports = SignStream;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true, forced: global.globalThis !== global }, {\n globalThis: global\n});\n","import { factory } from '../../utils/factory.js';\nimport { createTrigUnit } from './trigUnit.js';\nvar name = 'cos';\nvar dependencies = ['typed'];\nexport var createCos = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n var trigUnit = createTrigUnit({\n typed\n });\n\n /**\n * Calculate the cosine of a value.\n *\n * To avoid confusion with the matrix cosine, this function does not\n * apply to matrices.\n *\n * Syntax:\n *\n * math.cos(x)\n *\n * Examples:\n *\n * math.cos(2) // returns number -0.4161468365471422\n * math.cos(math.pi / 4) // returns number 0.7071067811865475\n * math.cos(math.unit(180, 'deg')) // returns number -1\n * math.cos(math.unit(60, 'deg')) // returns number 0.5\n *\n * const angle = 0.2\n * math.pow(math.sin(angle), 2) + math.pow(math.cos(angle), 2) // returns number ~1\n *\n * See also:\n *\n * cos, tan\n *\n * @param {number | BigNumber | Complex | Unit} x Function input\n * @return {number | BigNumber | Complex} Cosine of x\n */\n return typed(name, {\n number: Math.cos,\n 'Complex | BigNumber': x => x.cos()\n }, trigUnit);\n});","import { assertIs, error } from \"../utils\";\nexport var RotationTypes;\n(function (RotationTypes) {\n RotationTypes[\"Degrees\"] = \"degrees\";\n RotationTypes[\"Radians\"] = \"radians\";\n})(RotationTypes || (RotationTypes = {}));\nexport var radians = function (radianAngle) {\n assertIs(radianAngle, 'radianAngle', ['number']);\n return { type: RotationTypes.Radians, angle: radianAngle };\n};\nexport var degrees = function (degreeAngle) {\n assertIs(degreeAngle, 'degreeAngle', ['number']);\n return { type: RotationTypes.Degrees, angle: degreeAngle };\n};\nvar Radians = RotationTypes.Radians, Degrees = RotationTypes.Degrees;\nexport var degreesToRadians = function (degree) { return (degree * Math.PI) / 180; };\nexport var radiansToDegrees = function (radian) { return (radian * 180) / Math.PI; };\n// prettier-ignore\nexport var toRadians = function (rotation) {\n return rotation.type === Radians ? rotation.angle\n : rotation.type === Degrees ? degreesToRadians(rotation.angle)\n : error(\"Invalid rotation: \" + JSON.stringify(rotation));\n};\n// prettier-ignore\nexport var toDegrees = function (rotation) {\n return rotation.type === Radians ? radiansToDegrees(rotation.angle)\n : rotation.type === Degrees ? rotation.angle\n : error(\"Invalid rotation: \" + JSON.stringify(rotation));\n};\nexport var reduceRotation = function (degreeAngle) {\n if (degreeAngle === void 0) { degreeAngle = 0; }\n var quadrants = (degreeAngle / 90) % 4;\n if (quadrants === 0)\n return 0;\n if (quadrants === 1)\n return 90;\n if (quadrants === 2)\n return 180;\n if (quadrants === 3)\n return 270;\n return 0; // `degreeAngle` is not a multiple of 90\n};\nexport var adjustDimsForRotation = function (dims, degreeAngle) {\n if (degreeAngle === void 0) { degreeAngle = 0; }\n var rotation = reduceRotation(degreeAngle);\n return rotation === 90 || rotation === 270\n ? { width: dims.height, height: dims.width }\n : { width: dims.width, height: dims.height };\n};\nexport var rotateRectangle = function (rectangle, borderWidth, degreeAngle) {\n if (borderWidth === void 0) { borderWidth = 0; }\n if (degreeAngle === void 0) { degreeAngle = 0; }\n var x = rectangle.x, y = rectangle.y, w = rectangle.width, h = rectangle.height;\n var r = reduceRotation(degreeAngle);\n var b = borderWidth / 2;\n // prettier-ignore\n if (r === 0)\n return { x: x - b, y: y - b, width: w, height: h };\n else if (r === 90)\n return { x: x - h + b, y: y - b, width: h, height: w };\n else if (r === 180)\n return { x: x - w + b, y: y - h + b, width: w, height: h };\n else if (r === 270)\n return { x: x - b, y: y - w + b, width: h, height: w };\n else\n return { x: x - b, y: y - b, width: w, height: h };\n};\n//# sourceMappingURL=rotations.js.map","import { PDFName, PDFNumber } from \"../core\";\nexport var asPDFName = function (name) {\n return name instanceof PDFName ? name : PDFName.of(name);\n};\nexport var asPDFNumber = function (num) {\n return num instanceof PDFNumber ? num : PDFNumber.of(num);\n};\nexport var asNumber = function (num) {\n return num instanceof PDFNumber ? num.asNumber() : num;\n};\n//# sourceMappingURL=objects.js.map","import { asNumber, asPDFName, asPDFNumber } from \"./objects\";\nimport { degreesToRadians } from \"./rotations\";\nimport { PDFOperator, PDFOperatorNames as Ops, } from \"../core\";\n/* ==================== Clipping Path Operators ==================== */\nexport var clip = function () { return PDFOperator.of(Ops.ClipNonZero); };\nexport var clipEvenOdd = function () { return PDFOperator.of(Ops.ClipEvenOdd); };\n/* ==================== Graphics State Operators ==================== */\nvar cos = Math.cos, sin = Math.sin, tan = Math.tan;\nexport var concatTransformationMatrix = function (a, b, c, d, e, f) {\n return PDFOperator.of(Ops.ConcatTransformationMatrix, [\n asPDFNumber(a),\n asPDFNumber(b),\n asPDFNumber(c),\n asPDFNumber(d),\n asPDFNumber(e),\n asPDFNumber(f),\n ]);\n};\nexport var translate = function (xPos, yPos) {\n return concatTransformationMatrix(1, 0, 0, 1, xPos, yPos);\n};\nexport var scale = function (xPos, yPos) {\n return concatTransformationMatrix(xPos, 0, 0, yPos, 0, 0);\n};\nexport var rotateRadians = function (angle) {\n return concatTransformationMatrix(cos(asNumber(angle)), sin(asNumber(angle)), -sin(asNumber(angle)), cos(asNumber(angle)), 0, 0);\n};\nexport var rotateDegrees = function (angle) {\n return rotateRadians(degreesToRadians(asNumber(angle)));\n};\nexport var skewRadians = function (xSkewAngle, ySkewAngle) {\n return concatTransformationMatrix(1, tan(asNumber(xSkewAngle)), tan(asNumber(ySkewAngle)), 1, 0, 0);\n};\nexport var skewDegrees = function (xSkewAngle, ySkewAngle) {\n return skewRadians(degreesToRadians(asNumber(xSkewAngle)), degreesToRadians(asNumber(ySkewAngle)));\n};\nexport var setDashPattern = function (dashArray, dashPhase) {\n return PDFOperator.of(Ops.SetLineDashPattern, [\n \"[\" + dashArray.map(asPDFNumber).join(' ') + \"]\",\n asPDFNumber(dashPhase),\n ]);\n};\nexport var restoreDashPattern = function () { return setDashPattern([], 0); };\nexport var LineCapStyle;\n(function (LineCapStyle) {\n LineCapStyle[LineCapStyle[\"Butt\"] = 0] = \"Butt\";\n LineCapStyle[LineCapStyle[\"Round\"] = 1] = \"Round\";\n LineCapStyle[LineCapStyle[\"Projecting\"] = 2] = \"Projecting\";\n})(LineCapStyle || (LineCapStyle = {}));\nexport var setLineCap = function (style) {\n return PDFOperator.of(Ops.SetLineCapStyle, [asPDFNumber(style)]);\n};\nexport var LineJoinStyle;\n(function (LineJoinStyle) {\n LineJoinStyle[LineJoinStyle[\"Miter\"] = 0] = \"Miter\";\n LineJoinStyle[LineJoinStyle[\"Round\"] = 1] = \"Round\";\n LineJoinStyle[LineJoinStyle[\"Bevel\"] = 2] = \"Bevel\";\n})(LineJoinStyle || (LineJoinStyle = {}));\nexport var setLineJoin = function (style) {\n return PDFOperator.of(Ops.SetLineJoinStyle, [asPDFNumber(style)]);\n};\nexport var setGraphicsState = function (state) {\n return PDFOperator.of(Ops.SetGraphicsStateParams, [asPDFName(state)]);\n};\nexport var pushGraphicsState = function () { return PDFOperator.of(Ops.PushGraphicsState); };\nexport var popGraphicsState = function () { return PDFOperator.of(Ops.PopGraphicsState); };\nexport var setLineWidth = function (width) {\n return PDFOperator.of(Ops.SetLineWidth, [asPDFNumber(width)]);\n};\n/* ==================== Path Construction Operators ==================== */\nexport var appendBezierCurve = function (x1, y1, x2, y2, x3, y3) {\n return PDFOperator.of(Ops.AppendBezierCurve, [\n asPDFNumber(x1),\n asPDFNumber(y1),\n asPDFNumber(x2),\n asPDFNumber(y2),\n asPDFNumber(x3),\n asPDFNumber(y3),\n ]);\n};\nexport var appendQuadraticCurve = function (x1, y1, x2, y2) {\n return PDFOperator.of(Ops.CurveToReplicateInitialPoint, [\n asPDFNumber(x1),\n asPDFNumber(y1),\n asPDFNumber(x2),\n asPDFNumber(y2),\n ]);\n};\nexport var closePath = function () { return PDFOperator.of(Ops.ClosePath); };\nexport var moveTo = function (xPos, yPos) {\n return PDFOperator.of(Ops.MoveTo, [asPDFNumber(xPos), asPDFNumber(yPos)]);\n};\nexport var lineTo = function (xPos, yPos) {\n return PDFOperator.of(Ops.LineTo, [asPDFNumber(xPos), asPDFNumber(yPos)]);\n};\n/**\n * @param xPos x coordinate for the lower left corner of the rectangle\n * @param yPos y coordinate for the lower left corner of the rectangle\n * @param width width of the rectangle\n * @param height height of the rectangle\n */\nexport var rectangle = function (xPos, yPos, width, height) {\n return PDFOperator.of(Ops.AppendRectangle, [\n asPDFNumber(xPos),\n asPDFNumber(yPos),\n asPDFNumber(width),\n asPDFNumber(height),\n ]);\n};\n/**\n * @param xPos x coordinate for the lower left corner of the square\n * @param yPos y coordinate for the lower left corner of the square\n * @param size width and height of the square\n */\nexport var square = function (xPos, yPos, size) {\n return rectangle(xPos, yPos, size, size);\n};\n/* ==================== Path Painting Operators ==================== */\nexport var stroke = function () { return PDFOperator.of(Ops.StrokePath); };\nexport var fill = function () { return PDFOperator.of(Ops.FillNonZero); };\nexport var fillAndStroke = function () { return PDFOperator.of(Ops.FillNonZeroAndStroke); };\nexport var endPath = function () { return PDFOperator.of(Ops.EndPath); };\n/* ==================== Text Positioning Operators ==================== */\nexport var nextLine = function () { return PDFOperator.of(Ops.NextLine); };\nexport var moveText = function (x, y) {\n return PDFOperator.of(Ops.MoveText, [asPDFNumber(x), asPDFNumber(y)]);\n};\n/* ==================== Text Showing Operators ==================== */\nexport var showText = function (text) {\n return PDFOperator.of(Ops.ShowText, [text]);\n};\n/* ==================== Text State Operators ==================== */\nexport var beginText = function () { return PDFOperator.of(Ops.BeginText); };\nexport var endText = function () { return PDFOperator.of(Ops.EndText); };\nexport var setFontAndSize = function (name, size) { return PDFOperator.of(Ops.SetFontAndSize, [asPDFName(name), asPDFNumber(size)]); };\nexport var setCharacterSpacing = function (spacing) {\n return PDFOperator.of(Ops.SetCharacterSpacing, [asPDFNumber(spacing)]);\n};\nexport var setWordSpacing = function (spacing) {\n return PDFOperator.of(Ops.SetWordSpacing, [asPDFNumber(spacing)]);\n};\n/** @param squeeze horizontal character spacing */\nexport var setCharacterSqueeze = function (squeeze) {\n return PDFOperator.of(Ops.SetTextHorizontalScaling, [asPDFNumber(squeeze)]);\n};\nexport var setLineHeight = function (lineHeight) {\n return PDFOperator.of(Ops.SetTextLineHeight, [asPDFNumber(lineHeight)]);\n};\nexport var setTextRise = function (rise) {\n return PDFOperator.of(Ops.SetTextRise, [asPDFNumber(rise)]);\n};\nexport var TextRenderingMode;\n(function (TextRenderingMode) {\n TextRenderingMode[TextRenderingMode[\"Fill\"] = 0] = \"Fill\";\n TextRenderingMode[TextRenderingMode[\"Outline\"] = 1] = \"Outline\";\n TextRenderingMode[TextRenderingMode[\"FillAndOutline\"] = 2] = \"FillAndOutline\";\n TextRenderingMode[TextRenderingMode[\"Invisible\"] = 3] = \"Invisible\";\n TextRenderingMode[TextRenderingMode[\"FillAndClip\"] = 4] = \"FillAndClip\";\n TextRenderingMode[TextRenderingMode[\"OutlineAndClip\"] = 5] = \"OutlineAndClip\";\n TextRenderingMode[TextRenderingMode[\"FillAndOutlineAndClip\"] = 6] = \"FillAndOutlineAndClip\";\n TextRenderingMode[TextRenderingMode[\"Clip\"] = 7] = \"Clip\";\n})(TextRenderingMode || (TextRenderingMode = {}));\nexport var setTextRenderingMode = function (mode) {\n return PDFOperator.of(Ops.SetTextRenderingMode, [asPDFNumber(mode)]);\n};\nexport var setTextMatrix = function (a, b, c, d, e, f) {\n return PDFOperator.of(Ops.SetTextMatrix, [\n asPDFNumber(a),\n asPDFNumber(b),\n asPDFNumber(c),\n asPDFNumber(d),\n asPDFNumber(e),\n asPDFNumber(f),\n ]);\n};\nexport var rotateAndSkewTextRadiansAndTranslate = function (rotationAngle, xSkewAngle, ySkewAngle, x, y) {\n return setTextMatrix(cos(asNumber(rotationAngle)), sin(asNumber(rotationAngle)) + tan(asNumber(xSkewAngle)), -sin(asNumber(rotationAngle)) + tan(asNumber(ySkewAngle)), cos(asNumber(rotationAngle)), x, y);\n};\nexport var rotateAndSkewTextDegreesAndTranslate = function (rotationAngle, xSkewAngle, ySkewAngle, x, y) {\n return rotateAndSkewTextRadiansAndTranslate(degreesToRadians(asNumber(rotationAngle)), degreesToRadians(asNumber(xSkewAngle)), degreesToRadians(asNumber(ySkewAngle)), x, y);\n};\n/* ==================== XObject Operator ==================== */\nexport var drawObject = function (name) {\n return PDFOperator.of(Ops.DrawObject, [asPDFName(name)]);\n};\n/* ==================== Color Operators ==================== */\nexport var setFillingGrayscaleColor = function (gray) {\n return PDFOperator.of(Ops.NonStrokingColorGray, [asPDFNumber(gray)]);\n};\nexport var setStrokingGrayscaleColor = function (gray) {\n return PDFOperator.of(Ops.StrokingColorGray, [asPDFNumber(gray)]);\n};\nexport var setFillingRgbColor = function (red, green, blue) {\n return PDFOperator.of(Ops.NonStrokingColorRgb, [\n asPDFNumber(red),\n asPDFNumber(green),\n asPDFNumber(blue),\n ]);\n};\nexport var setStrokingRgbColor = function (red, green, blue) {\n return PDFOperator.of(Ops.StrokingColorRgb, [\n asPDFNumber(red),\n asPDFNumber(green),\n asPDFNumber(blue),\n ]);\n};\nexport var setFillingCmykColor = function (cyan, magenta, yellow, key) {\n return PDFOperator.of(Ops.NonStrokingColorCmyk, [\n asPDFNumber(cyan),\n asPDFNumber(magenta),\n asPDFNumber(yellow),\n asPDFNumber(key),\n ]);\n};\nexport var setStrokingCmykColor = function (cyan, magenta, yellow, key) {\n return PDFOperator.of(Ops.StrokingColorCmyk, [\n asPDFNumber(cyan),\n asPDFNumber(magenta),\n asPDFNumber(yellow),\n asPDFNumber(key),\n ]);\n};\n/* ==================== Marked Content Operators ==================== */\nexport var beginMarkedContent = function (tag) {\n return PDFOperator.of(Ops.BeginMarkedContent, [asPDFName(tag)]);\n};\nexport var endMarkedContent = function () { return PDFOperator.of(Ops.EndMarkedContent); };\n//# sourceMappingURL=operators.js.map","import { setFillingCmykColor, setFillingGrayscaleColor, setFillingRgbColor, setStrokingCmykColor, setStrokingGrayscaleColor, setStrokingRgbColor, } from \"./operators\";\nimport { assertRange, error } from \"../utils\";\nexport var ColorTypes;\n(function (ColorTypes) {\n ColorTypes[\"Grayscale\"] = \"Grayscale\";\n ColorTypes[\"RGB\"] = \"RGB\";\n ColorTypes[\"CMYK\"] = \"CMYK\";\n})(ColorTypes || (ColorTypes = {}));\nexport var grayscale = function (gray) {\n assertRange(gray, 'gray', 0.0, 1.0);\n return { type: ColorTypes.Grayscale, gray: gray };\n};\nexport var rgb = function (red, green, blue) {\n assertRange(red, 'red', 0, 1);\n assertRange(green, 'green', 0, 1);\n assertRange(blue, 'blue', 0, 1);\n return { type: ColorTypes.RGB, red: red, green: green, blue: blue };\n};\nexport var cmyk = function (cyan, magenta, yellow, key) {\n assertRange(cyan, 'cyan', 0, 1);\n assertRange(magenta, 'magenta', 0, 1);\n assertRange(yellow, 'yellow', 0, 1);\n assertRange(key, 'key', 0, 1);\n return { type: ColorTypes.CMYK, cyan: cyan, magenta: magenta, yellow: yellow, key: key };\n};\nvar Grayscale = ColorTypes.Grayscale, RGB = ColorTypes.RGB, CMYK = ColorTypes.CMYK;\n// prettier-ignore\nexport var setFillingColor = function (color) {\n return color.type === Grayscale ? setFillingGrayscaleColor(color.gray)\n : color.type === RGB ? setFillingRgbColor(color.red, color.green, color.blue)\n : color.type === CMYK ? setFillingCmykColor(color.cyan, color.magenta, color.yellow, color.key)\n : error(\"Invalid color: \" + JSON.stringify(color));\n};\n// prettier-ignore\nexport var setStrokingColor = function (color) {\n return color.type === Grayscale ? setStrokingGrayscaleColor(color.gray)\n : color.type === RGB ? setStrokingRgbColor(color.red, color.green, color.blue)\n : color.type === CMYK ? setStrokingCmykColor(color.cyan, color.magenta, color.yellow, color.key)\n : error(\"Invalid color: \" + JSON.stringify(color));\n};\n// prettier-ignore\nexport var componentsToColor = function (comps, scale) {\n if (scale === void 0) { scale = 1; }\n return ((comps === null || comps === void 0 ? void 0 : comps.length) === 1 ? grayscale(comps[0] * scale)\n : (comps === null || comps === void 0 ? void 0 : comps.length) === 3 ? rgb(comps[0] * scale, comps[1] * scale, comps[2] * scale)\n : (comps === null || comps === void 0 ? void 0 : comps.length) === 4 ? cmyk(comps[0] * scale, comps[1] * scale, comps[2] * scale, comps[3] * scale)\n : undefined);\n};\n// prettier-ignore\nexport var colorToComponents = function (color) {\n return color.type === Grayscale ? [color.gray]\n : color.type === RGB ? [color.red, color.green, color.blue]\n : color.type === CMYK ? [color.cyan, color.magenta, color.yellow, color.key]\n : error(\"Invalid color: \" + JSON.stringify(color));\n};\n//# sourceMappingURL=colors.js.map","export var TextAlignment;\n(function (TextAlignment) {\n TextAlignment[TextAlignment[\"Left\"] = 0] = \"Left\";\n TextAlignment[TextAlignment[\"Center\"] = 1] = \"Center\";\n TextAlignment[TextAlignment[\"Right\"] = 2] = \"Right\";\n})(TextAlignment || (TextAlignment = {}));\n//# sourceMappingURL=alignment.js.map","// Originated from pdfkit Copyright (c) 2014 Devon Govett\n// https://github.com/foliojs/pdfkit/blob/1e62e6ffe24b378eb890df507a47610f4c4a7b24/lib/path.js\n// MIT LICENSE\n// Updated for pdf-lib & TypeScript by Jeremy Messenger\nimport { appendBezierCurve, appendQuadraticCurve, closePath, lineTo, moveTo, } from \"./operators\";\nvar cx = 0;\nvar cy = 0;\nvar px = 0;\nvar py = 0;\nvar sx = 0;\nvar sy = 0;\nvar parameters = new Map([\n ['A', 7],\n ['a', 7],\n ['C', 6],\n ['c', 6],\n ['H', 1],\n ['h', 1],\n ['L', 2],\n ['l', 2],\n ['M', 2],\n ['m', 2],\n ['Q', 4],\n ['q', 4],\n ['S', 4],\n ['s', 4],\n ['T', 2],\n ['t', 2],\n ['V', 1],\n ['v', 1],\n ['Z', 0],\n ['z', 0],\n]);\nvar parse = function (path) {\n var cmd;\n var ret = [];\n var args = [];\n var curArg = '';\n var foundDecimal = false;\n var params = 0;\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var c = path_1[_i];\n if (parameters.has(c)) {\n params = parameters.get(c);\n if (cmd) {\n // save existing command\n if (curArg.length > 0) {\n args[args.length] = +curArg;\n }\n ret[ret.length] = { cmd: cmd, args: args };\n args = [];\n curArg = '';\n foundDecimal = false;\n }\n cmd = c;\n }\n else if ([' ', ','].includes(c) ||\n (c === '-' && curArg.length > 0 && curArg[curArg.length - 1] !== 'e') ||\n (c === '.' && foundDecimal)) {\n if (curArg.length === 0) {\n continue;\n }\n if (args.length === params) {\n // handle reused commands\n ret[ret.length] = { cmd: cmd, args: args };\n args = [+curArg];\n // handle assumed commands\n if (cmd === 'M') {\n cmd = 'L';\n }\n if (cmd === 'm') {\n cmd = 'l';\n }\n }\n else {\n args[args.length] = +curArg;\n }\n foundDecimal = c === '.';\n // fix for negative numbers or repeated decimals with no delimeter between commands\n curArg = ['-', '.'].includes(c) ? c : '';\n }\n else {\n curArg += c;\n if (c === '.') {\n foundDecimal = true;\n }\n }\n }\n // add the last command\n if (curArg.length > 0) {\n if (args.length === params) {\n // handle reused commands\n ret[ret.length] = { cmd: cmd, args: args };\n args = [+curArg];\n // handle assumed commands\n if (cmd === 'M') {\n cmd = 'L';\n }\n if (cmd === 'm') {\n cmd = 'l';\n }\n }\n else {\n args[args.length] = +curArg;\n }\n }\n ret[ret.length] = { cmd: cmd, args: args };\n return ret;\n};\nvar apply = function (commands) {\n // current point, control point, and subpath starting point\n cx = cy = px = py = sx = sy = 0;\n // run the commands\n var cmds = [];\n for (var i = 0; i < commands.length; i++) {\n var c = commands[i];\n if (c.cmd && typeof runners[c.cmd] === 'function') {\n var cmd = runners[c.cmd](c.args);\n if (Array.isArray(cmd)) {\n cmds = cmds.concat(cmd);\n }\n else {\n cmds.push(cmd);\n }\n }\n }\n return cmds;\n};\nvar runners = {\n M: function (a) {\n cx = a[0];\n cy = a[1];\n px = py = null;\n sx = cx;\n sy = cy;\n return moveTo(cx, cy);\n },\n m: function (a) {\n cx += a[0];\n cy += a[1];\n px = py = null;\n sx = cx;\n sy = cy;\n return moveTo(cx, cy);\n },\n C: function (a) {\n cx = a[4];\n cy = a[5];\n px = a[2];\n py = a[3];\n return appendBezierCurve(a[0], a[1], a[2], a[3], a[4], a[5]);\n },\n c: function (a) {\n var cmd = appendBezierCurve(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy, a[4] + cx, a[5] + cy);\n px = cx + a[2];\n py = cy + a[3];\n cx += a[4];\n cy += a[5];\n return cmd;\n },\n S: function (a) {\n if (px === null || py === null) {\n px = cx;\n py = cy;\n }\n var cmd = appendBezierCurve(cx - (px - cx), cy - (py - cy), a[0], a[1], a[2], a[3]);\n px = a[0];\n py = a[1];\n cx = a[2];\n cy = a[3];\n return cmd;\n },\n s: function (a) {\n if (px === null || py === null) {\n px = cx;\n py = cy;\n }\n var cmd = appendBezierCurve(cx - (px - cx), cy - (py - cy), cx + a[0], cy + a[1], cx + a[2], cy + a[3]);\n px = cx + a[0];\n py = cy + a[1];\n cx += a[2];\n cy += a[3];\n return cmd;\n },\n Q: function (a) {\n px = a[0];\n py = a[1];\n cx = a[2];\n cy = a[3];\n return appendQuadraticCurve(a[0], a[1], cx, cy);\n },\n q: function (a) {\n var cmd = appendQuadraticCurve(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy);\n px = cx + a[0];\n py = cy + a[1];\n cx += a[2];\n cy += a[3];\n return cmd;\n },\n T: function (a) {\n if (px === null || py === null) {\n px = cx;\n py = cy;\n }\n else {\n px = cx - (px - cx);\n py = cy - (py - cy);\n }\n var cmd = appendQuadraticCurve(px, py, a[0], a[1]);\n px = cx - (px - cx);\n py = cy - (py - cy);\n cx = a[0];\n cy = a[1];\n return cmd;\n },\n t: function (a) {\n if (px === null || py === null) {\n px = cx;\n py = cy;\n }\n else {\n px = cx - (px - cx);\n py = cy - (py - cy);\n }\n var cmd = appendQuadraticCurve(px, py, cx + a[0], cy + a[1]);\n cx += a[0];\n cy += a[1];\n return cmd;\n },\n A: function (a) {\n var cmds = solveArc(cx, cy, a);\n cx = a[5];\n cy = a[6];\n return cmds;\n },\n a: function (a) {\n a[5] += cx;\n a[6] += cy;\n var cmds = solveArc(cx, cy, a);\n cx = a[5];\n cy = a[6];\n return cmds;\n },\n L: function (a) {\n cx = a[0];\n cy = a[1];\n px = py = null;\n return lineTo(cx, cy);\n },\n l: function (a) {\n cx += a[0];\n cy += a[1];\n px = py = null;\n return lineTo(cx, cy);\n },\n H: function (a) {\n cx = a[0];\n px = py = null;\n return lineTo(cx, cy);\n },\n h: function (a) {\n cx += a[0];\n px = py = null;\n return lineTo(cx, cy);\n },\n V: function (a) {\n cy = a[0];\n px = py = null;\n return lineTo(cx, cy);\n },\n v: function (a) {\n cy += a[0];\n px = py = null;\n return lineTo(cx, cy);\n },\n Z: function () {\n var cmd = closePath();\n cx = sx;\n cy = sy;\n return cmd;\n },\n z: function () {\n var cmd = closePath();\n cx = sx;\n cy = sy;\n return cmd;\n },\n};\nvar solveArc = function (x, y, coords) {\n var rx = coords[0], ry = coords[1], rot = coords[2], large = coords[3], sweep = coords[4], ex = coords[5], ey = coords[6];\n var segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y);\n var cmds = [];\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n var bez = segmentToBezier.apply(void 0, seg);\n cmds.push(appendBezierCurve.apply(void 0, bez));\n }\n return cmds;\n};\n// from Inkscape svgtopdf, thanks!\nvar arcToSegments = function (x, y, rx, ry, large, sweep, rotateX, ox, oy) {\n var th = rotateX * (Math.PI / 180);\n var sinTh = Math.sin(th);\n var cosTh = Math.cos(th);\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n px = cosTh * (ox - x) * 0.5 + sinTh * (oy - y) * 0.5;\n py = cosTh * (oy - y) * 0.5 - sinTh * (ox - x) * 0.5;\n var pl = (px * px) / (rx * rx) + (py * py) / (ry * ry);\n if (pl > 1) {\n pl = Math.sqrt(pl);\n rx *= pl;\n ry *= pl;\n }\n var a00 = cosTh / rx;\n var a01 = sinTh / rx;\n var a10 = -sinTh / ry;\n var a11 = cosTh / ry;\n var x0 = a00 * ox + a01 * oy;\n var y0 = a10 * ox + a11 * oy;\n var x1 = a00 * x + a01 * y;\n var y1 = a10 * x + a11 * y;\n var d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);\n var sfactorSq = 1 / d - 0.25;\n if (sfactorSq < 0) {\n sfactorSq = 0;\n }\n var sfactor = Math.sqrt(sfactorSq);\n if (sweep === large) {\n sfactor = -sfactor;\n }\n var xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);\n var yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);\n var th0 = Math.atan2(y0 - yc, x0 - xc);\n var th1 = Math.atan2(y1 - yc, x1 - xc);\n var thArc = th1 - th0;\n if (thArc < 0 && sweep === 1) {\n thArc += 2 * Math.PI;\n }\n else if (thArc > 0 && sweep === 0) {\n thArc -= 2 * Math.PI;\n }\n var segments = Math.ceil(Math.abs(thArc / (Math.PI * 0.5 + 0.001)));\n var result = [];\n for (var i = 0; i < segments; i++) {\n var th2 = th0 + (i * thArc) / segments;\n var th3 = th0 + ((i + 1) * thArc) / segments;\n result[i] = [xc, yc, th2, th3, rx, ry, sinTh, cosTh];\n }\n return result;\n};\nvar segmentToBezier = function (cx1, cy1, th0, th1, rx, ry, sinTh, cosTh) {\n var a00 = cosTh * rx;\n var a01 = -sinTh * ry;\n var a10 = sinTh * rx;\n var a11 = cosTh * ry;\n var thHalf = 0.5 * (th1 - th0);\n var t = ((8 / 3) * Math.sin(thHalf * 0.5) * Math.sin(thHalf * 0.5)) /\n Math.sin(thHalf);\n var x1 = cx1 + Math.cos(th0) - t * Math.sin(th0);\n var y1 = cy1 + Math.sin(th0) + t * Math.cos(th0);\n var x3 = cx1 + Math.cos(th1);\n var y3 = cy1 + Math.sin(th1);\n var x2 = x3 + t * Math.sin(th1);\n var y2 = y3 - t * Math.cos(th1);\n var result = [\n a00 * x1 + a01 * y1,\n a10 * x1 + a11 * y1,\n a00 * x2 + a01 * y2,\n a10 * x2 + a11 * y2,\n a00 * x3 + a01 * y3,\n a10 * x3 + a11 * y3,\n ];\n return result;\n};\nexport var svgPathToOperators = function (path) { return apply(parse(path)); };\n//# sourceMappingURL=svgPath.js.map","import { __spreadArrays } from \"tslib\";\nimport { setFillingColor, setStrokingColor } from \"./colors\";\nimport { beginText, closePath, drawObject, endText, fill, fillAndStroke, lineTo, moveTo, nextLine, popGraphicsState, pushGraphicsState, rotateAndSkewTextRadiansAndTranslate, rotateRadians, scale, setFontAndSize, setLineHeight, setLineWidth, showText, skewRadians, stroke, translate, setLineCap, rotateDegrees, setGraphicsState, setDashPattern, beginMarkedContent, endMarkedContent, clip, endPath, appendBezierCurve, } from \"./operators\";\nimport { degrees, toRadians } from \"./rotations\";\nimport { svgPathToOperators } from \"./svgPath\";\nimport { asNumber } from \"./objects\";\nexport var drawText = function (line, options) {\n return [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n beginText(),\n setFillingColor(options.color),\n setFontAndSize(options.font, options.size),\n rotateAndSkewTextRadiansAndTranslate(toRadians(options.rotate), toRadians(options.xSkew), toRadians(options.ySkew), options.x, options.y),\n showText(line),\n endText(),\n popGraphicsState(),\n ].filter(Boolean);\n};\nexport var drawLinesOfText = function (lines, options) {\n var operators = [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n beginText(),\n setFillingColor(options.color),\n setFontAndSize(options.font, options.size),\n setLineHeight(options.lineHeight),\n rotateAndSkewTextRadiansAndTranslate(toRadians(options.rotate), toRadians(options.xSkew), toRadians(options.ySkew), options.x, options.y),\n ].filter(Boolean);\n for (var idx = 0, len = lines.length; idx < len; idx++) {\n operators.push(showText(lines[idx]), nextLine());\n }\n operators.push(endText(), popGraphicsState());\n return operators;\n};\nexport var drawImage = function (name, options) {\n return [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n translate(options.x, options.y),\n rotateRadians(toRadians(options.rotate)),\n scale(options.width, options.height),\n skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n drawObject(name),\n popGraphicsState(),\n ].filter(Boolean);\n};\nexport var drawPage = function (name, options) {\n return [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n translate(options.x, options.y),\n rotateRadians(toRadians(options.rotate)),\n scale(options.xScale, options.yScale),\n skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n drawObject(name),\n popGraphicsState(),\n ].filter(Boolean);\n};\nexport var drawLine = function (options) {\n var _a, _b;\n return [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n options.color && setStrokingColor(options.color),\n setLineWidth(options.thickness),\n setDashPattern((_a = options.dashArray) !== null && _a !== void 0 ? _a : [], (_b = options.dashPhase) !== null && _b !== void 0 ? _b : 0),\n moveTo(options.start.x, options.start.y),\n options.lineCap && setLineCap(options.lineCap),\n moveTo(options.start.x, options.start.y),\n lineTo(options.end.x, options.end.y),\n stroke(),\n popGraphicsState(),\n ].filter(Boolean);\n};\nexport var drawRectangle = function (options) {\n var _a, _b;\n return [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n options.color && setFillingColor(options.color),\n options.borderColor && setStrokingColor(options.borderColor),\n setLineWidth(options.borderWidth),\n options.borderLineCap && setLineCap(options.borderLineCap),\n setDashPattern((_a = options.borderDashArray) !== null && _a !== void 0 ? _a : [], (_b = options.borderDashPhase) !== null && _b !== void 0 ? _b : 0),\n translate(options.x, options.y),\n rotateRadians(toRadians(options.rotate)),\n skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n moveTo(0, 0),\n lineTo(0, options.height),\n lineTo(options.width, options.height),\n lineTo(options.width, 0),\n closePath(),\n // prettier-ignore\n options.color && options.borderWidth ? fillAndStroke()\n : options.color ? fill()\n : options.borderColor ? stroke()\n : closePath(),\n popGraphicsState(),\n ].filter(Boolean);\n};\nvar KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\n/** @deprecated */\nexport var drawEllipsePath = function (config) {\n var x = asNumber(config.x);\n var y = asNumber(config.y);\n var xScale = asNumber(config.xScale);\n var yScale = asNumber(config.yScale);\n x -= xScale;\n y -= yScale;\n var ox = xScale * KAPPA;\n var oy = yScale * KAPPA;\n var xe = x + xScale * 2;\n var ye = y + yScale * 2;\n var xm = x + xScale;\n var ym = y + yScale;\n return [\n pushGraphicsState(),\n moveTo(x, ym),\n appendBezierCurve(x, ym - oy, xm - ox, y, xm, y),\n appendBezierCurve(xm + ox, y, xe, ym - oy, xe, ym),\n appendBezierCurve(xe, ym + oy, xm + ox, ye, xm, ye),\n appendBezierCurve(xm - ox, ye, x, ym + oy, x, ym),\n popGraphicsState(),\n ];\n};\nvar drawEllipseCurves = function (config) {\n var centerX = asNumber(config.x);\n var centerY = asNumber(config.y);\n var xScale = asNumber(config.xScale);\n var yScale = asNumber(config.yScale);\n var x = -xScale;\n var y = -yScale;\n var ox = xScale * KAPPA;\n var oy = yScale * KAPPA;\n var xe = x + xScale * 2;\n var ye = y + yScale * 2;\n var xm = x + xScale;\n var ym = y + yScale;\n return [\n translate(centerX, centerY),\n rotateRadians(toRadians(config.rotate)),\n moveTo(x, ym),\n appendBezierCurve(x, ym - oy, xm - ox, y, xm, y),\n appendBezierCurve(xm + ox, y, xe, ym - oy, xe, ym),\n appendBezierCurve(xe, ym + oy, xm + ox, ye, xm, ye),\n appendBezierCurve(xm - ox, ye, x, ym + oy, x, ym),\n ];\n};\nexport var drawEllipse = function (options) {\n var _a, _b, _c;\n return __spreadArrays([\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n options.color && setFillingColor(options.color),\n options.borderColor && setStrokingColor(options.borderColor),\n setLineWidth(options.borderWidth),\n options.borderLineCap && setLineCap(options.borderLineCap),\n setDashPattern((_a = options.borderDashArray) !== null && _a !== void 0 ? _a : [], (_b = options.borderDashPhase) !== null && _b !== void 0 ? _b : 0)\n ], (options.rotate === undefined\n ? drawEllipsePath({\n x: options.x,\n y: options.y,\n xScale: options.xScale,\n yScale: options.yScale,\n })\n : drawEllipseCurves({\n x: options.x,\n y: options.y,\n xScale: options.xScale,\n yScale: options.yScale,\n rotate: (_c = options.rotate) !== null && _c !== void 0 ? _c : degrees(0),\n })), [\n // prettier-ignore\n options.color && options.borderWidth ? fillAndStroke()\n : options.color ? fill()\n : options.borderColor ? stroke()\n : closePath(),\n popGraphicsState(),\n ]).filter(Boolean);\n};\nexport var drawSvgPath = function (path, options) {\n var _a, _b, _c;\n return __spreadArrays([\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n translate(options.x, options.y),\n rotateRadians(toRadians((_a = options.rotate) !== null && _a !== void 0 ? _a : degrees(0))),\n // SVG path Y axis is opposite pdf-lib's\n options.scale ? scale(options.scale, -options.scale) : scale(1, -1),\n options.color && setFillingColor(options.color),\n options.borderColor && setStrokingColor(options.borderColor),\n options.borderWidth && setLineWidth(options.borderWidth),\n options.borderLineCap && setLineCap(options.borderLineCap),\n setDashPattern((_b = options.borderDashArray) !== null && _b !== void 0 ? _b : [], (_c = options.borderDashPhase) !== null && _c !== void 0 ? _c : 0)\n ], svgPathToOperators(path), [\n // prettier-ignore\n options.color && options.borderWidth ? fillAndStroke()\n : options.color ? fill()\n : options.borderColor ? stroke()\n : closePath(),\n popGraphicsState(),\n ]).filter(Boolean);\n};\nexport var drawCheckMark = function (options) {\n var size = asNumber(options.size);\n /*********************** Define Check Mark Points ***************************/\n // A check mark is defined by three points in some coordinate space. Here, we\n // define these points in a unit coordinate system, where the range of the x\n // and y axis are both [-1, 1].\n //\n // Note that we do not hard code `p1y` in case we wish to change the\n // size/shape of the check mark in the future. We want the check mark to\n // always form a right angle. This means that the dot product between (p1-p2)\n // and (p3-p2) should be zero:\n //\n // (p1x-p2x) * (p3x-p2x) + (p1y-p2y) * (p3y-p2y) = 0\n //\n // We can now rejigger this equation to solve for `p1y`:\n //\n // (p1y-p2y) * (p3y-p2y) = -((p1x-p2x) * (p3x-p2x))\n // (p1y-p2y) = -((p1x-p2x) * (p3x-p2x)) / (p3y-p2y)\n // p1y = -((p1x-p2x) * (p3x-p2x)) / (p3y-p2y) + p2y\n //\n // Thanks to my friend Joel Walker (https://github.com/JWalker1995) for\n // devising the above equation and unit coordinate system approach!\n // (x, y) coords of the check mark's bottommost point\n var p2x = -1 + 0.75;\n var p2y = -1 + 0.51;\n // (x, y) coords of the check mark's topmost point\n var p3y = 1 - 0.525;\n var p3x = 1 - 0.31;\n // (x, y) coords of the check mark's center (vertically) point\n var p1x = -1 + 0.325;\n var p1y = -((p1x - p2x) * (p3x - p2x)) / (p3y - p2y) + p2y;\n /****************************************************************************/\n return [\n pushGraphicsState(),\n options.color && setStrokingColor(options.color),\n setLineWidth(options.thickness),\n translate(options.x, options.y),\n moveTo(p1x * size, p1y * size),\n lineTo(p2x * size, p2y * size),\n lineTo(p3x * size, p3y * size),\n stroke(),\n popGraphicsState(),\n ].filter(Boolean);\n};\n// prettier-ignore\nexport var rotateInPlace = function (options) {\n return options.rotation === 0 ? [\n translate(0, 0),\n rotateDegrees(0)\n ]\n : options.rotation === 90 ? [\n translate(options.width, 0),\n rotateDegrees(90)\n ]\n : options.rotation === 180 ? [\n translate(options.width, options.height),\n rotateDegrees(180)\n ]\n : options.rotation === 270 ? [\n translate(0, options.height),\n rotateDegrees(270)\n ]\n : [];\n}; // Invalid rotation - noop\nexport var drawCheckBox = function (options) {\n var outline = drawRectangle({\n x: options.x,\n y: options.y,\n width: options.width,\n height: options.height,\n borderWidth: options.borderWidth,\n color: options.color,\n borderColor: options.borderColor,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n if (!options.filled)\n return outline;\n var width = asNumber(options.width);\n var height = asNumber(options.height);\n var checkMarkSize = Math.min(width, height) / 2;\n var checkMark = drawCheckMark({\n x: width / 2,\n y: height / 2,\n size: checkMarkSize,\n thickness: options.thickness,\n color: options.markColor,\n });\n return __spreadArrays([pushGraphicsState()], outline, checkMark, [popGraphicsState()]);\n};\nexport var drawRadioButton = function (options) {\n var width = asNumber(options.width);\n var height = asNumber(options.height);\n var outlineScale = Math.min(width, height) / 2;\n var outline = drawEllipse({\n x: options.x,\n y: options.y,\n xScale: outlineScale,\n yScale: outlineScale,\n color: options.color,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n });\n if (!options.filled)\n return outline;\n var dot = drawEllipse({\n x: options.x,\n y: options.y,\n xScale: outlineScale * 0.45,\n yScale: outlineScale * 0.45,\n color: options.dotColor,\n borderColor: undefined,\n borderWidth: 0,\n });\n return __spreadArrays([pushGraphicsState()], outline, dot, [popGraphicsState()]);\n};\nexport var drawButton = function (options) {\n var x = asNumber(options.x);\n var y = asNumber(options.y);\n var width = asNumber(options.width);\n var height = asNumber(options.height);\n var background = drawRectangle({\n x: x,\n y: y,\n width: width,\n height: height,\n borderWidth: options.borderWidth,\n color: options.color,\n borderColor: options.borderColor,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n var lines = drawTextLines(options.textLines, {\n color: options.textColor,\n font: options.font,\n size: options.fontSize,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n return __spreadArrays([pushGraphicsState()], background, lines, [popGraphicsState()]);\n};\nexport var drawTextLines = function (lines, options) {\n var operators = [\n beginText(),\n setFillingColor(options.color),\n setFontAndSize(options.font, options.size),\n ];\n for (var idx = 0, len = lines.length; idx < len; idx++) {\n var _a = lines[idx], encoded = _a.encoded, x = _a.x, y = _a.y;\n operators.push(rotateAndSkewTextRadiansAndTranslate(toRadians(options.rotate), toRadians(options.xSkew), toRadians(options.ySkew), x, y), showText(encoded));\n }\n operators.push(endText());\n return operators;\n};\nexport var drawTextField = function (options) {\n var x = asNumber(options.x);\n var y = asNumber(options.y);\n var width = asNumber(options.width);\n var height = asNumber(options.height);\n var borderWidth = asNumber(options.borderWidth);\n var padding = asNumber(options.padding);\n var clipX = x + borderWidth / 2 + padding;\n var clipY = y + borderWidth / 2 + padding;\n var clipWidth = width - (borderWidth / 2 + padding) * 2;\n var clipHeight = height - (borderWidth / 2 + padding) * 2;\n var clippingArea = [\n moveTo(clipX, clipY),\n lineTo(clipX, clipY + clipHeight),\n lineTo(clipX + clipWidth, clipY + clipHeight),\n lineTo(clipX + clipWidth, clipY),\n closePath(),\n clip(),\n endPath(),\n ];\n var background = drawRectangle({\n x: x,\n y: y,\n width: width,\n height: height,\n borderWidth: options.borderWidth,\n color: options.color,\n borderColor: options.borderColor,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n var lines = drawTextLines(options.textLines, {\n color: options.textColor,\n font: options.font,\n size: options.fontSize,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n var markedContent = __spreadArrays([\n beginMarkedContent('Tx'),\n pushGraphicsState()\n ], lines, [\n popGraphicsState(),\n endMarkedContent(),\n ]);\n return __spreadArrays([\n pushGraphicsState()\n ], background, clippingArea, markedContent, [\n popGraphicsState(),\n ]);\n};\nexport var drawOptionList = function (options) {\n var x = asNumber(options.x);\n var y = asNumber(options.y);\n var width = asNumber(options.width);\n var height = asNumber(options.height);\n var lineHeight = asNumber(options.lineHeight);\n var borderWidth = asNumber(options.borderWidth);\n var padding = asNumber(options.padding);\n var clipX = x + borderWidth / 2 + padding;\n var clipY = y + borderWidth / 2 + padding;\n var clipWidth = width - (borderWidth / 2 + padding) * 2;\n var clipHeight = height - (borderWidth / 2 + padding) * 2;\n var clippingArea = [\n moveTo(clipX, clipY),\n lineTo(clipX, clipY + clipHeight),\n lineTo(clipX + clipWidth, clipY + clipHeight),\n lineTo(clipX + clipWidth, clipY),\n closePath(),\n clip(),\n endPath(),\n ];\n var background = drawRectangle({\n x: x,\n y: y,\n width: width,\n height: height,\n borderWidth: options.borderWidth,\n color: options.color,\n borderColor: options.borderColor,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n var highlights = [];\n for (var idx = 0, len = options.selectedLines.length; idx < len; idx++) {\n var line = options.textLines[options.selectedLines[idx]];\n highlights.push.apply(highlights, drawRectangle({\n x: line.x - padding,\n y: line.y - (lineHeight - line.height) / 2,\n width: width - borderWidth,\n height: line.height + (lineHeight - line.height) / 2,\n borderWidth: 0,\n color: options.selectedColor,\n borderColor: undefined,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n }));\n }\n var lines = drawTextLines(options.textLines, {\n color: options.textColor,\n font: options.font,\n size: options.fontSize,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n var markedContent = __spreadArrays([\n beginMarkedContent('Tx'),\n pushGraphicsState()\n ], lines, [\n popGraphicsState(),\n endMarkedContent(),\n ]);\n return __spreadArrays([\n pushGraphicsState()\n ], background, highlights, clippingArea, markedContent, [\n popGraphicsState(),\n ]);\n};\n//# sourceMappingURL=operations.js.map","// tslint:disable: max-classes-per-file\nimport { __extends } from \"tslib\";\n// TODO: Include link to documentation with example\nvar EncryptedPDFError = /** @class */ (function (_super) {\n __extends(EncryptedPDFError, _super);\n function EncryptedPDFError() {\n var _this = this;\n var msg = 'Input document to `PDFDocument.load` is encrypted. You can use `PDFDocument.load(..., { ignoreEncryption: true })` if you wish to load the document anyways.';\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return EncryptedPDFError;\n}(Error));\nexport { EncryptedPDFError };\n// TODO: Include link to documentation with example\nvar FontkitNotRegisteredError = /** @class */ (function (_super) {\n __extends(FontkitNotRegisteredError, _super);\n function FontkitNotRegisteredError() {\n var _this = this;\n var msg = 'Input to `PDFDocument.embedFont` was a custom font, but no `fontkit` instance was found. You must register a `fontkit` instance with `PDFDocument.registerFontkit(...)` before embedding custom fonts.';\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return FontkitNotRegisteredError;\n}(Error));\nexport { FontkitNotRegisteredError };\n// TODO: Include link to documentation with example\nvar ForeignPageError = /** @class */ (function (_super) {\n __extends(ForeignPageError, _super);\n function ForeignPageError() {\n var _this = this;\n var msg = 'A `page` passed to `PDFDocument.addPage` or `PDFDocument.insertPage` was from a different (foreign) PDF document. If you want to copy pages from one PDFDocument to another, you must use `PDFDocument.copyPages(...)` to copy the pages before adding or inserting them.';\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return ForeignPageError;\n}(Error));\nexport { ForeignPageError };\n// TODO: Include link to documentation with example\nvar RemovePageFromEmptyDocumentError = /** @class */ (function (_super) {\n __extends(RemovePageFromEmptyDocumentError, _super);\n function RemovePageFromEmptyDocumentError() {\n var _this = this;\n var msg = 'PDFDocument has no pages so `PDFDocument.removePage` cannot be called';\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return RemovePageFromEmptyDocumentError;\n}(Error));\nexport { RemovePageFromEmptyDocumentError };\nvar NoSuchFieldError = /** @class */ (function (_super) {\n __extends(NoSuchFieldError, _super);\n function NoSuchFieldError(name) {\n var _this = this;\n var msg = \"PDFDocument has no form field with the name \\\"\" + name + \"\\\"\";\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return NoSuchFieldError;\n}(Error));\nexport { NoSuchFieldError };\nvar UnexpectedFieldTypeError = /** @class */ (function (_super) {\n __extends(UnexpectedFieldTypeError, _super);\n function UnexpectedFieldTypeError(name, expected, actual) {\n var _a, _b;\n var _this = this;\n var expectedType = expected === null || expected === void 0 ? void 0 : expected.name;\n var actualType = (_b = (_a = actual === null || actual === void 0 ? void 0 : actual.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : actual;\n var msg = \"Expected field \\\"\" + name + \"\\\" to be of type \" + expectedType + \", \" +\n (\"but it is actually of type \" + actualType);\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return UnexpectedFieldTypeError;\n}(Error));\nexport { UnexpectedFieldTypeError };\nvar MissingOnValueCheckError = /** @class */ (function (_super) {\n __extends(MissingOnValueCheckError, _super);\n function MissingOnValueCheckError(onValue) {\n var _this = this;\n var msg = \"Failed to select check box due to missing onValue: \\\"\" + onValue + \"\\\"\";\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return MissingOnValueCheckError;\n}(Error));\nexport { MissingOnValueCheckError };\nvar FieldAlreadyExistsError = /** @class */ (function (_super) {\n __extends(FieldAlreadyExistsError, _super);\n function FieldAlreadyExistsError(name) {\n var _this = this;\n var msg = \"A field already exists with the specified name: \\\"\" + name + \"\\\"\";\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return FieldAlreadyExistsError;\n}(Error));\nexport { FieldAlreadyExistsError };\nvar InvalidFieldNamePartError = /** @class */ (function (_super) {\n __extends(InvalidFieldNamePartError, _super);\n function InvalidFieldNamePartError(namePart) {\n var _this = this;\n var msg = \"Field name contains invalid component: \\\"\" + namePart + \"\\\"\";\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return InvalidFieldNamePartError;\n}(Error));\nexport { InvalidFieldNamePartError };\nvar FieldExistsAsNonTerminalError = /** @class */ (function (_super) {\n __extends(FieldExistsAsNonTerminalError, _super);\n function FieldExistsAsNonTerminalError(name) {\n var _this = this;\n var msg = \"A non-terminal field already exists with the specified name: \\\"\" + name + \"\\\"\";\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return FieldExistsAsNonTerminalError;\n}(Error));\nexport { FieldExistsAsNonTerminalError };\nvar RichTextFieldReadError = /** @class */ (function (_super) {\n __extends(RichTextFieldReadError, _super);\n function RichTextFieldReadError(fieldName) {\n var _this = this;\n var msg = \"Reading rich text fields is not supported: Attempted to read rich text field: \" + fieldName;\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return RichTextFieldReadError;\n}(Error));\nexport { RichTextFieldReadError };\nvar CombedTextLayoutError = /** @class */ (function (_super) {\n __extends(CombedTextLayoutError, _super);\n function CombedTextLayoutError(lineLength, cellCount) {\n var _this = this;\n var msg = \"Failed to layout combed text as lineLength=\" + lineLength + \" is greater than cellCount=\" + cellCount;\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return CombedTextLayoutError;\n}(Error));\nexport { CombedTextLayoutError };\nvar ExceededMaxLengthError = /** @class */ (function (_super) {\n __extends(ExceededMaxLengthError, _super);\n function ExceededMaxLengthError(textLength, maxLength, name) {\n var _this = this;\n var msg = \"Attempted to set text with length=\" + textLength + \" for TextField with maxLength=\" + maxLength + \" and name=\" + name;\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return ExceededMaxLengthError;\n}(Error));\nexport { ExceededMaxLengthError };\nvar InvalidMaxLengthError = /** @class */ (function (_super) {\n __extends(InvalidMaxLengthError, _super);\n function InvalidMaxLengthError(textLength, maxLength, name) {\n var _this = this;\n var msg = \"Attempted to set maxLength=\" + maxLength + \", which is less than \" + textLength + \", the length of this field's current value (name=\" + name + \")\";\n _this = _super.call(this, msg) || this;\n return _this;\n }\n return InvalidMaxLengthError;\n}(Error));\nexport { InvalidMaxLengthError };\n//# sourceMappingURL=errors.js.map","import { CombedTextLayoutError } from \"../errors\";\nimport { TextAlignment } from \"./alignment\";\nimport { cleanText, lineSplit, mergeLines, charAtIndex, charSplit, } from \"../../utils\";\nvar MIN_FONT_SIZE = 4;\nvar MAX_FONT_SIZE = 500;\nvar computeFontSize = function (lines, font, bounds, multiline) {\n if (multiline === void 0) { multiline = false; }\n var fontSize = MIN_FONT_SIZE;\n while (fontSize < MAX_FONT_SIZE) {\n var linesUsed = 0;\n for (var lineIdx = 0, lineLen = lines.length; lineIdx < lineLen; lineIdx++) {\n linesUsed += 1;\n var line = lines[lineIdx];\n var words = line.split(' ');\n // Layout the words using the current `fontSize`, line wrapping\n // whenever we reach the end of the current line.\n var spaceInLineRemaining = bounds.width;\n for (var idx = 0, len = words.length; idx < len; idx++) {\n var isLastWord = idx === len - 1;\n var word = isLastWord ? words[idx] : words[idx] + ' ';\n var widthOfWord = font.widthOfTextAtSize(word, fontSize);\n spaceInLineRemaining -= widthOfWord;\n if (spaceInLineRemaining <= 0) {\n linesUsed += 1;\n spaceInLineRemaining = bounds.width - widthOfWord;\n }\n }\n }\n // Return if we exceeded the allowed width\n if (!multiline && linesUsed > lines.length)\n return fontSize - 1;\n var height = font.heightAtSize(fontSize);\n var lineHeight = height + height * 0.2;\n var totalHeight = lineHeight * linesUsed;\n // Return if we exceeded the allowed height\n if (totalHeight > Math.abs(bounds.height))\n return fontSize - 1;\n fontSize += 1;\n }\n return fontSize;\n};\nvar computeCombedFontSize = function (line, font, bounds, cellCount) {\n var cellWidth = bounds.width / cellCount;\n var cellHeight = bounds.height;\n var fontSize = MIN_FONT_SIZE;\n var chars = charSplit(line);\n while (fontSize < MAX_FONT_SIZE) {\n for (var idx = 0, len = chars.length; idx < len; idx++) {\n var c = chars[idx];\n var tooLong = font.widthOfTextAtSize(c, fontSize) > cellWidth * 0.75;\n if (tooLong)\n return fontSize - 1;\n }\n var height = font.heightAtSize(fontSize, { descender: false });\n if (height > cellHeight)\n return fontSize - 1;\n fontSize += 1;\n }\n return fontSize;\n};\nvar lastIndexOfWhitespace = function (line) {\n for (var idx = line.length; idx > 0; idx--) {\n if (/\\s/.test(line[idx]))\n return idx;\n }\n return undefined;\n};\nvar splitOutLines = function (input, maxWidth, font, fontSize) {\n var _a;\n var lastWhitespaceIdx = input.length;\n while (lastWhitespaceIdx > 0) {\n var line = input.substring(0, lastWhitespaceIdx);\n var encoded = font.encodeText(line);\n var width = font.widthOfTextAtSize(line, fontSize);\n if (width < maxWidth) {\n var remainder = input.substring(lastWhitespaceIdx) || undefined;\n return { line: line, encoded: encoded, width: width, remainder: remainder };\n }\n lastWhitespaceIdx = (_a = lastIndexOfWhitespace(line)) !== null && _a !== void 0 ? _a : 0;\n }\n // We were unable to split the input enough to get a chunk that would fit\n // within the specified `maxWidth` so we'll just return everything\n return {\n line: input,\n encoded: font.encodeText(input),\n width: font.widthOfTextAtSize(input, fontSize),\n remainder: undefined,\n };\n};\nexport var layoutMultilineText = function (text, _a) {\n var alignment = _a.alignment, fontSize = _a.fontSize, font = _a.font, bounds = _a.bounds;\n var lines = lineSplit(cleanText(text));\n if (fontSize === undefined || fontSize === 0) {\n fontSize = computeFontSize(lines, font, bounds, true);\n }\n var height = font.heightAtSize(fontSize);\n var lineHeight = height + height * 0.2;\n var textLines = [];\n var minX = bounds.x;\n var minY = bounds.y;\n var maxX = bounds.x + bounds.width;\n var maxY = bounds.y + bounds.height;\n var y = bounds.y + bounds.height;\n for (var idx = 0, len = lines.length; idx < len; idx++) {\n var prevRemainder = lines[idx];\n while (prevRemainder !== undefined) {\n var _b = splitOutLines(prevRemainder, bounds.width, font, fontSize), line = _b.line, encoded = _b.encoded, width = _b.width, remainder = _b.remainder;\n // prettier-ignore\n var x = (alignment === TextAlignment.Left ? bounds.x\n : alignment === TextAlignment.Center ? bounds.x + (bounds.width / 2) - (width / 2)\n : alignment === TextAlignment.Right ? bounds.x + bounds.width - width\n : bounds.x);\n y -= lineHeight;\n if (x < minX)\n minX = x;\n if (y < minY)\n minY = y;\n if (x + width > maxX)\n maxX = x + width;\n if (y + height > maxY)\n maxY = y + height;\n textLines.push({ text: line, encoded: encoded, width: width, height: height, x: x, y: y });\n // Only trim lines that we had to split ourselves. So we won't trim lines\n // that the user provided themselves with whitespace.\n prevRemainder = remainder === null || remainder === void 0 ? void 0 : remainder.trim();\n }\n }\n return {\n fontSize: fontSize,\n lineHeight: lineHeight,\n lines: textLines,\n bounds: {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n },\n };\n};\nexport var layoutCombedText = function (text, _a) {\n var fontSize = _a.fontSize, font = _a.font, bounds = _a.bounds, cellCount = _a.cellCount;\n var line = mergeLines(cleanText(text));\n if (line.length > cellCount) {\n throw new CombedTextLayoutError(line.length, cellCount);\n }\n if (fontSize === undefined || fontSize === 0) {\n fontSize = computeCombedFontSize(line, font, bounds, cellCount);\n }\n var cellWidth = bounds.width / cellCount;\n var height = font.heightAtSize(fontSize, { descender: false });\n var y = bounds.y + (bounds.height / 2 - height / 2);\n var cells = [];\n var minX = bounds.x;\n var minY = bounds.y;\n var maxX = bounds.x + bounds.width;\n var maxY = bounds.y + bounds.height;\n var cellOffset = 0;\n var charOffset = 0;\n while (cellOffset < cellCount) {\n var _b = charAtIndex(line, charOffset), char = _b[0], charLength = _b[1];\n var encoded = font.encodeText(char);\n var width = font.widthOfTextAtSize(char, fontSize);\n var cellCenter = bounds.x + (cellWidth * cellOffset + cellWidth / 2);\n var x = cellCenter - width / 2;\n if (x < minX)\n minX = x;\n if (y < minY)\n minY = y;\n if (x + width > maxX)\n maxX = x + width;\n if (y + height > maxY)\n maxY = y + height;\n cells.push({ text: line, encoded: encoded, width: width, height: height, x: x, y: y });\n cellOffset += 1;\n charOffset += charLength;\n }\n return {\n fontSize: fontSize,\n cells: cells,\n bounds: {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n },\n };\n};\nexport var layoutSinglelineText = function (text, _a) {\n var alignment = _a.alignment, fontSize = _a.fontSize, font = _a.font, bounds = _a.bounds;\n var line = mergeLines(cleanText(text));\n if (fontSize === undefined || fontSize === 0) {\n fontSize = computeFontSize([line], font, bounds);\n }\n var encoded = font.encodeText(line);\n var width = font.widthOfTextAtSize(line, fontSize);\n var height = font.heightAtSize(fontSize, { descender: false });\n // prettier-ignore\n var x = (alignment === TextAlignment.Left ? bounds.x\n : alignment === TextAlignment.Center ? bounds.x + (bounds.width / 2) - (width / 2)\n : alignment === TextAlignment.Right ? bounds.x + bounds.width - width\n : bounds.x);\n var y = bounds.y + (bounds.height / 2 - height / 2);\n return {\n fontSize: fontSize,\n line: { text: line, encoded: encoded, width: width, height: height, x: x, y: y },\n bounds: { x: x, y: y, width: width, height: height },\n };\n};\n//# sourceMappingURL=layout.js.map","export var ImageAlignment;\n(function (ImageAlignment) {\n ImageAlignment[ImageAlignment[\"Left\"] = 0] = \"Left\";\n ImageAlignment[ImageAlignment[\"Center\"] = 1] = \"Center\";\n ImageAlignment[ImageAlignment[\"Right\"] = 2] = \"Right\";\n})(ImageAlignment || (ImageAlignment = {}));\n//# sourceMappingURL=alignment.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport { drawCheckBox, rotateInPlace, drawRadioButton, drawButton, drawTextField, drawOptionList, } from \"../operations\";\nimport { rgb, componentsToColor, setFillingColor, grayscale, cmyk, } from \"../colors\";\nimport { reduceRotation, adjustDimsForRotation } from \"../rotations\";\nimport { layoutMultilineText, layoutCombedText, layoutSinglelineText, } from \"../text/layout\";\nimport { TextAlignment } from \"../text/alignment\";\nimport { setFontAndSize } from \"../operators\";\nimport { findLastMatch } from \"../../utils\";\n/********************* Appearance Provider Functions **************************/\nexport var normalizeAppearance = function (appearance) {\n if ('normal' in appearance)\n return appearance;\n return { normal: appearance };\n};\n// Examples:\n// `/Helv 12 Tf` -> ['/Helv 12 Tf', 'Helv', '12']\n// `/HeBo 8.00 Tf` -> ['/HeBo 8 Tf', 'HeBo', '8.00']\nvar tfRegex = /\\/([^\\0\\t\\n\\f\\r\\ ]+)[\\0\\t\\n\\f\\r\\ ]+(\\d*\\.\\d+|\\d+)[\\0\\t\\n\\f\\r\\ ]+Tf/;\nvar getDefaultFontSize = function (field) {\n var _a, _b;\n var da = (_a = field.getDefaultAppearance()) !== null && _a !== void 0 ? _a : '';\n var daMatch = (_b = findLastMatch(da, tfRegex).match) !== null && _b !== void 0 ? _b : [];\n var defaultFontSize = Number(daMatch[2]);\n return isFinite(defaultFontSize) ? defaultFontSize : undefined;\n};\n// Examples:\n// `0.3 g` -> ['0.3', 'g']\n// `0.3 1 .3 rg` -> ['0.3', '1', '.3', 'rg']\n// `0.3 1 .3 0 k` -> ['0.3', '1', '.3', '0', 'k']\nvar colorRegex = /(\\d*\\.\\d+|\\d+)[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]+(g|rg|k)/;\nvar getDefaultColor = function (field) {\n var _a;\n var da = (_a = field.getDefaultAppearance()) !== null && _a !== void 0 ? _a : '';\n var daMatch = findLastMatch(da, colorRegex).match;\n var _b = daMatch !== null && daMatch !== void 0 ? daMatch : [], c1 = _b[1], c2 = _b[2], c3 = _b[3], c4 = _b[4], colorSpace = _b[5];\n if (colorSpace === 'g' && c1) {\n return grayscale(Number(c1));\n }\n if (colorSpace === 'rg' && c1 && c2 && c3) {\n return rgb(Number(c1), Number(c2), Number(c3));\n }\n if (colorSpace === 'k' && c1 && c2 && c3 && c4) {\n return cmyk(Number(c1), Number(c2), Number(c3), Number(c4));\n }\n return undefined;\n};\nvar updateDefaultAppearance = function (field, color, font, fontSize) {\n var _a;\n if (fontSize === void 0) { fontSize = 0; }\n var da = [\n setFillingColor(color).toString(),\n setFontAndSize((_a = font === null || font === void 0 ? void 0 : font.name) !== null && _a !== void 0 ? _a : 'dummy__noop', fontSize).toString(),\n ].join('\\n');\n field.setDefaultAppearance(da);\n};\nexport var defaultCheckBoxAppearanceProvider = function (checkBox, widget) {\n var _a, _b, _c;\n // The `/DA` entry can be at the widget or field level - so we handle both\n var widgetColor = getDefaultColor(widget);\n var fieldColor = getDefaultColor(checkBox.acroField);\n var rectangle = widget.getRectangle();\n var ap = widget.getAppearanceCharacteristics();\n var bs = widget.getBorderStyle();\n var borderWidth = (_a = bs === null || bs === void 0 ? void 0 : bs.getWidth()) !== null && _a !== void 0 ? _a : 0;\n var rotation = reduceRotation(ap === null || ap === void 0 ? void 0 : ap.getRotation());\n var _d = adjustDimsForRotation(rectangle, rotation), width = _d.width, height = _d.height;\n var rotate = rotateInPlace(__assign(__assign({}, rectangle), { rotation: rotation }));\n var black = rgb(0, 0, 0);\n var borderColor = (_b = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBorderColor())) !== null && _b !== void 0 ? _b : black;\n var normalBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor());\n var downBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor(), 0.8);\n // Update color\n var textColor = (_c = widgetColor !== null && widgetColor !== void 0 ? widgetColor : fieldColor) !== null && _c !== void 0 ? _c : black;\n if (widgetColor) {\n updateDefaultAppearance(widget, textColor);\n }\n else {\n updateDefaultAppearance(checkBox.acroField, textColor);\n }\n var options = {\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n thickness: 1.5,\n borderWidth: borderWidth,\n borderColor: borderColor,\n markColor: textColor,\n };\n return {\n normal: {\n on: __spreadArrays(rotate, drawCheckBox(__assign(__assign({}, options), { color: normalBackgroundColor, filled: true }))),\n off: __spreadArrays(rotate, drawCheckBox(__assign(__assign({}, options), { color: normalBackgroundColor, filled: false }))),\n },\n down: {\n on: __spreadArrays(rotate, drawCheckBox(__assign(__assign({}, options), { color: downBackgroundColor, filled: true }))),\n off: __spreadArrays(rotate, drawCheckBox(__assign(__assign({}, options), { color: downBackgroundColor, filled: false }))),\n },\n };\n};\nexport var defaultRadioGroupAppearanceProvider = function (radioGroup, widget) {\n var _a, _b, _c;\n // The `/DA` entry can be at the widget or field level - so we handle both\n var widgetColor = getDefaultColor(widget);\n var fieldColor = getDefaultColor(radioGroup.acroField);\n var rectangle = widget.getRectangle();\n var ap = widget.getAppearanceCharacteristics();\n var bs = widget.getBorderStyle();\n var borderWidth = (_a = bs === null || bs === void 0 ? void 0 : bs.getWidth()) !== null && _a !== void 0 ? _a : 0;\n var rotation = reduceRotation(ap === null || ap === void 0 ? void 0 : ap.getRotation());\n var _d = adjustDimsForRotation(rectangle, rotation), width = _d.width, height = _d.height;\n var rotate = rotateInPlace(__assign(__assign({}, rectangle), { rotation: rotation }));\n var black = rgb(0, 0, 0);\n var borderColor = (_b = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBorderColor())) !== null && _b !== void 0 ? _b : black;\n var normalBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor());\n var downBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor(), 0.8);\n // Update color\n var textColor = (_c = widgetColor !== null && widgetColor !== void 0 ? widgetColor : fieldColor) !== null && _c !== void 0 ? _c : black;\n if (widgetColor) {\n updateDefaultAppearance(widget, textColor);\n }\n else {\n updateDefaultAppearance(radioGroup.acroField, textColor);\n }\n var options = {\n x: width / 2,\n y: height / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth: borderWidth,\n borderColor: borderColor,\n dotColor: textColor,\n };\n return {\n normal: {\n on: __spreadArrays(rotate, drawRadioButton(__assign(__assign({}, options), { color: normalBackgroundColor, filled: true }))),\n off: __spreadArrays(rotate, drawRadioButton(__assign(__assign({}, options), { color: normalBackgroundColor, filled: false }))),\n },\n down: {\n on: __spreadArrays(rotate, drawRadioButton(__assign(__assign({}, options), { color: downBackgroundColor, filled: true }))),\n off: __spreadArrays(rotate, drawRadioButton(__assign(__assign({}, options), { color: downBackgroundColor, filled: false }))),\n },\n };\n};\nexport var defaultButtonAppearanceProvider = function (button, widget, font) {\n var _a, _b, _c, _d, _e;\n // The `/DA` entry can be at the widget or field level - so we handle both\n var widgetColor = getDefaultColor(widget);\n var fieldColor = getDefaultColor(button.acroField);\n var widgetFontSize = getDefaultFontSize(widget);\n var fieldFontSize = getDefaultFontSize(button.acroField);\n var rectangle = widget.getRectangle();\n var ap = widget.getAppearanceCharacteristics();\n var bs = widget.getBorderStyle();\n var captions = ap === null || ap === void 0 ? void 0 : ap.getCaptions();\n var normalText = (_a = captions === null || captions === void 0 ? void 0 : captions.normal) !== null && _a !== void 0 ? _a : '';\n var downText = (_c = (_b = captions === null || captions === void 0 ? void 0 : captions.down) !== null && _b !== void 0 ? _b : normalText) !== null && _c !== void 0 ? _c : '';\n var borderWidth = (_d = bs === null || bs === void 0 ? void 0 : bs.getWidth()) !== null && _d !== void 0 ? _d : 0;\n var rotation = reduceRotation(ap === null || ap === void 0 ? void 0 : ap.getRotation());\n var _f = adjustDimsForRotation(rectangle, rotation), width = _f.width, height = _f.height;\n var rotate = rotateInPlace(__assign(__assign({}, rectangle), { rotation: rotation }));\n var black = rgb(0, 0, 0);\n var borderColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBorderColor());\n var normalBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor());\n var downBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor(), 0.8);\n var bounds = {\n x: borderWidth,\n y: borderWidth,\n width: width - borderWidth * 2,\n height: height - borderWidth * 2,\n };\n var normalLayout = layoutSinglelineText(normalText, {\n alignment: TextAlignment.Center,\n fontSize: widgetFontSize !== null && widgetFontSize !== void 0 ? widgetFontSize : fieldFontSize,\n font: font,\n bounds: bounds,\n });\n var downLayout = layoutSinglelineText(downText, {\n alignment: TextAlignment.Center,\n fontSize: widgetFontSize !== null && widgetFontSize !== void 0 ? widgetFontSize : fieldFontSize,\n font: font,\n bounds: bounds,\n });\n // Update font size and color\n var fontSize = Math.min(normalLayout.fontSize, downLayout.fontSize);\n var textColor = (_e = widgetColor !== null && widgetColor !== void 0 ? widgetColor : fieldColor) !== null && _e !== void 0 ? _e : black;\n if (widgetColor || widgetFontSize !== undefined) {\n updateDefaultAppearance(widget, textColor, font, fontSize);\n }\n else {\n updateDefaultAppearance(button.acroField, textColor, font, fontSize);\n }\n var options = {\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth: borderWidth,\n borderColor: borderColor,\n textColor: textColor,\n font: font.name,\n fontSize: fontSize,\n };\n return {\n normal: __spreadArrays(rotate, drawButton(__assign(__assign({}, options), { color: normalBackgroundColor, textLines: [normalLayout.line] }))),\n down: __spreadArrays(rotate, drawButton(__assign(__assign({}, options), { color: downBackgroundColor, textLines: [downLayout.line] }))),\n };\n};\nexport var defaultTextFieldAppearanceProvider = function (textField, widget, font) {\n var _a, _b, _c, _d;\n // The `/DA` entry can be at the widget or field level - so we handle both\n var widgetColor = getDefaultColor(widget);\n var fieldColor = getDefaultColor(textField.acroField);\n var widgetFontSize = getDefaultFontSize(widget);\n var fieldFontSize = getDefaultFontSize(textField.acroField);\n var rectangle = widget.getRectangle();\n var ap = widget.getAppearanceCharacteristics();\n var bs = widget.getBorderStyle();\n var text = (_a = textField.getText()) !== null && _a !== void 0 ? _a : '';\n var borderWidth = (_b = bs === null || bs === void 0 ? void 0 : bs.getWidth()) !== null && _b !== void 0 ? _b : 0;\n var rotation = reduceRotation(ap === null || ap === void 0 ? void 0 : ap.getRotation());\n var _e = adjustDimsForRotation(rectangle, rotation), width = _e.width, height = _e.height;\n var rotate = rotateInPlace(__assign(__assign({}, rectangle), { rotation: rotation }));\n var black = rgb(0, 0, 0);\n var borderColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBorderColor());\n var normalBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor());\n var textLines;\n var fontSize;\n var padding = textField.isCombed() ? 0 : 1;\n var bounds = {\n x: borderWidth + padding,\n y: borderWidth + padding,\n width: width - (borderWidth + padding) * 2,\n height: height - (borderWidth + padding) * 2,\n };\n if (textField.isMultiline()) {\n var layout = layoutMultilineText(text, {\n alignment: textField.getAlignment(),\n fontSize: widgetFontSize !== null && widgetFontSize !== void 0 ? widgetFontSize : fieldFontSize,\n font: font,\n bounds: bounds,\n });\n textLines = layout.lines;\n fontSize = layout.fontSize;\n }\n else if (textField.isCombed()) {\n var layout = layoutCombedText(text, {\n fontSize: widgetFontSize !== null && widgetFontSize !== void 0 ? widgetFontSize : fieldFontSize,\n font: font,\n bounds: bounds,\n cellCount: (_c = textField.getMaxLength()) !== null && _c !== void 0 ? _c : 0,\n });\n textLines = layout.cells;\n fontSize = layout.fontSize;\n }\n else {\n var layout = layoutSinglelineText(text, {\n alignment: textField.getAlignment(),\n fontSize: widgetFontSize !== null && widgetFontSize !== void 0 ? widgetFontSize : fieldFontSize,\n font: font,\n bounds: bounds,\n });\n textLines = [layout.line];\n fontSize = layout.fontSize;\n }\n // Update font size and color\n var textColor = (_d = widgetColor !== null && widgetColor !== void 0 ? widgetColor : fieldColor) !== null && _d !== void 0 ? _d : black;\n if (widgetColor || widgetFontSize !== undefined) {\n updateDefaultAppearance(widget, textColor, font, fontSize);\n }\n else {\n updateDefaultAppearance(textField.acroField, textColor, font, fontSize);\n }\n var options = {\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth: borderWidth !== null && borderWidth !== void 0 ? borderWidth : 0,\n borderColor: borderColor,\n textColor: textColor,\n font: font.name,\n fontSize: fontSize,\n color: normalBackgroundColor,\n textLines: textLines,\n padding: padding,\n };\n return __spreadArrays(rotate, drawTextField(options));\n};\nexport var defaultDropdownAppearanceProvider = function (dropdown, widget, font) {\n var _a, _b, _c;\n // The `/DA` entry can be at the widget or field level - so we handle both\n var widgetColor = getDefaultColor(widget);\n var fieldColor = getDefaultColor(dropdown.acroField);\n var widgetFontSize = getDefaultFontSize(widget);\n var fieldFontSize = getDefaultFontSize(dropdown.acroField);\n var rectangle = widget.getRectangle();\n var ap = widget.getAppearanceCharacteristics();\n var bs = widget.getBorderStyle();\n var text = (_a = dropdown.getSelected()[0]) !== null && _a !== void 0 ? _a : '';\n var borderWidth = (_b = bs === null || bs === void 0 ? void 0 : bs.getWidth()) !== null && _b !== void 0 ? _b : 0;\n var rotation = reduceRotation(ap === null || ap === void 0 ? void 0 : ap.getRotation());\n var _d = adjustDimsForRotation(rectangle, rotation), width = _d.width, height = _d.height;\n var rotate = rotateInPlace(__assign(__assign({}, rectangle), { rotation: rotation }));\n var black = rgb(0, 0, 0);\n var borderColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBorderColor());\n var normalBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor());\n var padding = 1;\n var bounds = {\n x: borderWidth + padding,\n y: borderWidth + padding,\n width: width - (borderWidth + padding) * 2,\n height: height - (borderWidth + padding) * 2,\n };\n var _e = layoutSinglelineText(text, {\n alignment: TextAlignment.Left,\n fontSize: widgetFontSize !== null && widgetFontSize !== void 0 ? widgetFontSize : fieldFontSize,\n font: font,\n bounds: bounds,\n }), line = _e.line, fontSize = _e.fontSize;\n // Update font size and color\n var textColor = (_c = widgetColor !== null && widgetColor !== void 0 ? widgetColor : fieldColor) !== null && _c !== void 0 ? _c : black;\n if (widgetColor || widgetFontSize !== undefined) {\n updateDefaultAppearance(widget, textColor, font, fontSize);\n }\n else {\n updateDefaultAppearance(dropdown.acroField, textColor, font, fontSize);\n }\n var options = {\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth: borderWidth !== null && borderWidth !== void 0 ? borderWidth : 0,\n borderColor: borderColor,\n textColor: textColor,\n font: font.name,\n fontSize: fontSize,\n color: normalBackgroundColor,\n textLines: [line],\n padding: padding,\n };\n return __spreadArrays(rotate, drawTextField(options));\n};\nexport var defaultOptionListAppearanceProvider = function (optionList, widget, font) {\n var _a, _b;\n // The `/DA` entry can be at the widget or field level - so we handle both\n var widgetColor = getDefaultColor(widget);\n var fieldColor = getDefaultColor(optionList.acroField);\n var widgetFontSize = getDefaultFontSize(widget);\n var fieldFontSize = getDefaultFontSize(optionList.acroField);\n var rectangle = widget.getRectangle();\n var ap = widget.getAppearanceCharacteristics();\n var bs = widget.getBorderStyle();\n var borderWidth = (_a = bs === null || bs === void 0 ? void 0 : bs.getWidth()) !== null && _a !== void 0 ? _a : 0;\n var rotation = reduceRotation(ap === null || ap === void 0 ? void 0 : ap.getRotation());\n var _c = adjustDimsForRotation(rectangle, rotation), width = _c.width, height = _c.height;\n var rotate = rotateInPlace(__assign(__assign({}, rectangle), { rotation: rotation }));\n var black = rgb(0, 0, 0);\n var borderColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBorderColor());\n var normalBackgroundColor = componentsToColor(ap === null || ap === void 0 ? void 0 : ap.getBackgroundColor());\n var options = optionList.getOptions();\n var selected = optionList.getSelected();\n if (optionList.isSorted())\n options.sort();\n var text = '';\n for (var idx = 0, len = options.length; idx < len; idx++) {\n text += options[idx];\n if (idx < len - 1)\n text += '\\n';\n }\n var padding = 1;\n var bounds = {\n x: borderWidth + padding,\n y: borderWidth + padding,\n width: width - (borderWidth + padding) * 2,\n height: height - (borderWidth + padding) * 2,\n };\n var _d = layoutMultilineText(text, {\n alignment: TextAlignment.Left,\n fontSize: widgetFontSize !== null && widgetFontSize !== void 0 ? widgetFontSize : fieldFontSize,\n font: font,\n bounds: bounds,\n }), lines = _d.lines, fontSize = _d.fontSize, lineHeight = _d.lineHeight;\n var selectedLines = [];\n for (var idx = 0, len = lines.length; idx < len; idx++) {\n var line = lines[idx];\n if (selected.includes(line.text))\n selectedLines.push(idx);\n }\n var blue = rgb(153 / 255, 193 / 255, 218 / 255);\n // Update font size and color\n var textColor = (_b = widgetColor !== null && widgetColor !== void 0 ? widgetColor : fieldColor) !== null && _b !== void 0 ? _b : black;\n if (widgetColor || widgetFontSize !== undefined) {\n updateDefaultAppearance(widget, textColor, font, fontSize);\n }\n else {\n updateDefaultAppearance(optionList.acroField, textColor, font, fontSize);\n }\n return __spreadArrays(rotate, drawOptionList({\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth: borderWidth !== null && borderWidth !== void 0 ? borderWidth : 0,\n borderColor: borderColor,\n textColor: textColor,\n font: font.name,\n fontSize: fontSize,\n color: normalBackgroundColor,\n textLines: lines,\n lineHeight: lineHeight,\n selectedColor: blue,\n selectedLines: selectedLines,\n padding: padding,\n }));\n};\n//# sourceMappingURL=appearances.js.map","import { __awaiter, __generator } from \"tslib\";\nimport PDFDocument from \"./PDFDocument\";\nimport { PDFPageEmbedder, PDFRef } from \"../core\";\nimport { assertIs } from \"../utils\";\n/**\n * Represents a PDF page that has been embedded in a [[PDFDocument]].\n */\nvar PDFEmbeddedPage = /** @class */ (function () {\n function PDFEmbeddedPage(ref, doc, embedder) {\n this.alreadyEmbedded = false;\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n assertIs(embedder, 'embedder', [[PDFPageEmbedder, 'PDFPageEmbedder']]);\n this.ref = ref;\n this.doc = doc;\n this.width = embedder.width;\n this.height = embedder.height;\n this.embedder = embedder;\n }\n /**\n * Compute the width and height of this page after being scaled by the\n * given `factor`. For example:\n * ```js\n * embeddedPage.width // => 500\n * embeddedPage.height // => 250\n *\n * const scaled = embeddedPage.scale(0.5)\n * scaled.width // => 250\n * scaled.height // => 125\n * ```\n * This operation is often useful before drawing a page with\n * [[PDFPage.drawPage]] to compute the `width` and `height` options.\n * @param factor The factor by which this page should be scaled.\n * @returns The width and height of the page after being scaled.\n */\n PDFEmbeddedPage.prototype.scale = function (factor) {\n assertIs(factor, 'factor', ['number']);\n return { width: this.width * factor, height: this.height * factor };\n };\n /**\n * Get the width and height of this page. For example:\n * ```js\n * const { width, height } = embeddedPage.size()\n * ```\n * @returns The width and height of the page.\n */\n PDFEmbeddedPage.prototype.size = function () {\n return this.scale(1);\n };\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all embeddable pages get embedded.\n *\n * Embed this embeddable page in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n PDFEmbeddedPage.prototype.embed = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.alreadyEmbedded) return [3 /*break*/, 2];\n return [4 /*yield*/, this.embedder.embedIntoContext(this.doc.context, this.ref)];\n case 1:\n _a.sent();\n this.alreadyEmbedded = true;\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.embedPdf]] and\n * > [[PDFDocument.embedPage]] methods, which will create instances of\n * > [[PDFEmbeddedPage]] for you.\n *\n * Create an instance of [[PDFEmbeddedPage]] from an existing ref and embedder\n *\n * @param ref The unique reference for this embedded page.\n * @param doc The document to which the embedded page will belong.\n * @param embedder The embedder that will be used to embed the page.\n */\n PDFEmbeddedPage.of = function (ref, doc, embedder) {\n return new PDFEmbeddedPage(ref, doc, embedder);\n };\n return PDFEmbeddedPage;\n}());\nexport default PDFEmbeddedPage;\n//# sourceMappingURL=PDFEmbeddedPage.js.map","import { __awaiter, __generator } from \"tslib\";\nimport PDFDocument from \"./PDFDocument\";\nimport { CustomFontEmbedder, PDFRef, StandardFontEmbedder, } from \"../core\";\nimport { assertIs, assertOrUndefined } from \"../utils\";\n/**\n * Represents a font that has been embedded in a [[PDFDocument]].\n */\nvar PDFFont = /** @class */ (function () {\n function PDFFont(ref, doc, embedder) {\n this.modified = true;\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n assertIs(embedder, 'embedder', [\n [CustomFontEmbedder, 'CustomFontEmbedder'],\n [StandardFontEmbedder, 'StandardFontEmbedder'],\n ]);\n this.ref = ref;\n this.doc = doc;\n this.name = embedder.fontName;\n this.embedder = embedder;\n }\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFPage.drawText]] method will automatically encode the text it is\n * > given.\n *\n * Encodes a string of text in this font.\n *\n * @param text The text to be encoded.\n * @returns The encoded text as a hex string.\n */\n PDFFont.prototype.encodeText = function (text) {\n assertIs(text, 'text', ['string']);\n this.modified = true;\n return this.embedder.encodeText(text);\n };\n /**\n * Measure the width of a string of text drawn in this font at a given size.\n * For example:\n * ```js\n * const width = font.widthOfTextAtSize('Foo Bar Qux Baz', 36)\n * ```\n * @param text The string of text to be measured.\n * @param size The font size to be used for this measurement.\n * @returns The width of the string of text when drawn in this font at the\n * given size.\n */\n PDFFont.prototype.widthOfTextAtSize = function (text, size) {\n assertIs(text, 'text', ['string']);\n assertIs(size, 'size', ['number']);\n return this.embedder.widthOfTextAtSize(text, size);\n };\n /**\n * Measure the height of this font at a given size. For example:\n * ```js\n * const height = font.heightAtSize(24)\n * ```\n *\n * The `options.descender` value controls whether or not the font's\n * descender is included in the height calculation.\n *\n * @param size The font size to be used for this measurement.\n * @param options The options to be used when computing this measurement.\n * @returns The height of this font at the given size.\n */\n PDFFont.prototype.heightAtSize = function (size, options) {\n var _a;\n assertIs(size, 'size', ['number']);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.descender, 'options.descender', ['boolean']);\n return this.embedder.heightOfFontAtSize(size, {\n descender: (_a = options === null || options === void 0 ? void 0 : options.descender) !== null && _a !== void 0 ? _a : true,\n });\n };\n /**\n * Compute the font size at which this font is a given height. For example:\n * ```js\n * const fontSize = font.sizeAtHeight(12)\n * ```\n * @param height The height to be used for this calculation.\n * @returns The font size at which this font is the given height.\n */\n PDFFont.prototype.sizeAtHeight = function (height) {\n assertIs(height, 'height', ['number']);\n return this.embedder.sizeOfFontAtHeight(height);\n };\n /**\n * Get the set of unicode code points that can be represented by this font.\n * @returns The set of unicode code points supported by this font.\n */\n PDFFont.prototype.getCharacterSet = function () {\n if (this.embedder instanceof StandardFontEmbedder) {\n return this.embedder.encoding.supportedCodePoints;\n }\n else {\n return this.embedder.font.characterSet;\n }\n };\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all fonts get embedded.\n *\n * Embed this font in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n PDFFont.prototype.embed = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.modified) return [3 /*break*/, 2];\n return [4 /*yield*/, this.embedder.embedIntoContext(this.doc.context, this.ref)];\n case 1:\n _a.sent();\n this.modified = false;\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.embedFont]] and\n * > [[PDFDocument.embedStandardFont]] methods, which will create instances\n * > of [[PDFFont]] for you.\n *\n * Create an instance of [[PDFFont]] from an existing ref and embedder\n *\n * @param ref The unique reference for this font.\n * @param doc The document to which the font will belong.\n * @param embedder The embedder that will be used to embed the font.\n */\n PDFFont.of = function (ref, doc, embedder) {\n return new PDFFont(ref, doc, embedder);\n };\n return PDFFont;\n}());\nexport default PDFFont;\n//# sourceMappingURL=PDFFont.js.map","import { __awaiter, __generator } from \"tslib\";\nimport PDFDocument from \"./PDFDocument\";\nimport { JpegEmbedder, PDFRef, PngEmbedder } from \"../core\";\nimport { assertIs } from \"../utils\";\n/**\n * Represents an image that has been embedded in a [[PDFDocument]].\n */\nvar PDFImage = /** @class */ (function () {\n function PDFImage(ref, doc, embedder) {\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n assertIs(embedder, 'embedder', [\n [JpegEmbedder, 'JpegEmbedder'],\n [PngEmbedder, 'PngEmbedder'],\n ]);\n this.ref = ref;\n this.doc = doc;\n this.width = embedder.width;\n this.height = embedder.height;\n this.embedder = embedder;\n }\n /**\n * Compute the width and height of this image after being scaled by the\n * given `factor`. For example:\n * ```js\n * image.width // => 500\n * image.height // => 250\n *\n * const scaled = image.scale(0.5)\n * scaled.width // => 250\n * scaled.height // => 125\n * ```\n * This operation is often useful before drawing an image with\n * [[PDFPage.drawImage]] to compute the `width` and `height` options.\n * @param factor The factor by which this image should be scaled.\n * @returns The width and height of the image after being scaled.\n */\n PDFImage.prototype.scale = function (factor) {\n assertIs(factor, 'factor', ['number']);\n return { width: this.width * factor, height: this.height * factor };\n };\n /**\n * Get the width and height of this image after scaling it as large as\n * possible while maintaining its aspect ratio and not exceeding the\n * specified `width` and `height`. For example:\n * ```\n * image.width // => 500\n * image.height // => 250\n *\n * const scaled = image.scaleToFit(750, 1000)\n * scaled.width // => 750\n * scaled.height // => 375\n * ```\n * The `width` and `height` parameters can also be thought of as the width\n * and height of a box that the scaled image must fit within.\n * @param width The bounding box's width.\n * @param height The bounding box's height.\n * @returns The width and height of the image after being scaled.\n */\n PDFImage.prototype.scaleToFit = function (width, height) {\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n var imgWidthScale = width / this.width;\n var imgHeightScale = height / this.height;\n var scale = Math.min(imgWidthScale, imgHeightScale);\n return this.scale(scale);\n };\n /**\n * Get the width and height of this image. For example:\n * ```js\n * const { width, height } = image.size()\n * ```\n * @returns The width and height of the image.\n */\n PDFImage.prototype.size = function () {\n return this.scale(1);\n };\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all images get embedded.\n *\n * Embed this image in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n PDFImage.prototype.embed = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, doc, ref;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this.embedder)\n return [2 /*return*/];\n // The image should only be embedded once. If there's a pending embed\n // operation then wait on it. Otherwise we need to start the embed.\n if (!this.embedTask) {\n _a = this, doc = _a.doc, ref = _a.ref;\n this.embedTask = this.embedder.embedIntoContext(doc.context, ref);\n }\n return [4 /*yield*/, this.embedTask];\n case 1:\n _b.sent();\n // We clear `this.embedder` so that the indirectly referenced image data\n // can be garbage collected, thus avoiding a memory leak.\n // See https://github.com/Hopding/pdf-lib/pull/1032/files.\n this.embedder = undefined;\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.embedPng]] and [[PDFDocument.embedJpg]]\n * > methods, which will create instances of [[PDFImage]] for you.\n *\n * Create an instance of [[PDFImage]] from an existing ref and embedder\n *\n * @param ref The unique reference for this image.\n * @param doc The document to which the image will belong.\n * @param embedder The embedder that will be used to embed the image.\n */\n PDFImage.of = function (ref, doc, embedder) {\n return new PDFImage(ref, doc, embedder);\n };\n return PDFImage;\n}());\nexport default PDFImage;\n//# sourceMappingURL=PDFImage.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport PDFDocument from \"../PDFDocument\";\nimport { colorToComponents, setFillingColor } from \"../colors\";\nimport { toDegrees, rotateRectangle, reduceRotation, adjustDimsForRotation, degrees, } from \"../rotations\";\nimport { PDFRef, PDFWidgetAnnotation, PDFName, MethodNotImplementedError, AcroFieldFlags, PDFAcroTerminal, AnnotationFlags, } from \"../../core\";\nimport { assertIs, assertMultiple, assertOrUndefined } from \"../../utils\";\nimport { ImageAlignment } from '../image';\nimport { drawImage, rotateInPlace } from '../operations';\nexport var assertFieldAppearanceOptions = function (options) {\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.x, 'options.x', ['number']);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.y, 'options.y', ['number']);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.width, 'options.width', ['number']);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.height, 'options.height', ['number']);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.textColor, 'options.textColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.backgroundColor, 'options.backgroundColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.borderColor, 'options.borderColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.borderWidth, 'options.borderWidth', ['number']);\n assertOrUndefined(options === null || options === void 0 ? void 0 : options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n};\n/**\n * Represents a field of a [[PDFForm]].\n *\n * This class is effectively abstract. All fields in a [[PDFForm]] will\n * actually be an instance of a subclass of this class.\n *\n * Note that each field in a PDF is represented by a single field object.\n * However, a given field object may be rendered at multiple locations within\n * the document (across one or more pages). The rendering of a field is\n * controlled by its widgets. Each widget causes its field to be displayed at a\n * particular location in the document.\n *\n * Most of the time each field in a PDF has only a single widget, and thus is\n * only rendered once. However, if a field is rendered multiple times, it will\n * have multiple widgets - one for each location it is rendered.\n *\n * This abstraction of field objects and widgets is defined in the PDF\n * specification and dictates how PDF files store fields and where they are\n * to be rendered.\n */\nvar PDFField = /** @class */ (function () {\n function PDFField(acroField, ref, doc) {\n assertIs(acroField, 'acroField', [[PDFAcroTerminal, 'PDFAcroTerminal']]);\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n this.acroField = acroField;\n this.ref = ref;\n this.doc = doc;\n }\n /**\n * Get the fully qualified name of this field. For example:\n * ```js\n * const fields = form.getFields()\n * fields.forEach(field => {\n * const name = field.getName()\n * console.log('Field name:', name)\n * })\n * ```\n * Note that PDF fields are structured as a tree. Each field is the\n * descendent of a series of ancestor nodes all the way up to the form node,\n * which is always the root of the tree. Each node in the tree (except for\n * the form node) has a partial name. Partial names can be composed of any\n * unicode characters except a period (`.`). The fully qualified name of a\n * field is composed of the partial names of all its ancestors joined\n * with periods. This means that splitting the fully qualified name on\n * periods and taking the last element of the resulting array will give you\n * the partial name of a specific field.\n * @returns The fully qualified name of this field.\n */\n PDFField.prototype.getName = function () {\n var _a;\n return (_a = this.acroField.getFullyQualifiedName()) !== null && _a !== void 0 ? _a : '';\n };\n /**\n * Returns `true` if this field is read only. This means that PDF readers\n * will not allow users to interact with the field or change its value. See\n * [[PDFField.enableReadOnly]] and [[PDFField.disableReadOnly]].\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * if (field.isReadOnly()) console.log('Read only is enabled')\n * ```\n * @returns Whether or not this is a read only field.\n */\n PDFField.prototype.isReadOnly = function () {\n return this.acroField.hasFlag(AcroFieldFlags.ReadOnly);\n };\n /**\n * Prevent PDF readers from allowing users to interact with this field or\n * change its value. The field will not respond to mouse or keyboard input.\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * field.enableReadOnly()\n * ```\n * Useful for fields whose values are computed, imported from a database, or\n * prefilled by software before being displayed to the user.\n */\n PDFField.prototype.enableReadOnly = function () {\n this.acroField.setFlagTo(AcroFieldFlags.ReadOnly, true);\n };\n /**\n * Allow users to interact with this field and change its value in PDF\n * readers via mouse and keyboard input. For example:\n * ```js\n * const field = form.getField('some.field')\n * field.disableReadOnly()\n * ```\n */\n PDFField.prototype.disableReadOnly = function () {\n this.acroField.setFlagTo(AcroFieldFlags.ReadOnly, false);\n };\n /**\n * Returns `true` if this field must have a value when the form is submitted.\n * See [[PDFField.enableRequired]] and [[PDFField.disableRequired]].\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * if (field.isRequired()) console.log('Field is required')\n * ```\n * @returns Whether or not this field is required.\n */\n PDFField.prototype.isRequired = function () {\n return this.acroField.hasFlag(AcroFieldFlags.Required);\n };\n /**\n * Require this field to have a value when the form is submitted.\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * field.enableRequired()\n * ```\n */\n PDFField.prototype.enableRequired = function () {\n this.acroField.setFlagTo(AcroFieldFlags.Required, true);\n };\n /**\n * Do not require this field to have a value when the form is submitted.\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * field.disableRequired()\n * ```\n */\n PDFField.prototype.disableRequired = function () {\n this.acroField.setFlagTo(AcroFieldFlags.Required, false);\n };\n /**\n * Returns `true` if this field's value should be exported when the form is\n * submitted. See [[PDFField.enableExporting]] and\n * [[PDFField.disableExporting]].\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * if (field.isExported()) console.log('Exporting is enabled')\n * ```\n * @returns Whether or not this field's value should be exported.\n */\n PDFField.prototype.isExported = function () {\n return !this.acroField.hasFlag(AcroFieldFlags.NoExport);\n };\n /**\n * Indicate that this field's value should be exported when the form is\n * submitted in a PDF reader. For example:\n * ```js\n * const field = form.getField('some.field')\n * field.enableExporting()\n * ```\n */\n PDFField.prototype.enableExporting = function () {\n this.acroField.setFlagTo(AcroFieldFlags.NoExport, false);\n };\n /**\n * Indicate that this field's value should **not** be exported when the form\n * is submitted in a PDF reader. For example:\n * ```js\n * const field = form.getField('some.field')\n * field.disableExporting()\n * ```\n */\n PDFField.prototype.disableExporting = function () {\n this.acroField.setFlagTo(AcroFieldFlags.NoExport, true);\n };\n /** @ignore */\n PDFField.prototype.needsAppearancesUpdate = function () {\n throw new MethodNotImplementedError(this.constructor.name, 'needsAppearancesUpdate');\n };\n /** @ignore */\n PDFField.prototype.defaultUpdateAppearances = function (_font) {\n throw new MethodNotImplementedError(this.constructor.name, 'defaultUpdateAppearances');\n };\n PDFField.prototype.markAsDirty = function () {\n this.doc.getForm().markFieldAsDirty(this.ref);\n };\n PDFField.prototype.markAsClean = function () {\n this.doc.getForm().markFieldAsClean(this.ref);\n };\n PDFField.prototype.isDirty = function () {\n return this.doc.getForm().fieldIsDirty(this.ref);\n };\n PDFField.prototype.createWidget = function (options) {\n var _a;\n var textColor = options.textColor;\n var backgroundColor = options.backgroundColor;\n var borderColor = options.borderColor;\n var borderWidth = options.borderWidth;\n var degreesAngle = toDegrees(options.rotate);\n var caption = options.caption;\n var x = options.x;\n var y = options.y;\n var width = options.width + borderWidth;\n var height = options.height + borderWidth;\n var hidden = Boolean(options.hidden);\n var pageRef = options.page;\n assertMultiple(degreesAngle, 'degreesAngle', 90);\n // Create a widget for this field\n var widget = PDFWidgetAnnotation.create(this.doc.context, this.ref);\n // Set widget properties\n var rect = rotateRectangle({ x: x, y: y, width: width, height: height }, borderWidth, degreesAngle);\n widget.setRectangle(rect);\n if (pageRef)\n widget.setP(pageRef);\n var ac = widget.getOrCreateAppearanceCharacteristics();\n if (backgroundColor) {\n ac.setBackgroundColor(colorToComponents(backgroundColor));\n }\n ac.setRotation(degreesAngle);\n if (caption)\n ac.setCaptions({ normal: caption });\n if (borderColor)\n ac.setBorderColor(colorToComponents(borderColor));\n var bs = widget.getOrCreateBorderStyle();\n if (borderWidth !== undefined)\n bs.setWidth(borderWidth);\n widget.setFlagTo(AnnotationFlags.Print, true);\n widget.setFlagTo(AnnotationFlags.Hidden, hidden);\n widget.setFlagTo(AnnotationFlags.Invisible, false);\n // Set acrofield properties\n if (textColor) {\n var da = (_a = this.acroField.getDefaultAppearance()) !== null && _a !== void 0 ? _a : '';\n var newDa = da + '\\n' + setFillingColor(textColor).toString();\n this.acroField.setDefaultAppearance(newDa);\n }\n return widget;\n };\n PDFField.prototype.updateWidgetAppearanceWithFont = function (widget, font, _a) {\n var normal = _a.normal, rollover = _a.rollover, down = _a.down;\n this.updateWidgetAppearances(widget, {\n normal: this.createAppearanceStream(widget, normal, font),\n rollover: rollover && this.createAppearanceStream(widget, rollover, font),\n down: down && this.createAppearanceStream(widget, down, font),\n });\n };\n PDFField.prototype.updateOnOffWidgetAppearance = function (widget, onValue, _a) {\n var normal = _a.normal, rollover = _a.rollover, down = _a.down;\n this.updateWidgetAppearances(widget, {\n normal: this.createAppearanceDict(widget, normal, onValue),\n rollover: rollover && this.createAppearanceDict(widget, rollover, onValue),\n down: down && this.createAppearanceDict(widget, down, onValue),\n });\n };\n PDFField.prototype.updateWidgetAppearances = function (widget, _a) {\n var normal = _a.normal, rollover = _a.rollover, down = _a.down;\n widget.setNormalAppearance(normal);\n if (rollover) {\n widget.setRolloverAppearance(rollover);\n }\n else {\n widget.removeRolloverAppearance();\n }\n if (down) {\n widget.setDownAppearance(down);\n }\n else {\n widget.removeDownAppearance();\n }\n };\n // // TODO: Do we need to do this...?\n // private foo(font: PDFFont, dict: PDFDict) {\n // if (!dict.lookup(PDFName.of('DR'))) {\n // dict.set(PDFName.of('DR'), dict.context.obj({}));\n // }\n // const DR = dict.lookup(PDFName.of('DR'), PDFDict);\n // if (!DR.lookup(PDFName.of('Font'))) {\n // DR.set(PDFName.of('Font'), dict.context.obj({}));\n // }\n // const Font = DR.lookup(PDFName.of('Font'), PDFDict);\n // Font.set(PDFName.of(font.name), font.ref);\n // }\n PDFField.prototype.createAppearanceStream = function (widget, appearance, font) {\n var _a;\n var context = this.acroField.dict.context;\n var _b = widget.getRectangle(), width = _b.width, height = _b.height;\n // TODO: Do we need to do this...?\n // if (font) {\n // this.foo(font, widget.dict);\n // this.foo(font, this.doc.getForm().acroForm.dict);\n // }\n // END TODO\n var Resources = font && { Font: (_a = {}, _a[font.name] = font.ref, _a) };\n var stream = context.formXObject(appearance, {\n Resources: Resources,\n BBox: context.obj([0, 0, width, height]),\n Matrix: context.obj([1, 0, 0, 1, 0, 0]),\n });\n var streamRef = context.register(stream);\n return streamRef;\n };\n /**\n * Create a FormXObject of the supplied image and add it to context.\n * The FormXObject size is calculated based on the widget (including\n * the alignment).\n * @param widget The widget that should display the image.\n * @param alignment The alignment of the image.\n * @param image The image that should be displayed.\n * @returns The ref for the FormXObject that was added to the context.\n */\n PDFField.prototype.createImageAppearanceStream = function (widget, image, alignment) {\n // NOTE: This implementation doesn't handle image borders.\n // NOTE: Acrobat seems to resize the image (maybe even skewing its aspect\n // ratio) to fit perfectly within the widget's rectangle. This method\n // does not currently do that. Should there be an option for that?\n var _a;\n var _b;\n var context = this.acroField.dict.context;\n var rectangle = widget.getRectangle();\n var ap = widget.getAppearanceCharacteristics();\n var bs = widget.getBorderStyle();\n var borderWidth = (_b = bs === null || bs === void 0 ? void 0 : bs.getWidth()) !== null && _b !== void 0 ? _b : 0;\n var rotation = reduceRotation(ap === null || ap === void 0 ? void 0 : ap.getRotation());\n var rotate = rotateInPlace(__assign(__assign({}, rectangle), { rotation: rotation }));\n var adj = adjustDimsForRotation(rectangle, rotation);\n var imageDims = image.scaleToFit(adj.width - borderWidth * 2, adj.height - borderWidth * 2);\n // Support borders on images and maybe other properties\n var options = {\n x: borderWidth,\n y: borderWidth,\n width: imageDims.width,\n height: imageDims.height,\n //\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n };\n if (alignment === ImageAlignment.Center) {\n options.x += (adj.width - borderWidth * 2) / 2 - imageDims.width / 2;\n options.y += (adj.height - borderWidth * 2) / 2 - imageDims.height / 2;\n }\n else if (alignment === ImageAlignment.Right) {\n options.x = adj.width - borderWidth - imageDims.width;\n options.y = adj.height - borderWidth - imageDims.height;\n }\n var imageName = this.doc.context.addRandomSuffix('Image', 10);\n var appearance = __spreadArrays(rotate, drawImage(imageName, options));\n ////////////\n var Resources = { XObject: (_a = {}, _a[imageName] = image.ref, _a) };\n var stream = context.formXObject(appearance, {\n Resources: Resources,\n BBox: context.obj([0, 0, rectangle.width, rectangle.height]),\n Matrix: context.obj([1, 0, 0, 1, 0, 0]),\n });\n return context.register(stream);\n };\n PDFField.prototype.createAppearanceDict = function (widget, appearance, onValue) {\n var context = this.acroField.dict.context;\n var onStreamRef = this.createAppearanceStream(widget, appearance.on);\n var offStreamRef = this.createAppearanceStream(widget, appearance.off);\n var appearanceDict = context.obj({});\n appearanceDict.set(onValue, onStreamRef);\n appearanceDict.set(PDFName.of('Off'), offStreamRef);\n return appearanceDict;\n };\n return PDFField;\n}());\nexport default PDFField;\n//# sourceMappingURL=PDFField.js.map","export var StandardFonts;\n(function (StandardFonts) {\n StandardFonts[\"Courier\"] = \"Courier\";\n StandardFonts[\"CourierBold\"] = \"Courier-Bold\";\n StandardFonts[\"CourierOblique\"] = \"Courier-Oblique\";\n StandardFonts[\"CourierBoldOblique\"] = \"Courier-BoldOblique\";\n StandardFonts[\"Helvetica\"] = \"Helvetica\";\n StandardFonts[\"HelveticaBold\"] = \"Helvetica-Bold\";\n StandardFonts[\"HelveticaOblique\"] = \"Helvetica-Oblique\";\n StandardFonts[\"HelveticaBoldOblique\"] = \"Helvetica-BoldOblique\";\n StandardFonts[\"TimesRoman\"] = \"Times-Roman\";\n StandardFonts[\"TimesRomanBold\"] = \"Times-Bold\";\n StandardFonts[\"TimesRomanItalic\"] = \"Times-Italic\";\n StandardFonts[\"TimesRomanBoldItalic\"] = \"Times-BoldItalic\";\n StandardFonts[\"Symbol\"] = \"Symbol\";\n StandardFonts[\"ZapfDingbats\"] = \"ZapfDingbats\";\n})(StandardFonts || (StandardFonts = {}));\n//# sourceMappingURL=StandardFonts.js.map","import { __extends } from \"tslib\";\nimport PDFPage from \"../PDFPage\";\nimport { normalizeAppearance, defaultCheckBoxAppearanceProvider, } from \"./appearances\";\nimport { rgb } from \"../colors\";\nimport { degrees } from \"../rotations\";\nimport PDFField, { assertFieldAppearanceOptions, } from \"./PDFField\";\nimport { PDFName, PDFDict, PDFAcroCheckBox, } from \"../../core\";\nimport { assertIs, assertOrUndefined } from \"../../utils\";\n/**\n * Represents a check box field of a [[PDFForm]].\n *\n * [[PDFCheckBox]] fields are interactive boxes that users can click with their\n * mouse. This type of [[PDFField]] has two states: `on` and `off`. The purpose\n * of a check box is to enable users to select from one or more options, where\n * each option is represented by a single check box. Check boxes are typically\n * square in shape and display a check mark when they are in the `on` state.\n */\nvar PDFCheckBox = /** @class */ (function (_super) {\n __extends(PDFCheckBox, _super);\n function PDFCheckBox(acroCheckBox, ref, doc) {\n var _this = _super.call(this, acroCheckBox, ref, doc) || this;\n assertIs(acroCheckBox, 'acroCheckBox', [\n [PDFAcroCheckBox, 'PDFAcroCheckBox'],\n ]);\n _this.acroField = acroCheckBox;\n return _this;\n }\n /**\n * Mark this check box. This operation is analogous to a human user clicking\n * a check box to fill it in a PDF reader. This method will update the\n * underlying state of the check box field to indicate it has been selected.\n * PDF libraries and readers will be able to extract this value from the\n * saved document and determine that it was selected.\n *\n * For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * checkBox.check()\n * ```\n *\n * This method will mark this check box as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated appearance\n * streams will display a check mark inside the widgets of this check box\n * field.\n */\n PDFCheckBox.prototype.check = function () {\n var _a;\n var onValue = (_a = this.acroField.getOnValue()) !== null && _a !== void 0 ? _a : PDFName.of('Yes');\n this.markAsDirty();\n this.acroField.setValue(onValue);\n };\n /**\n * Clears this check box. This operation is analogous to a human user clicking\n * a check box to unmark it in a PDF reader. This method will update the\n * underlying state of the check box field to indicate it has been deselected.\n * PDF libraries and readers will be able to extract this value from the\n * saved document and determine that it was not selected.\n *\n * For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * checkBox.uncheck()\n * ```\n *\n * This method will mark this check box as dirty. See [[PDFCheckBox.check]]\n * for more details about what this means.\n */\n PDFCheckBox.prototype.uncheck = function () {\n this.markAsDirty();\n this.acroField.setValue(PDFName.of('Off'));\n };\n /**\n * Returns `true` if this check box is selected (either by a human user via\n * a PDF reader, or else programmatically via software). For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * if (checkBox.isChecked()) console.log('check box is selected')\n * ```\n * @returns Whether or not this check box is selected.\n */\n PDFCheckBox.prototype.isChecked = function () {\n var onValue = this.acroField.getOnValue();\n return !!onValue && onValue === this.acroField.getValue();\n };\n /**\n * Show this check box on the specified page. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const checkBox = form.createCheckBox('some.checkBox.field')\n *\n * checkBox.addToPage(page, {\n * x: 50,\n * y: 75,\n * width: 25,\n * height: 25,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * })\n * ```\n * This will create a new widget for this check box field.\n * @param page The page to which this check box widget should be added.\n * @param options The options to be used when adding this check box widget.\n */\n PDFCheckBox.prototype.addToPage = function (page, options) {\n var _a, _b, _c, _d, _e, _f;\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n if (!options)\n options = {};\n if (!('textColor' in options))\n options.textColor = rgb(0, 0, 0);\n if (!('backgroundColor' in options))\n options.backgroundColor = rgb(1, 1, 1);\n if (!('borderColor' in options))\n options.borderColor = rgb(0, 0, 0);\n if (!('borderWidth' in options))\n options.borderWidth = 1;\n // Create a widget for this check box\n var widget = this.createWidget({\n x: (_a = options.x) !== null && _a !== void 0 ? _a : 0,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : 0,\n width: (_c = options.width) !== null && _c !== void 0 ? _c : 50,\n height: (_d = options.height) !== null && _d !== void 0 ? _d : 50,\n textColor: options.textColor,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: (_e = options.borderWidth) !== null && _e !== void 0 ? _e : 0,\n rotate: (_f = options.rotate) !== null && _f !== void 0 ? _f : degrees(0),\n hidden: options.hidden,\n page: page.ref,\n });\n var widgetRef = this.doc.context.register(widget.dict);\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n // Set appearance streams for widget\n widget.setAppearanceState(PDFName.of('Off'));\n this.updateWidgetAppearance(widget, PDFName.of('Yes'));\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n };\n /**\n * Returns `true` if any of this check box's widgets do not have an\n * appearance stream for its current state. For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * if (checkBox.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this check box needs an appearance update.\n */\n PDFCheckBox.prototype.needsAppearancesUpdate = function () {\n var _a;\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var state = widget.getAppearanceState();\n var normal = (_a = widget.getAppearances()) === null || _a === void 0 ? void 0 : _a.normal;\n if (!(normal instanceof PDFDict))\n return true;\n if (state && !normal.has(state))\n return true;\n }\n return false;\n };\n /**\n * Update the appearance streams for each of this check box's widgets using\n * the default appearance provider for check boxes. For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * checkBox.defaultUpdateAppearances()\n * ```\n */\n PDFCheckBox.prototype.defaultUpdateAppearances = function () {\n this.updateAppearances();\n };\n /**\n * Update the appearance streams for each of this check box's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for check boxs will be used. For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * checkBox.updateAppearances((field, widget) => {\n * ...\n * return {\n * normal: { on: drawCheckBox(...), off: drawCheckBox(...) },\n * down: { on: drawCheckBox(...), off: drawCheckBox(...) },\n * }\n * })\n * ```\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n PDFCheckBox.prototype.updateAppearances = function (provider) {\n var _a;\n assertOrUndefined(provider, 'provider', [Function]);\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var onValue = (_a = widget.getOnValue()) !== null && _a !== void 0 ? _a : PDFName.of('Yes');\n if (!onValue)\n continue;\n this.updateWidgetAppearance(widget, onValue, provider);\n }\n this.markAsClean();\n };\n PDFCheckBox.prototype.updateWidgetAppearance = function (widget, onValue, provider) {\n var apProvider = provider !== null && provider !== void 0 ? provider : defaultCheckBoxAppearanceProvider;\n var appearances = normalizeAppearance(apProvider(this, widget));\n this.updateOnOffWidgetAppearance(widget, onValue, appearances);\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getCheckBox]] method, which will create an\n * > instance of [[PDFCheckBox]] for you.\n *\n * Create an instance of [[PDFCheckBox]] from an existing acroCheckBox and ref\n *\n * @param acroCheckBox The underlying `PDFAcroCheckBox` for this check box.\n * @param ref The unique reference for this check box.\n * @param doc The document to which this check box will belong.\n */\n PDFCheckBox.of = function (acroCheckBox, ref, doc) {\n return new PDFCheckBox(acroCheckBox, ref, doc);\n };\n return PDFCheckBox;\n}(PDFField));\nexport default PDFCheckBox;\n//# sourceMappingURL=PDFCheckBox.js.map","import { __extends } from \"tslib\";\nimport PDFPage from \"../PDFPage\";\nimport PDFFont from \"../PDFFont\";\nimport PDFField, { assertFieldAppearanceOptions, } from \"./PDFField\";\nimport { normalizeAppearance, defaultDropdownAppearanceProvider, } from \"./appearances\";\nimport { rgb } from \"../colors\";\nimport { degrees } from \"../rotations\";\nimport { PDFHexString, PDFStream, PDFAcroComboBox, AcroChoiceFlags, } from \"../../core\";\nimport { assertIs, assertOrUndefined, assertPositive } from \"../../utils\";\n/**\n * Represents a dropdown field of a [[PDFForm]].\n *\n * [[PDFDropdown]] fields are interactive text boxes that display a single\n * element (the currently selected value). The purpose of a dropdown is to\n * enable users to select a single option from a set of possible options. Users\n * can click on a dropdown to view the full list of options it provides.\n * Clicking on an option in the list will cause it to be selected and displayed\n * in the dropdown's text box. Some dropdowns allow users to enter text\n * directly into the box from their keyboard, rather than only being allowed to\n * choose an option from the list (see [[PDFDropdown.isEditable]]).\n */\nvar PDFDropdown = /** @class */ (function (_super) {\n __extends(PDFDropdown, _super);\n function PDFDropdown(acroComboBox, ref, doc) {\n var _this = _super.call(this, acroComboBox, ref, doc) || this;\n assertIs(acroComboBox, 'acroComboBox', [\n [PDFAcroComboBox, 'PDFAcroComboBox'],\n ]);\n _this.acroField = acroComboBox;\n return _this;\n }\n /**\n * Get the list of available options for this dropdown. These options will be\n * displayed to users who click on this dropdown in a PDF reader.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * const options = dropdown.getOptions()\n * console.log('Dropdown options:', options)\n * ```\n * @returns The options for this dropdown.\n */\n PDFDropdown.prototype.getOptions = function () {\n var rawOptions = this.acroField.getOptions();\n var options = new Array(rawOptions.length);\n for (var idx = 0, len = options.length; idx < len; idx++) {\n var _a = rawOptions[idx], display = _a.display, value = _a.value;\n options[idx] = (display !== null && display !== void 0 ? display : value).decodeText();\n }\n return options;\n };\n /**\n * Get the selected options for this dropdown. These are the values that were\n * selected by a human user via a PDF reader, or programatically via\n * software.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * const selections = dropdown.getSelected()\n * console.log('Dropdown selections:', selections)\n * ```\n * > **NOTE:** Note that PDF readers only display one selected option when\n * > rendering dropdowns. However, the PDF specification does allow for\n * > multiple values to be selected in a dropdown. As such, the `pdf-lib`\n * > API supports this. However, in most cases the array returned by this\n * > method will contain only a single element (or no elements).\n * @returns The selected options in this dropdown.\n */\n PDFDropdown.prototype.getSelected = function () {\n var values = this.acroField.getValues();\n var selected = new Array(values.length);\n for (var idx = 0, len = values.length; idx < len; idx++) {\n selected[idx] = values[idx].decodeText();\n }\n return selected;\n };\n /**\n * Set the list of options that are available for this dropdown. These are\n * the values that will be available for users to select when they view this\n * dropdown in a PDF reader. Note that preexisting options for this dropdown\n * will be removed. Only the values passed as `options` will be available to\n * select.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('planets.dropdown')\n * dropdown.setOptions(['Earth', 'Mars', 'Pluto', 'Venus'])\n * ```\n * @param options The options that should be available in this dropdown.\n */\n PDFDropdown.prototype.setOptions = function (options) {\n assertIs(options, 'options', [Array]);\n var optionObjects = new Array(options.length);\n for (var idx = 0, len = options.length; idx < len; idx++) {\n optionObjects[idx] = { value: PDFHexString.fromText(options[idx]) };\n }\n this.acroField.setOptions(optionObjects);\n };\n /**\n * Add to the list of options that are available for this dropdown. Users\n * will be able to select these values in a PDF reader. In addition to the\n * values passed as `options`, any preexisting options for this dropdown will\n * still be available for users to select.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('rockets.dropdown')\n * dropdown.addOptions(['Saturn IV', 'Falcon Heavy'])\n * ```\n * @param options New options that should be available in this dropdown.\n */\n PDFDropdown.prototype.addOptions = function (options) {\n assertIs(options, 'options', ['string', Array]);\n var optionsArr = Array.isArray(options) ? options : [options];\n var existingOptions = this.acroField.getOptions();\n var newOptions = new Array(optionsArr.length);\n for (var idx = 0, len = optionsArr.length; idx < len; idx++) {\n newOptions[idx] = { value: PDFHexString.fromText(optionsArr[idx]) };\n }\n this.acroField.setOptions(existingOptions.concat(newOptions));\n };\n /**\n * Select one or more values for this dropdown. This operation is analogous\n * to a human user opening the dropdown in a PDF reader and clicking on a\n * value to select it. This method will update the underlying state of the\n * dropdown to indicate which values have been selected. PDF libraries and\n * readers will be able to extract these values from the saved document and\n * determine which values were selected.\n *\n * For example:\n * ```js\n * const dropdown = form.getDropdown('best.superhero.dropdown')\n * dropdown.select('One Punch Man')\n * ```\n *\n * This method will mark this dropdown as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n * display the selected option inside the widgets of this dropdown.\n *\n * **IMPORTANT:** The default font used to update appearance streams is\n * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n * that encoding errors will be thrown if the selected option for this field\n * contains characters outside the WinAnsi character set (the latin alphabet).\n *\n * Embedding a custom font and passing it to\n * [[PDFForm.updateFieldAppearances]] or [[PDFDropdown.updateAppearances]]\n * allows you to generate appearance streams with characters outside the\n * latin alphabet (assuming the custom font supports them).\n *\n * Selecting an option that does not exist in this dropdown's option list\n * (see [[PDFDropdown.getOptions]]) will enable editing on this dropdown\n * (see [[PDFDropdown.enableEditing]]).\n *\n * > **NOTE:** PDF readers only display one selected option when rendering\n * > dropdowns. However, the PDF specification does allow for multiple values\n * > to be selected in a dropdown. As such, the `pdf-lib` API supports this.\n * > However, it is not recommended to select more than one value with this\n * > method, as only one will be visible. [[PDFOptionList]] fields are better\n * > suited for displaying multiple selected values.\n *\n * @param options The options to be selected.\n * @param merge Whether or not existing selections should be preserved.\n */\n PDFDropdown.prototype.select = function (options, merge) {\n if (merge === void 0) { merge = false; }\n assertIs(options, 'options', ['string', Array]);\n assertIs(merge, 'merge', ['boolean']);\n var optionsArr = Array.isArray(options) ? options : [options];\n var validOptions = this.getOptions();\n var hasCustomOption = optionsArr.find(function (option) { return !validOptions.includes(option); });\n if (hasCustomOption)\n this.enableEditing();\n this.markAsDirty();\n if (optionsArr.length > 1 || (optionsArr.length === 1 && merge)) {\n this.enableMultiselect();\n }\n var values = new Array(optionsArr.length);\n for (var idx = 0, len = optionsArr.length; idx < len; idx++) {\n values[idx] = PDFHexString.fromText(optionsArr[idx]);\n }\n if (merge) {\n var existingValues = this.acroField.getValues();\n this.acroField.setValues(existingValues.concat(values));\n }\n else {\n this.acroField.setValues(values);\n }\n };\n /**\n * Clear all selected values for this dropdown. This operation is equivalent\n * to selecting an empty list. This method will update the underlying state\n * of the dropdown to indicate that no values have been selected.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.clear()\n * ```\n * This method will mark this text field as dirty. See [[PDFDropdown.select]]\n * for more details about what this means.\n */\n PDFDropdown.prototype.clear = function () {\n this.markAsDirty();\n this.acroField.setValues([]);\n };\n /**\n * Set the font size for this field. Larger font sizes will result in larger\n * text being displayed when PDF readers render this dropdown. Font sizes may\n * be integer or floating point numbers. Supplying a negative font size will\n * cause this method to throw an error.\n *\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.setFontSize(4)\n * dropdown.setFontSize(15.7)\n * ```\n *\n * > This method depends upon the existence of a default appearance\n * > (`/DA`) string. If this field does not have a default appearance string,\n * > or that string does not contain a font size (via the `Tf` operator),\n * > then this method will throw an error.\n *\n * @param fontSize The font size to be used when rendering text in this field.\n */\n PDFDropdown.prototype.setFontSize = function (fontSize) {\n assertPositive(fontSize, 'fontSize');\n this.acroField.setFontSize(fontSize);\n this.markAsDirty();\n };\n /**\n * Returns `true` if users are allowed to edit the selected value of this\n * dropdown directly and are not constrained by the list of available\n * options. See [[PDFDropdown.enableEditing]] and\n * [[PDFDropdown.disableEditing]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isEditable()) console.log('Editing is enabled')\n * ```\n * @returns Whether or not this dropdown is editable.\n */\n PDFDropdown.prototype.isEditable = function () {\n return this.acroField.hasFlag(AcroChoiceFlags.Edit);\n };\n /**\n * Allow users to edit the selected value of this dropdown in PDF readers\n * with their keyboard. This means that the selected value of this dropdown\n * will not be constrained by the list of available options. However, if this\n * dropdown has any available options, users will still be allowed to select\n * from that list.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableEditing()\n * ```\n */\n PDFDropdown.prototype.enableEditing = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.Edit, true);\n };\n /**\n * Do not allow users to edit the selected value of this dropdown in PDF\n * readers with their keyboard. This will constrain the selected value of\n * this dropdown to the list of available options. Users will only be able\n * to select an option from that list.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableEditing()\n * ```\n */\n PDFDropdown.prototype.disableEditing = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.Edit, false);\n };\n /**\n * Returns `true` if the option list of this dropdown is always displayed\n * in alphabetical order, irrespective of the order in which the options\n * were added to the dropdown. See [[PDFDropdown.enableSorting]] and\n * [[PDFDropdown.disableSorting]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isSorted()) console.log('Sorting is enabled')\n * ```\n * @returns Whether or not this dropdown's options are sorted.\n */\n PDFDropdown.prototype.isSorted = function () {\n return this.acroField.hasFlag(AcroChoiceFlags.Sort);\n };\n /**\n * Always display the option list of this dropdown in alphabetical order,\n * irrespective of the order in which the options were added to this dropdown.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableSorting()\n * ```\n */\n PDFDropdown.prototype.enableSorting = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.Sort, true);\n };\n /**\n * Do not always display the option list of this dropdown in alphabetical\n * order. Instead, display the options in whichever order they were added\n * to the list. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableSorting()\n * ```\n */\n PDFDropdown.prototype.disableSorting = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.Sort, false);\n };\n /**\n * Returns `true` if multiple options can be selected from this dropdown's\n * option list. See [[PDFDropdown.enableMultiselect]] and\n * [[PDFDropdown.disableMultiselect]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isMultiselect()) console.log('Multiselect is enabled')\n * ```\n * @returns Whether or not multiple options can be selected.\n */\n PDFDropdown.prototype.isMultiselect = function () {\n return this.acroField.hasFlag(AcroChoiceFlags.MultiSelect);\n };\n /**\n * Allow users to select more than one option from this dropdown's option\n * list. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableMultiselect()\n * ```\n */\n PDFDropdown.prototype.enableMultiselect = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, true);\n };\n /**\n * Do not allow users to select more than one option from this dropdown's\n * option list. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableMultiselect()\n * ```\n */\n PDFDropdown.prototype.disableMultiselect = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, false);\n };\n /**\n * Returns `true` if the selected option should be spell checked by PDF\n * readers. Spell checking will only be performed if this dropdown allows\n * editing (see [[PDFDropdown.isEditable]]). See\n * [[PDFDropdown.enableSpellChecking]] and\n * [[PDFDropdown.disableSpellChecking]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isSpellChecked()) console.log('Spell checking is enabled')\n * ```\n * @returns Whether or not this dropdown can be spell checked.\n */\n PDFDropdown.prototype.isSpellChecked = function () {\n return !this.acroField.hasFlag(AcroChoiceFlags.DoNotSpellCheck);\n };\n /**\n * Allow PDF readers to spell check the selected option of this dropdown.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableSpellChecking()\n * ```\n */\n PDFDropdown.prototype.enableSpellChecking = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.DoNotSpellCheck, false);\n };\n /**\n * Do not allow PDF readers to spell check the selected option of this\n * dropdown. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableSpellChecking()\n * ```\n */\n PDFDropdown.prototype.disableSpellChecking = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.DoNotSpellCheck, true);\n };\n /**\n * Returns `true` if the option selected by a user is stored, or \"committed\",\n * when the user clicks the option. The alternative is that the user's\n * selection is stored when the user leaves this dropdown field (by clicking\n * outside of it - on another field, for example). See\n * [[PDFDropdown.enableSelectOnClick]] and\n * [[PDFDropdown.disableSelectOnClick]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isSelectOnClick()) console.log('Select on click is enabled')\n * ```\n * @returns Whether or not options are selected immediately after they are\n * clicked.\n */\n PDFDropdown.prototype.isSelectOnClick = function () {\n return this.acroField.hasFlag(AcroChoiceFlags.CommitOnSelChange);\n };\n /**\n * Store the option selected by a user immediately after the user clicks the\n * option. Do not wait for the user to leave this dropdown field (by clicking\n * outside of it - on another field, for example). For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableSelectOnClick()\n * ```\n */\n PDFDropdown.prototype.enableSelectOnClick = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, true);\n };\n /**\n * Wait to store the option selected by a user until they leave this dropdown\n * field (by clicking outside of it - on another field, for example).\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableSelectOnClick()\n * ```\n */\n PDFDropdown.prototype.disableSelectOnClick = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, false);\n };\n /**\n * Show this dropdown on the specified page. For example:\n * ```js\n * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const dropdown = form.createDropdown('best.gundam')\n * dropdown.setOptions(['Exia', 'Dynames'])\n * dropdown.select('Exia')\n *\n * dropdown.addToPage(page, {\n * x: 50,\n * y: 75,\n * width: 200,\n * height: 100,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * font: ubuntuFont,\n * })\n * ```\n * This will create a new widget for this dropdown field.\n * @param page The page to which this dropdown widget should be added.\n * @param options The options to be used when adding this dropdown widget.\n */\n PDFDropdown.prototype.addToPage = function (page, options) {\n var _a, _b, _c, _d, _e, _f, _g;\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n if (!options)\n options = {};\n if (!('textColor' in options))\n options.textColor = rgb(0, 0, 0);\n if (!('backgroundColor' in options))\n options.backgroundColor = rgb(1, 1, 1);\n if (!('borderColor' in options))\n options.borderColor = rgb(0, 0, 0);\n if (!('borderWidth' in options))\n options.borderWidth = 1;\n // Create a widget for this dropdown\n var widget = this.createWidget({\n x: (_a = options.x) !== null && _a !== void 0 ? _a : 0,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : 0,\n width: (_c = options.width) !== null && _c !== void 0 ? _c : 200,\n height: (_d = options.height) !== null && _d !== void 0 ? _d : 50,\n textColor: options.textColor,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: (_e = options.borderWidth) !== null && _e !== void 0 ? _e : 0,\n rotate: (_f = options.rotate) !== null && _f !== void 0 ? _f : degrees(0),\n hidden: options.hidden,\n page: page.ref,\n });\n var widgetRef = this.doc.context.register(widget.dict);\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n // Set appearance streams for widget\n var font = (_g = options.font) !== null && _g !== void 0 ? _g : this.doc.getForm().getDefaultFont();\n this.updateWidgetAppearance(widget, font);\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n };\n /**\n * Returns `true` if this dropdown has been marked as dirty, or if any of\n * this dropdown's widgets do not have an appearance stream. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this dropdown needs an appearance update.\n */\n PDFDropdown.prototype.needsAppearancesUpdate = function () {\n var _a;\n if (this.isDirty())\n return true;\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var hasAppearances = ((_a = widget.getAppearances()) === null || _a === void 0 ? void 0 : _a.normal) instanceof PDFStream;\n if (!hasAppearances)\n return true;\n }\n return false;\n };\n /**\n * Update the appearance streams for each of this dropdown's widgets using\n * the default appearance provider for dropdowns. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.defaultUpdateAppearances(helvetica)\n * ```\n * @param font The font to be used for creating the appearance streams.\n */\n PDFDropdown.prototype.defaultUpdateAppearances = function (font) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.updateAppearances(font);\n };\n /**\n * Update the appearance streams for each of this dropdown's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for dropdowns will be used. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.updateAppearances(helvetica, (field, widget, font) => {\n * ...\n * return drawTextField(...)\n * })\n * ```\n * @param font The font to be used for creating the appearance streams.\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n PDFDropdown.prototype.updateAppearances = function (font, provider) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(provider, 'provider', [Function]);\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n this.updateWidgetAppearance(widget, font, provider);\n }\n this.markAsClean();\n };\n // getOption(index: number): string {}\n // getSelectedIndices(): number[] {}\n // removeOptions(option: string | string[]) {}\n // removeIndices(option: number[]) {}\n // deselect(options: string | string[]) {}\n // deselectIndices(optionIndices: number[]) {}\n PDFDropdown.prototype.updateWidgetAppearance = function (widget, font, provider) {\n var apProvider = provider !== null && provider !== void 0 ? provider : defaultDropdownAppearanceProvider;\n var appearances = normalizeAppearance(apProvider(this, widget, font));\n this.updateWidgetAppearanceWithFont(widget, font, appearances);\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getDropdown]] method, which will create an\n * > instance of [[PDFDropdown]] for you.\n *\n * Create an instance of [[PDFDropdown]] from an existing acroComboBox and ref\n *\n * @param acroComboBox The underlying `PDFAcroComboBox` for this dropdown.\n * @param ref The unique reference for this dropdown.\n * @param doc The document to which this dropdown will belong.\n */\n PDFDropdown.of = function (acroComboBox, ref, doc) {\n return new PDFDropdown(acroComboBox, ref, doc);\n };\n return PDFDropdown;\n}(PDFField));\nexport default PDFDropdown;\n//# sourceMappingURL=PDFDropdown.js.map","import { __extends } from \"tslib\";\nimport PDFPage from \"../PDFPage\";\nimport PDFFont from \"../PDFFont\";\nimport PDFField, { assertFieldAppearanceOptions, } from \"./PDFField\";\nimport { normalizeAppearance, defaultOptionListAppearanceProvider, } from \"./appearances\";\nimport { rgb } from \"../colors\";\nimport { degrees } from \"../rotations\";\nimport { PDFHexString, PDFStream, PDFAcroListBox, AcroChoiceFlags, } from \"../../core\";\nimport { assertIs, assertIsSubset, assertOrUndefined, assertPositive, } from \"../../utils\";\n/**\n * Represents an option list field of a [[PDFForm]].\n *\n * [[PDFOptionList]] fields are interactive lists of options. The purpose of an\n * option list is to enable users to select one or more options from a set of\n * possible options. Users are able to see the full set of options without\n * first having to click on the field (though scrolling may be necessary).\n * Clicking an option in the list will cause it to be selected and displayed\n * with a highlighted background. Some option lists allow users to select\n * more than one option (see [[PDFOptionList.isMultiselect]]).\n */\nvar PDFOptionList = /** @class */ (function (_super) {\n __extends(PDFOptionList, _super);\n function PDFOptionList(acroListBox, ref, doc) {\n var _this = _super.call(this, acroListBox, ref, doc) || this;\n assertIs(acroListBox, 'acroListBox', [[PDFAcroListBox, 'PDFAcroListBox']]);\n _this.acroField = acroListBox;\n return _this;\n }\n /**\n * Get the list of available options for this option list. These options will\n * be displayed to users who view this option list in a PDF reader.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * const options = optionList.getOptions()\n * console.log('Option List options:', options)\n * ```\n * @returns The options for this option list.\n */\n PDFOptionList.prototype.getOptions = function () {\n var rawOptions = this.acroField.getOptions();\n var options = new Array(rawOptions.length);\n for (var idx = 0, len = options.length; idx < len; idx++) {\n var _a = rawOptions[idx], display = _a.display, value = _a.value;\n options[idx] = (display !== null && display !== void 0 ? display : value).decodeText();\n }\n return options;\n };\n /**\n * Get the selected options for this option list. These are the values that\n * were selected by a human user via a PDF reader, or programatically via\n * software.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * const selections = optionList.getSelected()\n * console.log('Option List selections:', selections)\n * ```\n * @returns The selected options for this option list.\n */\n PDFOptionList.prototype.getSelected = function () {\n var values = this.acroField.getValues();\n var selected = new Array(values.length);\n for (var idx = 0, len = values.length; idx < len; idx++) {\n selected[idx] = values[idx].decodeText();\n }\n return selected;\n };\n /**\n * Set the list of options that are available for this option list. These are\n * the values that will be available for users to select when they view this\n * option list in a PDF reader. Note that preexisting options for this\n * option list will be removed. Only the values passed as `options` will be\n * available to select.\n *\n * For example:\n * ```js\n * const optionList = form.getOptionList('planets.optionList')\n * optionList.setOptions(['Earth', 'Mars', 'Pluto', 'Venus'])\n * ```\n *\n * This method will mark this option list as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n * display the options this field contains inside the widgets of this text\n * field (with selected options highlighted).\n *\n * **IMPORTANT:** The default font used to update appearance streams is\n * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n * that encoding errors will be thrown if this field contains any options\n * with characters outside the WinAnsi character set (the latin alphabet).\n *\n * Embedding a custom font and passing it to\n * [[PDFForm.updateFieldAppearances]] or [[PDFOptionList.updateAppearances]]\n * allows you to generate appearance streams with characters outside the\n * latin alphabet (assuming the custom font supports them).\n *\n * @param options The options that should be available in this option list.\n */\n PDFOptionList.prototype.setOptions = function (options) {\n assertIs(options, 'options', [Array]);\n this.markAsDirty();\n var optionObjects = new Array(options.length);\n for (var idx = 0, len = options.length; idx < len; idx++) {\n optionObjects[idx] = { value: PDFHexString.fromText(options[idx]) };\n }\n this.acroField.setOptions(optionObjects);\n };\n /**\n * Add to the list of options that are available for this option list. Users\n * will be able to select these values in a PDF reader. In addition to the\n * values passed as `options`, any preexisting options for this option list\n * will still be available for users to select.\n * For example:\n * ```js\n * const optionList = form.getOptionList('rockets.optionList')\n * optionList.addOptions(['Saturn IV', 'Falcon Heavy'])\n * ```\n * This method will mark this option list as dirty. See\n * [[PDFOptionList.setOptions]] for more details about what this means.\n * @param options New options that should be available in this option list.\n */\n PDFOptionList.prototype.addOptions = function (options) {\n assertIs(options, 'options', ['string', Array]);\n this.markAsDirty();\n var optionsArr = Array.isArray(options) ? options : [options];\n var existingOptions = this.acroField.getOptions();\n var newOptions = new Array(optionsArr.length);\n for (var idx = 0, len = optionsArr.length; idx < len; idx++) {\n newOptions[idx] = { value: PDFHexString.fromText(optionsArr[idx]) };\n }\n this.acroField.setOptions(existingOptions.concat(newOptions));\n };\n /**\n * Select one or more values for this option list. This operation is analogous\n * to a human user opening the option list in a PDF reader and clicking on one\n * or more values to select them. This method will update the underlying state\n * of the option list to indicate which values have been selected. PDF\n * libraries and readers will be able to extract these values from the saved\n * document and determine which values were selected.\n * For example:\n * ```js\n * const optionList = form.getOptionList('best.superheroes.optionList')\n * optionList.select(['One Punch Man', 'Iron Man'])\n * ```\n * This method will mark this option list as dirty. See\n * [[PDFOptionList.setOptions]] for more details about what this means.\n * @param options The options to be selected.\n * @param merge Whether or not existing selections should be preserved.\n */\n PDFOptionList.prototype.select = function (options, merge) {\n if (merge === void 0) { merge = false; }\n assertIs(options, 'options', ['string', Array]);\n assertIs(merge, 'merge', ['boolean']);\n var optionsArr = Array.isArray(options) ? options : [options];\n var validOptions = this.getOptions();\n assertIsSubset(optionsArr, 'option', validOptions);\n this.markAsDirty();\n if (optionsArr.length > 1 || (optionsArr.length === 1 && merge)) {\n this.enableMultiselect();\n }\n var values = new Array(optionsArr.length);\n for (var idx = 0, len = optionsArr.length; idx < len; idx++) {\n values[idx] = PDFHexString.fromText(optionsArr[idx]);\n }\n if (merge) {\n var existingValues = this.acroField.getValues();\n this.acroField.setValues(existingValues.concat(values));\n }\n else {\n this.acroField.setValues(values);\n }\n };\n /**\n * Clear all selected values for this option list. This operation is\n * equivalent to selecting an empty list. This method will update the\n * underlying state of the option list to indicate that no values have been\n * selected.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.clear()\n * ```\n * This method will mark this option list as dirty. See\n * [[PDFOptionList.setOptions]] for more details about what this means.\n */\n PDFOptionList.prototype.clear = function () {\n this.markAsDirty();\n this.acroField.setValues([]);\n };\n /**\n * Set the font size for the text in this field. There needs to be a\n * default appearance string (DA) set with a font value specified\n * for this to work. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.setFontSize(4);\n * ```\n * @param fontSize The font size to set the font to.\n */\n /**\n * Set the font size for this field. Larger font sizes will result in larger\n * text being displayed when PDF readers render this option list. Font sizes\n * may be integer or floating point numbers. Supplying a negative font size\n * will cause this method to throw an error.\n *\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.setFontSize(4)\n * optionList.setFontSize(15.7)\n * ```\n *\n * > This method depends upon the existence of a default appearance\n * > (`/DA`) string. If this field does not have a default appearance string,\n * > or that string does not contain a font size (via the `Tf` operator),\n * > then this method will throw an error.\n *\n * @param fontSize The font size to be used when rendering text in this field.\n */\n PDFOptionList.prototype.setFontSize = function (fontSize) {\n assertPositive(fontSize, 'fontSize');\n this.acroField.setFontSize(fontSize);\n this.markAsDirty();\n };\n /**\n * Returns `true` if the options of this option list are always displayed\n * in alphabetical order, irrespective of the order in which the options\n * were added to the option list. See [[PDFOptionList.enableSorting]] and\n * [[PDFOptionList.disableSorting]]. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * if (optionList.isSorted()) console.log('Sorting is enabled')\n * ```\n * @returns Whether or not this option list is sorted.\n */\n PDFOptionList.prototype.isSorted = function () {\n return this.acroField.hasFlag(AcroChoiceFlags.Sort);\n };\n /**\n * Always display the options of this option list in alphabetical order,\n * irrespective of the order in which the options were added to this option\n * list.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.enableSorting()\n * ```\n */\n PDFOptionList.prototype.enableSorting = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.Sort, true);\n };\n /**\n * Do not always display the options of this option list in alphabetical\n * order. Instead, display the options in whichever order they were added\n * to this option list. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.disableSorting()\n * ```\n */\n PDFOptionList.prototype.disableSorting = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.Sort, false);\n };\n /**\n * Returns `true` if multiple options can be selected from this option list.\n * See [[PDFOptionList.enableMultiselect]] and\n * [[PDFOptionList.disableMultiselect]]. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * if (optionList.isMultiselect()) console.log('Multiselect is enabled')\n * ```\n * @returns Whether or not multiple options can be selected.\n */\n PDFOptionList.prototype.isMultiselect = function () {\n return this.acroField.hasFlag(AcroChoiceFlags.MultiSelect);\n };\n /**\n * Allow users to select more than one option from this option list.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.enableMultiselect()\n * ```\n */\n PDFOptionList.prototype.enableMultiselect = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, true);\n };\n /**\n * Do not allow users to select more than one option from this option list.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.disableMultiselect()\n * ```\n */\n PDFOptionList.prototype.disableMultiselect = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, false);\n };\n /**\n * Returns `true` if the option selected by a user is stored, or \"committed\",\n * when the user clicks the option. The alternative is that the user's\n * selection is stored when the user leaves this option list field (by\n * clicking outside of it - on another field, for example). See\n * [[PDFOptionList.enableSelectOnClick]] and\n * [[PDFOptionList.disableSelectOnClick]]. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * if (optionList.isSelectOnClick()) console.log('Select on click is enabled')\n * ```\n * @returns Whether or not options are selected immediately after they are\n * clicked.\n */\n PDFOptionList.prototype.isSelectOnClick = function () {\n return this.acroField.hasFlag(AcroChoiceFlags.CommitOnSelChange);\n };\n /**\n * Store the option selected by a user immediately after the user clicks the\n * option. Do not wait for the user to leave this option list field (by\n * clicking outside of it - on another field, for example). For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.enableSelectOnClick()\n * ```\n */\n PDFOptionList.prototype.enableSelectOnClick = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, true);\n };\n /**\n * Wait to store the option selected by a user until they leave this option\n * list field (by clicking outside of it - on another field, for example).\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.disableSelectOnClick()\n * ```\n */\n PDFOptionList.prototype.disableSelectOnClick = function () {\n this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, false);\n };\n /**\n * Show this option list on the specified page. For example:\n * ```js\n * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const optionList = form.createOptionList('best.gundams')\n * optionList.setOptions(['Exia', 'Dynames', 'Kyrios', 'Virtue'])\n * optionList.select(['Exia', 'Virtue'])\n *\n * optionList.addToPage(page, {\n * x: 50,\n * y: 75,\n * width: 200,\n * height: 100,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * font: ubuntuFont,\n * })\n * ```\n * This will create a new widget for this option list field.\n * @param page The page to which this option list widget should be added.\n * @param options The options to be used when adding this option list widget.\n */\n PDFOptionList.prototype.addToPage = function (page, options) {\n var _a, _b, _c, _d, _e, _f, _g;\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n if (!options)\n options = {};\n if (!('textColor' in options))\n options.textColor = rgb(0, 0, 0);\n if (!('backgroundColor' in options))\n options.backgroundColor = rgb(1, 1, 1);\n if (!('borderColor' in options))\n options.borderColor = rgb(0, 0, 0);\n if (!('borderWidth' in options))\n options.borderWidth = 1;\n // Create a widget for this option list\n var widget = this.createWidget({\n x: (_a = options.x) !== null && _a !== void 0 ? _a : 0,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : 0,\n width: (_c = options.width) !== null && _c !== void 0 ? _c : 200,\n height: (_d = options.height) !== null && _d !== void 0 ? _d : 100,\n textColor: options.textColor,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: (_e = options.borderWidth) !== null && _e !== void 0 ? _e : 0,\n rotate: (_f = options.rotate) !== null && _f !== void 0 ? _f : degrees(0),\n hidden: options.hidden,\n page: page.ref,\n });\n var widgetRef = this.doc.context.register(widget.dict);\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n // Set appearance streams for widget\n var font = (_g = options.font) !== null && _g !== void 0 ? _g : this.doc.getForm().getDefaultFont();\n this.updateWidgetAppearance(widget, font);\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n };\n /**\n * Returns `true` if this option list has been marked as dirty, or if any of\n * this option list's widgets do not have an appearance stream. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * if (optionList.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this option list needs an appearance update.\n */\n PDFOptionList.prototype.needsAppearancesUpdate = function () {\n var _a;\n if (this.isDirty())\n return true;\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var hasAppearances = ((_a = widget.getAppearances()) === null || _a === void 0 ? void 0 : _a.normal) instanceof PDFStream;\n if (!hasAppearances)\n return true;\n }\n return false;\n };\n /**\n * Update the appearance streams for each of this option list's widgets using\n * the default appearance provider for option lists. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.defaultUpdateAppearances(helvetica)\n * ```\n * @param font The font to be used for creating the appearance streams.\n */\n PDFOptionList.prototype.defaultUpdateAppearances = function (font) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.updateAppearances(font);\n };\n /**\n * Update the appearance streams for each of this option list's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for option lists will be used. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.updateAppearances(helvetica, (field, widget, font) => {\n * ...\n * return drawOptionList(...)\n * })\n * ```\n * @param font The font to be used for creating the appearance streams.\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n PDFOptionList.prototype.updateAppearances = function (font, provider) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(provider, 'provider', [Function]);\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n this.updateWidgetAppearance(widget, font, provider);\n }\n this.markAsClean();\n };\n // getOption(index: number): string {}\n // getSelectedIndices(): number[] {}\n // removeOptions(option: string | string[]) {}\n // removeIndices(option: number[]) {}\n // deselect(options: string | string[]) {}\n // deselectIndices(optionIndices: number[]) {}\n PDFOptionList.prototype.updateWidgetAppearance = function (widget, font, provider) {\n var apProvider = provider !== null && provider !== void 0 ? provider : defaultOptionListAppearanceProvider;\n var appearances = normalizeAppearance(apProvider(this, widget, font));\n this.updateWidgetAppearanceWithFont(widget, font, appearances);\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getOptionList]] method, which will create\n * > an instance of [[PDFOptionList]] for you.\n *\n * Create an instance of [[PDFOptionList]] from an existing acroListBox and\n * ref\n *\n * @param acroComboBox The underlying `PDFAcroListBox` for this option list.\n * @param ref The unique reference for this option list.\n * @param doc The document to which this option list will belong.\n */\n PDFOptionList.of = function (acroListBox, ref, doc) {\n return new PDFOptionList(acroListBox, ref, doc);\n };\n return PDFOptionList;\n}(PDFField));\nexport default PDFOptionList;\n//# sourceMappingURL=PDFOptionList.js.map","import { __extends } from \"tslib\";\nimport PDFPage from \"../PDFPage\";\nimport PDFField, { assertFieldAppearanceOptions, } from \"./PDFField\";\nimport { normalizeAppearance, defaultRadioGroupAppearanceProvider, } from \"./appearances\";\nimport { rgb } from \"../colors\";\nimport { degrees } from \"../rotations\";\nimport { PDFName, PDFHexString, PDFDict, PDFAcroRadioButton, AcroButtonFlags, } from \"../../core\";\nimport { assertIs, assertOrUndefined, assertIsOneOf } from \"../../utils\";\n/**\n * Represents a radio group field of a [[PDFForm]].\n *\n * [[PDFRadioGroup]] fields are collections of radio buttons. The purpose of a\n * radio group is to enable users to select one option from a set of mutually\n * exclusive choices. Each choice in a radio group is represented by a radio\n * button. Radio buttons each have two states: `on` and `off`. At most one\n * radio button in a group may be in the `on` state at any time. Users can\n * click on a radio button to select it (and thereby automatically deselect any\n * other radio button that might have already been selected). Some radio\n * groups allow users to toggle a selected radio button `off` by clicking on\n * it (see [[PDFRadioGroup.isOffToggleable]]).\n *\n * Note that some radio groups allow multiple radio buttons to be in the `on`\n * state at the same type **if** they represent the same underlying value (see\n * [[PDFRadioGroup.isMutuallyExclusive]]).\n */\nvar PDFRadioGroup = /** @class */ (function (_super) {\n __extends(PDFRadioGroup, _super);\n function PDFRadioGroup(acroRadioButton, ref, doc) {\n var _this = _super.call(this, acroRadioButton, ref, doc) || this;\n assertIs(acroRadioButton, 'acroRadioButton', [\n [PDFAcroRadioButton, 'PDFAcroRadioButton'],\n ]);\n _this.acroField = acroRadioButton;\n return _this;\n }\n /**\n * Get the list of available options for this radio group. Each option is\n * represented by a radio button. These radio buttons are displayed at\n * various locations in the document, potentially on different pages (though\n * typically they are stacked horizontally or vertically on the same page).\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * const options = radioGroup.getOptions()\n * console.log('Radio Group options:', options)\n * ```\n * @returns The options for this radio group.\n */\n PDFRadioGroup.prototype.getOptions = function () {\n var exportValues = this.acroField.getExportValues();\n if (exportValues) {\n var exportOptions = new Array(exportValues.length);\n for (var idx = 0, len = exportValues.length; idx < len; idx++) {\n exportOptions[idx] = exportValues[idx].decodeText();\n }\n return exportOptions;\n }\n var onValues = this.acroField.getOnValues();\n var onOptions = new Array(onValues.length);\n for (var idx = 0, len = onOptions.length; idx < len; idx++) {\n onOptions[idx] = onValues[idx].decodeText();\n }\n return onOptions;\n };\n /**\n * Get the selected option for this radio group. The selected option is\n * represented by the radio button in this group that is turned on. At most\n * one radio button in a group can be selected. If no buttons in this group\n * are selected, `undefined` is returned.\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * const selected = radioGroup.getSelected()\n * console.log('Selected radio button:', selected)\n * ```\n * @returns The selected option for this radio group.\n */\n PDFRadioGroup.prototype.getSelected = function () {\n var value = this.acroField.getValue();\n if (value === PDFName.of('Off'))\n return undefined;\n var exportValues = this.acroField.getExportValues();\n if (exportValues) {\n var onValues = this.acroField.getOnValues();\n for (var idx = 0, len = onValues.length; idx < len; idx++) {\n if (onValues[idx] === value)\n return exportValues[idx].decodeText();\n }\n }\n return value.decodeText();\n };\n // // TODO: Figure out why this seems to crash Acrobat. Maybe it's because we\n // // aren't removing the widget reference from the page's Annots?\n // removeOption(option: string) {\n // assertIs(option, 'option', ['string']);\n // // TODO: Assert is valid `option`!\n // const onValues = this.acroField.getOnValues();\n // const exportValues = this.acroField.getExportValues();\n // if (exportValues) {\n // for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n // if (exportValues[idx].decodeText() === option) {\n // this.acroField.removeWidget(idx);\n // this.acroField.removeExportValue(idx);\n // }\n // }\n // } else {\n // for (let idx = 0, len = onValues.length; idx < len; idx++) {\n // const value = onValues[idx];\n // if (value.decodeText() === option) {\n // this.acroField.removeWidget(idx);\n // this.acroField.removeExportValue(idx);\n // }\n // }\n // }\n // }\n /**\n * Select an option for this radio group. This operation is analogous to a\n * human user clicking one of the radio buttons in this group via a PDF\n * reader to toggle it on. This method will update the underlying state of\n * the radio group to indicate which option has been selected. PDF libraries\n * and readers will be able to extract this value from the saved document and\n * determine which option was selected.\n *\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('best.superhero.radioGroup')\n * radioGroup.select('One Punch Man')\n * ```\n *\n * This method will mark this radio group as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated appearance\n * streams will display a dot inside the widget of this check box field\n * that represents the selected option.\n *\n * @param option The option to be selected.\n */\n PDFRadioGroup.prototype.select = function (option) {\n assertIs(option, 'option', ['string']);\n var validOptions = this.getOptions();\n assertIsOneOf(option, 'option', validOptions);\n this.markAsDirty();\n var onValues = this.acroField.getOnValues();\n var exportValues = this.acroField.getExportValues();\n if (exportValues) {\n for (var idx = 0, len = exportValues.length; idx < len; idx++) {\n if (exportValues[idx].decodeText() === option) {\n this.acroField.setValue(onValues[idx]);\n }\n }\n }\n else {\n for (var idx = 0, len = onValues.length; idx < len; idx++) {\n var value = onValues[idx];\n if (value.decodeText() === option)\n this.acroField.setValue(value);\n }\n }\n };\n /**\n * Clear any selected option for this dropdown. This will result in all\n * radio buttons in this group being toggled off. This method will update\n * the underlying state of the dropdown to indicate that no radio buttons\n * have been selected.\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.clear()\n * ```\n * This method will mark this radio group as dirty. See\n * [[PDFRadioGroup.select]] for more details about what this means.\n */\n PDFRadioGroup.prototype.clear = function () {\n this.markAsDirty();\n this.acroField.setValue(PDFName.of('Off'));\n };\n /**\n * Returns `true` if users can click on radio buttons in this group to toggle\n * them off. The alternative is that once a user clicks on a radio button\n * to select it, the only way to deselect it is by selecting on another radio\n * button in the group. See [[PDFRadioGroup.enableOffToggling]] and\n * [[PDFRadioGroup.disableOffToggling]]. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * if (radioGroup.isOffToggleable()) console.log('Off toggling is enabled')\n * ```\n */\n PDFRadioGroup.prototype.isOffToggleable = function () {\n return !this.acroField.hasFlag(AcroButtonFlags.NoToggleToOff);\n };\n /**\n * Allow users to click on selected radio buttons in this group to toggle\n * them off. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.enableOffToggling()\n * ```\n * > **NOTE:** This feature is documented in the PDF specification\n * > (Table 226). However, most PDF readers do not respect this option and\n * > prevent users from toggling radio buttons off even when it is enabled.\n * > At the time of this writing (9/6/2020) Mac's Preview software did\n * > respect the option. Adobe Acrobat, Foxit Reader, and Google Chrome did\n * > not.\n */\n PDFRadioGroup.prototype.enableOffToggling = function () {\n this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff, false);\n };\n /**\n * Prevent users from clicking on selected radio buttons in this group to\n * toggle them off. Clicking on a selected radio button will have no effect.\n * The only way to deselect a selected radio button is to click on a\n * different radio button in the group. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.disableOffToggling()\n * ```\n */\n PDFRadioGroup.prototype.disableOffToggling = function () {\n this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff, true);\n };\n /**\n * Returns `true` if the radio buttons in this group are mutually exclusive.\n * This means that when the user selects a radio button, only that specific\n * button will be turned on. Even if other radio buttons in the group\n * represent the same value, they will not be enabled. The alternative to\n * this is that clicking a radio button will select that button along with\n * any other radio buttons in the group that share the same value. See\n * [[PDFRadioGroup.enableMutualExclusion]] and\n * [[PDFRadioGroup.disableMutualExclusion]].\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * if (radioGroup.isMutuallyExclusive()) console.log('Mutual exclusion is enabled')\n * ```\n */\n PDFRadioGroup.prototype.isMutuallyExclusive = function () {\n return !this.acroField.hasFlag(AcroButtonFlags.RadiosInUnison);\n };\n /**\n * When the user clicks a radio button in this group it will be selected. In\n * addition, any other radio buttons in this group that share the same\n * underlying value will also be selected. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.enableMutualExclusion()\n * ```\n * Note that this option must be enabled prior to adding options to the\n * radio group. It does not currently apply retroactively to existing\n * radio buttons in the group.\n */\n PDFRadioGroup.prototype.enableMutualExclusion = function () {\n this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison, false);\n };\n /**\n * When the user clicks a radio button in this group only it will be selected.\n * No other radio buttons in the group will be selected, even if they share\n * the same underlying value. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.disableMutualExclusion()\n * ```\n * Note that this option must be disabled prior to adding options to the\n * radio group. It does not currently apply retroactively to existing\n * radio buttons in the group.\n */\n PDFRadioGroup.prototype.disableMutualExclusion = function () {\n this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison, true);\n };\n /**\n * Add a new radio button to this group on the specified page. For example:\n * ```js\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const radioGroup = form.createRadioGroup('best.gundam')\n *\n * const options = {\n * x: 50,\n * width: 25,\n * height: 25,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * }\n *\n * radioGroup.addOptionToPage('Exia', page, { ...options, y: 50 })\n * radioGroup.addOptionToPage('Dynames', page, { ...options, y: 110 })\n * ```\n * This will create a new radio button widget for this radio group field.\n * @param option The option that the radio button widget represents.\n * @param page The page to which the radio button widget should be added.\n * @param options The options to be used when adding the radio button widget.\n */\n PDFRadioGroup.prototype.addOptionToPage = function (option, page, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n assertIs(option, 'option', ['string']);\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n // Create a widget for this radio button\n var widget = this.createWidget({\n x: (_a = options === null || options === void 0 ? void 0 : options.x) !== null && _a !== void 0 ? _a : 0,\n y: (_b = options === null || options === void 0 ? void 0 : options.y) !== null && _b !== void 0 ? _b : 0,\n width: (_c = options === null || options === void 0 ? void 0 : options.width) !== null && _c !== void 0 ? _c : 50,\n height: (_d = options === null || options === void 0 ? void 0 : options.height) !== null && _d !== void 0 ? _d : 50,\n textColor: (_e = options === null || options === void 0 ? void 0 : options.textColor) !== null && _e !== void 0 ? _e : rgb(0, 0, 0),\n backgroundColor: (_f = options === null || options === void 0 ? void 0 : options.backgroundColor) !== null && _f !== void 0 ? _f : rgb(1, 1, 1),\n borderColor: (_g = options === null || options === void 0 ? void 0 : options.borderColor) !== null && _g !== void 0 ? _g : rgb(0, 0, 0),\n borderWidth: (_h = options === null || options === void 0 ? void 0 : options.borderWidth) !== null && _h !== void 0 ? _h : 1,\n rotate: (_j = options === null || options === void 0 ? void 0 : options.rotate) !== null && _j !== void 0 ? _j : degrees(0),\n hidden: options === null || options === void 0 ? void 0 : options.hidden,\n page: page.ref,\n });\n var widgetRef = this.doc.context.register(widget.dict);\n // Add widget to this field\n var apStateValue = this.acroField.addWidgetWithOpt(widgetRef, PDFHexString.fromText(option), !this.isMutuallyExclusive());\n // Set appearance streams for widget\n widget.setAppearanceState(PDFName.of('Off'));\n this.updateWidgetAppearance(widget, apStateValue);\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n };\n /**\n * Returns `true` if any of this group's radio button widgets do not have an\n * appearance stream for their current state. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * if (radioGroup.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this radio group needs an appearance update.\n */\n PDFRadioGroup.prototype.needsAppearancesUpdate = function () {\n var _a;\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var state = widget.getAppearanceState();\n var normal = (_a = widget.getAppearances()) === null || _a === void 0 ? void 0 : _a.normal;\n if (!(normal instanceof PDFDict))\n return true;\n if (state && !normal.has(state))\n return true;\n }\n return false;\n };\n /**\n * Update the appearance streams for each of this group's radio button widgets\n * using the default appearance provider for radio groups. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.defaultUpdateAppearances()\n * ```\n */\n PDFRadioGroup.prototype.defaultUpdateAppearances = function () {\n this.updateAppearances();\n };\n // rg.updateAppearances((field: any, widget: any) => {\n // assert(field === rg);\n // assert(widget instanceof PDFWidgetAnnotation);\n // return { on: [...rectangle, ...circle], off: [...rectangle, ...circle] };\n // });\n /**\n * Update the appearance streams for each of this group's radio button widgets\n * using the given appearance provider. If no `provider` is passed, the\n * default appearance provider for radio groups will be used. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.updateAppearances((field, widget) => {\n * ...\n * return {\n * normal: { on: drawRadioButton(...), off: drawRadioButton(...) },\n * down: { on: drawRadioButton(...), off: drawRadioButton(...) },\n * }\n * })\n * ```\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n PDFRadioGroup.prototype.updateAppearances = function (provider) {\n assertOrUndefined(provider, 'provider', [Function]);\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var onValue = widget.getOnValue();\n if (!onValue)\n continue;\n this.updateWidgetAppearance(widget, onValue, provider);\n }\n };\n PDFRadioGroup.prototype.updateWidgetAppearance = function (widget, onValue, provider) {\n var apProvider = provider !== null && provider !== void 0 ? provider : defaultRadioGroupAppearanceProvider;\n var appearances = normalizeAppearance(apProvider(this, widget));\n this.updateOnOffWidgetAppearance(widget, onValue, appearances);\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getOptionList]] method, which will create an\n * > instance of [[PDFOptionList]] for you.\n *\n * Create an instance of [[PDFOptionList]] from an existing acroRadioButton\n * and ref\n *\n * @param acroRadioButton The underlying `PDFAcroRadioButton` for this\n * radio group.\n * @param ref The unique reference for this radio group.\n * @param doc The document to which this radio group will belong.\n */\n PDFRadioGroup.of = function (acroRadioButton, ref, doc) { return new PDFRadioGroup(acroRadioButton, ref, doc); };\n return PDFRadioGroup;\n}(PDFField));\nexport default PDFRadioGroup;\n//# sourceMappingURL=PDFRadioGroup.js.map","import { __extends } from \"tslib\";\nimport PDFField from \"./PDFField\";\nimport { PDFAcroSignature } from \"../../core\";\nimport { assertIs } from \"../../utils\";\n/**\n * Represents a signature field of a [[PDFForm]].\n *\n * [[PDFSignature]] fields are digital signatures. `pdf-lib` does not\n * currently provide any specialized APIs for creating digital signatures or\n * reading the contents of existing digital signatures.\n */\nvar PDFSignature = /** @class */ (function (_super) {\n __extends(PDFSignature, _super);\n function PDFSignature(acroSignature, ref, doc) {\n var _this = _super.call(this, acroSignature, ref, doc) || this;\n assertIs(acroSignature, 'acroSignature', [\n [PDFAcroSignature, 'PDFAcroSignature'],\n ]);\n _this.acroField = acroSignature;\n return _this;\n }\n PDFSignature.prototype.needsAppearancesUpdate = function () {\n return false;\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getSignature]] method, which will create an\n * > instance of [[PDFSignature]] for you.\n *\n * Create an instance of [[PDFSignature]] from an existing acroSignature and\n * ref\n *\n * @param acroSignature The underlying `PDFAcroSignature` for this signature.\n * @param ref The unique reference for this signature.\n * @param doc The document to which this signature will belong.\n */\n PDFSignature.of = function (acroSignature, ref, doc) { return new PDFSignature(acroSignature, ref, doc); };\n return PDFSignature;\n}(PDFField));\nexport default PDFSignature;\n//# sourceMappingURL=PDFSignature.js.map","import { __extends } from \"tslib\";\nimport PDFPage from \"../PDFPage\";\nimport PDFFont from \"../PDFFont\";\nimport PDFField, { assertFieldAppearanceOptions, } from \"./PDFField\";\nimport { normalizeAppearance, defaultTextFieldAppearanceProvider, } from \"./appearances\";\nimport { rgb } from \"../colors\";\nimport { degrees } from \"../rotations\";\nimport { RichTextFieldReadError, ExceededMaxLengthError, InvalidMaxLengthError, } from \"../errors\";\nimport { ImageAlignment } from \"../image/alignment\";\nimport { TextAlignment } from \"../text/alignment\";\nimport { PDFHexString, PDFStream, PDFAcroText, AcroTextFlags, } from \"../../core\";\nimport { assertIs, assertIsOneOf, assertOrUndefined, assertPositive, assertRangeOrUndefined, } from \"../../utils\";\n/**\n * Represents a text field of a [[PDFForm]].\n *\n * [[PDFTextField]] fields are boxes that display text entered by the user. The\n * purpose of a text field is to enable users to enter text or view text values\n * in the document prefilled by software. Users can click on a text field and\n * input text via their keyboard. Some text fields allow multiple lines of text\n * to be entered (see [[PDFTextField.isMultiline]]).\n */\nvar PDFTextField = /** @class */ (function (_super) {\n __extends(PDFTextField, _super);\n function PDFTextField(acroText, ref, doc) {\n var _this = _super.call(this, acroText, ref, doc) || this;\n assertIs(acroText, 'acroText', [[PDFAcroText, 'PDFAcroText']]);\n _this.acroField = acroText;\n return _this;\n }\n /**\n * Get the text that this field contains. This text is visible to users who\n * view this field in a PDF reader.\n *\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * const text = textField.getText()\n * console.log('Text field contents:', text)\n * ```\n *\n * Note that if this text field contains no underlying value, `undefined`\n * will be returned. Text fields may also contain an underlying value that\n * is simply an empty string (`''`). This detail is largely irrelevant for\n * most applications. In general, you'll want to treat both cases the same\n * way and simply consider the text field to be empty. In either case, the\n * text field will appear empty to users when viewed in a PDF reader.\n *\n * An error will be thrown if this is a rich text field. `pdf-lib` does not\n * support reading rich text fields. Nor do most PDF readers and writers.\n * Rich text fields are based on XFA (XML Forms Architecture). Relatively few\n * PDFs use rich text fields or XFA. Unlike PDF itself, XFA is not an ISO\n * standard. XFA has been deprecated in PDF 2.0:\n * * https://en.wikipedia.org/wiki/XFA\n * * http://blog.pdfshareforms.com/pdf-2-0-release-bid-farewell-xfa-forms/\n *\n * @returns The text contained in this text field.\n */\n PDFTextField.prototype.getText = function () {\n var value = this.acroField.getValue();\n if (!value && this.isRichFormatted()) {\n throw new RichTextFieldReadError(this.getName());\n }\n return value === null || value === void 0 ? void 0 : value.decodeText();\n };\n /**\n * Set the text for this field. This operation is analogous to a human user\n * clicking on the text field in a PDF reader and typing in text via their\n * keyboard. This method will update the underlying state of the text field\n * to indicate what text has been set. PDF libraries and readers will be able\n * to extract these values from the saved document and determine what text\n * was set.\n *\n * For example:\n * ```js\n * const textField = form.getTextField('best.superhero.text.field')\n * textField.setText('One Punch Man')\n * ```\n *\n * This method will mark this text field as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n * display the text this field contains inside the widgets of this text\n * field.\n *\n * **IMPORTANT:** The default font used to update appearance streams is\n * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n * that encoding errors will be thrown if this field contains text outside\n * the WinAnsi character set (the latin alphabet).\n *\n * Embedding a custom font and passing it to\n * [[PDFForm.updateFieldAppearances]] or [[PDFTextField.updateAppearances]]\n * allows you to generate appearance streams with characters outside the\n * latin alphabet (assuming the custom font supports them).\n *\n * If this is a rich text field, it will be converted to a standard text\n * field in order to set the text. `pdf-lib` does not support writing rich\n * text strings. Nor do most PDF readers and writers. See\n * [[PDFTextField.getText]] for more information about rich text fields and\n * their deprecation in PDF 2.0.\n *\n * @param text The text this field should contain.\n */\n PDFTextField.prototype.setText = function (text) {\n assertOrUndefined(text, 'text', ['string']);\n var maxLength = this.getMaxLength();\n if (maxLength !== undefined && text && text.length > maxLength) {\n throw new ExceededMaxLengthError(text.length, maxLength, this.getName());\n }\n this.markAsDirty();\n this.disableRichFormatting();\n if (text) {\n this.acroField.setValue(PDFHexString.fromText(text));\n }\n else {\n this.acroField.removeValue();\n }\n };\n /**\n * Get the alignment for this text field. This value represents the\n * justification of the text when it is displayed to the user in PDF readers.\n * There are three possible alignments: left, center, and right. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * const alignment = textField.getAlignment()\n * if (alignment === TextAlignment.Left) console.log('Text is left justified')\n * if (alignment === TextAlignment.Center) console.log('Text is centered')\n * if (alignment === TextAlignment.Right) console.log('Text is right justified')\n * ```\n * @returns The alignment of this text field.\n */\n PDFTextField.prototype.getAlignment = function () {\n var quadding = this.acroField.getQuadding();\n // prettier-ignore\n return (quadding === 0 ? TextAlignment.Left\n : quadding === 1 ? TextAlignment.Center\n : quadding === 2 ? TextAlignment.Right\n : TextAlignment.Left);\n };\n /**\n * Set the alignment for this text field. This will determine the\n * justification of the text when it is displayed to the user in PDF readers.\n * There are three possible alignments: left, center, and right. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n *\n * // Text will be left justified when displayed\n * textField.setAlignment(TextAlignment.Left)\n *\n * // Text will be centered when displayed\n * textField.setAlignment(TextAlignment.Center)\n *\n * // Text will be right justified when displayed\n * textField.setAlignment(TextAlignment.Right)\n * ```\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n * @param alignment The alignment for this text field.\n */\n PDFTextField.prototype.setAlignment = function (alignment) {\n assertIsOneOf(alignment, 'alignment', TextAlignment);\n this.markAsDirty();\n this.acroField.setQuadding(alignment);\n };\n /**\n * Get the maximum length of this field. This value represents the maximum\n * number of characters that can be typed into this field by the user. If\n * this field does not have a maximum length, `undefined` is returned.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * const maxLength = textField.getMaxLength()\n * if (maxLength === undefined) console.log('No max length')\n * else console.log(`Max length is ${maxLength}`)\n * ```\n * @returns The maximum number of characters allowed in this field, or\n * `undefined` if no limit exists.\n */\n PDFTextField.prototype.getMaxLength = function () {\n return this.acroField.getMaxLength();\n };\n /**\n * Set the maximum length of this field. This limits the number of characters\n * that can be typed into this field by the user. This also limits the length\n * of the string that can be passed to [[PDFTextField.setText]]. This limit\n * can be removed by passing `undefined` as `maxLength`. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n *\n * // Allow between 0 and 5 characters to be entered\n * textField.setMaxLength(5)\n *\n * // Allow any number of characters to be entered\n * textField.setMaxLength(undefined)\n * ```\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n * @param maxLength The maximum number of characters allowed in this field, or\n * `undefined` to remove the limit.\n */\n PDFTextField.prototype.setMaxLength = function (maxLength) {\n assertRangeOrUndefined(maxLength, 'maxLength', 0, Number.MAX_SAFE_INTEGER);\n this.markAsDirty();\n if (maxLength === undefined) {\n this.acroField.removeMaxLength();\n }\n else {\n var text = this.getText();\n if (text && text.length > maxLength) {\n throw new InvalidMaxLengthError(text.length, maxLength, this.getName());\n }\n this.acroField.setMaxLength(maxLength);\n }\n };\n /**\n * Remove the maximum length for this text field. This allows any number of\n * characters to be typed into this field by the user. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.removeMaxLength()\n * ```\n * Calling this method is equivalent to passing `undefined` to\n * [[PDFTextField.setMaxLength]].\n */\n PDFTextField.prototype.removeMaxLength = function () {\n this.markAsDirty();\n this.acroField.removeMaxLength();\n };\n /**\n * Display an image inside the bounds of this text field's widgets. For example:\n * ```js\n * const pngImage = await pdfDoc.embedPng(...)\n * const textField = form.getTextField('some.text.field')\n * textField.setImage(pngImage)\n * ```\n * This will update the appearances streams for each of this text field's widgets.\n * @param image The image that should be displayed.\n */\n PDFTextField.prototype.setImage = function (image) {\n var fieldAlignment = this.getAlignment();\n // prettier-ignore\n var alignment = fieldAlignment === TextAlignment.Center ? ImageAlignment.Center\n : fieldAlignment === TextAlignment.Right ? ImageAlignment.Right\n : ImageAlignment.Left;\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var streamRef = this.createImageAppearanceStream(widget, image, alignment);\n this.updateWidgetAppearances(widget, { normal: streamRef });\n }\n this.markAsClean();\n };\n /**\n * Set the font size for this field. Larger font sizes will result in larger\n * text being displayed when PDF readers render this text field. Font sizes\n * may be integer or floating point numbers. Supplying a negative font size\n * will cause this method to throw an error.\n *\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.setFontSize(4)\n * textField.setFontSize(15.7)\n * ```\n *\n * > This method depends upon the existence of a default appearance\n * > (`/DA`) string. If this field does not have a default appearance string,\n * > or that string does not contain a font size (via the `Tf` operator),\n * > then this method will throw an error.\n *\n * @param fontSize The font size to be used when rendering text in this field.\n */\n PDFTextField.prototype.setFontSize = function (fontSize) {\n assertPositive(fontSize, 'fontSize');\n this.acroField.setFontSize(fontSize);\n this.markAsDirty();\n };\n /**\n * Returns `true` if each line of text is shown on a new line when this\n * field is displayed in a PDF reader. The alternative is that all lines of\n * text are merged onto a single line when displayed. See\n * [[PDFTextField.enableMultiline]] and [[PDFTextField.disableMultiline]].\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isMultiline()) console.log('Multiline is enabled')\n * ```\n * @returns Whether or not this is a multiline text field.\n */\n PDFTextField.prototype.isMultiline = function () {\n return this.acroField.hasFlag(AcroTextFlags.Multiline);\n };\n /**\n * Display each line of text on a new line when this field is displayed in a\n * PDF reader. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableMultiline()\n * ```\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n */\n PDFTextField.prototype.enableMultiline = function () {\n this.markAsDirty();\n this.acroField.setFlagTo(AcroTextFlags.Multiline, true);\n };\n /**\n * Display each line of text on the same line when this field is displayed\n * in a PDF reader. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableMultiline()\n * ```\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n */\n PDFTextField.prototype.disableMultiline = function () {\n this.markAsDirty();\n this.acroField.setFlagTo(AcroTextFlags.Multiline, false);\n };\n /**\n * Returns `true` if this is a password text field. This means that the field\n * is intended for storing a secure password. See\n * [[PDFTextField.enablePassword]] and [[PDFTextField.disablePassword]].\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isPassword()) console.log('Password is enabled')\n * ```\n * @returns Whether or not this is a password text field.\n */\n PDFTextField.prototype.isPassword = function () {\n return this.acroField.hasFlag(AcroTextFlags.Password);\n };\n /**\n * Indicate that this text field is intended for storing a secure password.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enablePassword()\n * ```\n * Values entered into password text fields should not be displayed on the\n * screen by PDF readers. Most PDF readers will display the value as\n * asterisks or bullets. PDF readers should never store values entered by the\n * user into password text fields. Similarly, applications should not\n * write data to a password text field.\n *\n * **Please note that this method does not cause entered values to be\n * encrypted or secured in any way! It simply sets a flag that PDF software\n * and readers can access to determine the _purpose_ of this field.**\n */\n PDFTextField.prototype.enablePassword = function () {\n this.acroField.setFlagTo(AcroTextFlags.Password, true);\n };\n /**\n * Indicate that this text field is **not** intended for storing a secure\n * password. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disablePassword()\n * ```\n */\n PDFTextField.prototype.disablePassword = function () {\n this.acroField.setFlagTo(AcroTextFlags.Password, false);\n };\n /**\n * Returns `true` if the contents of this text field represent a file path.\n * See [[PDFTextField.enableFileSelection]] and\n * [[PDFTextField.disableFileSelection]]. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isFileSelector()) console.log('Is a file selector')\n * ```\n * @returns Whether or not this field should contain file paths.\n */\n PDFTextField.prototype.isFileSelector = function () {\n return this.acroField.hasFlag(AcroTextFlags.FileSelect);\n };\n /**\n * Indicate that this text field is intended to store a file path. The\n * contents of the file stored at that path should be submitted as the value\n * of the field. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableFileSelection()\n * ```\n */\n PDFTextField.prototype.enableFileSelection = function () {\n this.acroField.setFlagTo(AcroTextFlags.FileSelect, true);\n };\n /**\n * Indicate that this text field is **not** intended to store a file path.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableFileSelection()\n * ```\n */\n PDFTextField.prototype.disableFileSelection = function () {\n this.acroField.setFlagTo(AcroTextFlags.FileSelect, false);\n };\n /**\n * Returns `true` if the text entered in this field should be spell checked\n * by PDF readers. See [[PDFTextField.enableSpellChecking]] and\n * [[PDFTextField.disableSpellChecking]]. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isSpellChecked()) console.log('Spell checking is enabled')\n * ```\n * @returns Whether or not this field should be spell checked.\n */\n PDFTextField.prototype.isSpellChecked = function () {\n return !this.acroField.hasFlag(AcroTextFlags.DoNotSpellCheck);\n };\n /**\n * Allow PDF readers to spell check the text entered in this field.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableSpellChecking()\n * ```\n */\n PDFTextField.prototype.enableSpellChecking = function () {\n this.acroField.setFlagTo(AcroTextFlags.DoNotSpellCheck, false);\n };\n /**\n * Do not allow PDF readers to spell check the text entered in this field.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableSpellChecking()\n * ```\n */\n PDFTextField.prototype.disableSpellChecking = function () {\n this.acroField.setFlagTo(AcroTextFlags.DoNotSpellCheck, true);\n };\n /**\n * Returns `true` if PDF readers should allow the user to scroll the text\n * field when its contents do not fit within the field's view bounds. See\n * [[PDFTextField.enableScrolling]] and [[PDFTextField.disableScrolling]].\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isScrollable()) console.log('Scrolling is enabled')\n * ```\n * @returns Whether or not the field is scrollable in PDF readers.\n */\n PDFTextField.prototype.isScrollable = function () {\n return !this.acroField.hasFlag(AcroTextFlags.DoNotScroll);\n };\n /**\n * Allow PDF readers to present a scroll bar to the user when the contents\n * of this text field do not fit within its view bounds. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableScrolling()\n * ```\n * A horizontal scroll bar should be shown for singleline fields. A vertical\n * scroll bar should be shown for multiline fields.\n */\n PDFTextField.prototype.enableScrolling = function () {\n this.acroField.setFlagTo(AcroTextFlags.DoNotScroll, false);\n };\n /**\n * Do not allow PDF readers to present a scroll bar to the user when the\n * contents of this text field do not fit within its view bounds. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableScrolling()\n * ```\n */\n PDFTextField.prototype.disableScrolling = function () {\n this.acroField.setFlagTo(AcroTextFlags.DoNotScroll, true);\n };\n /**\n * Returns `true` if this is a combed text field. This means that the field\n * is split into `n` equal size cells with one character in each (where `n`\n * is equal to the max length of the text field). The result is that all\n * characters in this field are displayed an equal distance apart from one\n * another. See [[PDFTextField.enableCombing]] and\n * [[PDFTextField.disableCombing]]. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isCombed()) console.log('Combing is enabled')\n * ```\n * Note that in order for a text field to be combed, the following must be\n * true (in addition to enabling combing):\n * * It must not be a multiline field (see [[PDFTextField.isMultiline]])\n * * It must not be a password field (see [[PDFTextField.isPassword]])\n * * It must not be a file selector field (see [[PDFTextField.isFileSelector]])\n * * It must have a max length defined (see [[PDFTextField.setMaxLength]])\n * @returns Whether or not this field is combed.\n */\n PDFTextField.prototype.isCombed = function () {\n return (this.acroField.hasFlag(AcroTextFlags.Comb) &&\n !this.isMultiline() &&\n !this.isPassword() &&\n !this.isFileSelector() &&\n this.getMaxLength() !== undefined);\n };\n /**\n * Split this field into `n` equal size cells with one character in each\n * (where `n` is equal to the max length of the text field). This will cause\n * all characters in the field to be displayed an equal distance apart from\n * one another. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableCombing()\n * ```\n *\n * In addition to calling this method, text fields must have a max length\n * defined in order to be combed (see [[PDFTextField.setMaxLength]]).\n *\n * This method will also call the following three methods internally:\n * * [[PDFTextField.disableMultiline]]\n * * [[PDFTextField.disablePassword]]\n * * [[PDFTextField.disableFileSelection]]\n *\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n */\n PDFTextField.prototype.enableCombing = function () {\n if (this.getMaxLength() === undefined) {\n var msg = \"PDFTextFields must have a max length in order to be combed\";\n console.warn(msg);\n }\n this.markAsDirty();\n this.disableMultiline();\n this.disablePassword();\n this.disableFileSelection();\n this.acroField.setFlagTo(AcroTextFlags.Comb, true);\n };\n /**\n * Turn off combing for this text field. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableCombing()\n * ```\n * See [[PDFTextField.isCombed]] and [[PDFTextField.enableCombing]] for more\n * information about what combing is.\n *\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n */\n PDFTextField.prototype.disableCombing = function () {\n this.markAsDirty();\n this.acroField.setFlagTo(AcroTextFlags.Comb, false);\n };\n /**\n * Returns `true` if this text field contains rich text. See\n * [[PDFTextField.enableRichFormatting]] and\n * [[PDFTextField.disableRichFormatting]]. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isRichFormatted()) console.log('Rich formatting enabled')\n * ```\n * @returns Whether or not this field contains rich text.\n */\n PDFTextField.prototype.isRichFormatted = function () {\n return this.acroField.hasFlag(AcroTextFlags.RichText);\n };\n /**\n * Indicate that this field contains XFA data - or rich text. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableRichFormatting()\n * ```\n * Note that `pdf-lib` does not support reading or writing rich text fields.\n * Nor do most PDF readers and writers. Rich text fields are based on XFA\n * (XML Forms Architecture). Relatively few PDFs use rich text fields or XFA.\n * Unlike PDF itself, XFA is not an ISO standard. XFA has been deprecated in\n * PDF 2.0:\n * * https://en.wikipedia.org/wiki/XFA\n * * http://blog.pdfshareforms.com/pdf-2-0-release-bid-farewell-xfa-forms/\n */\n PDFTextField.prototype.enableRichFormatting = function () {\n this.acroField.setFlagTo(AcroTextFlags.RichText, true);\n };\n /**\n * Indicate that this is a standard text field that does not XFA data (rich\n * text). For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableRichFormatting()\n * ```\n */\n PDFTextField.prototype.disableRichFormatting = function () {\n this.acroField.setFlagTo(AcroTextFlags.RichText, false);\n };\n /**\n * Show this text field on the specified page. For example:\n * ```js\n * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const textField = form.createTextField('best.gundam')\n * textField.setText('Exia')\n *\n * textField.addToPage(page, {\n * x: 50,\n * y: 75,\n * width: 200,\n * height: 100,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * font: ubuntuFont,\n * })\n * ```\n * This will create a new widget for this text field.\n * @param page The page to which this text field widget should be added.\n * @param options The options to be used when adding this text field widget.\n */\n PDFTextField.prototype.addToPage = function (page, options) {\n var _a, _b, _c, _d, _e, _f, _g;\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n if (!options)\n options = {};\n if (!('textColor' in options))\n options.textColor = rgb(0, 0, 0);\n if (!('backgroundColor' in options))\n options.backgroundColor = rgb(1, 1, 1);\n if (!('borderColor' in options))\n options.borderColor = rgb(0, 0, 0);\n if (!('borderWidth' in options))\n options.borderWidth = 1;\n // Create a widget for this text field\n var widget = this.createWidget({\n x: (_a = options.x) !== null && _a !== void 0 ? _a : 0,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : 0,\n width: (_c = options.width) !== null && _c !== void 0 ? _c : 200,\n height: (_d = options.height) !== null && _d !== void 0 ? _d : 50,\n textColor: options.textColor,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: (_e = options.borderWidth) !== null && _e !== void 0 ? _e : 0,\n rotate: (_f = options.rotate) !== null && _f !== void 0 ? _f : degrees(0),\n hidden: options.hidden,\n page: page.ref,\n });\n var widgetRef = this.doc.context.register(widget.dict);\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n // Set appearance streams for widget\n var font = (_g = options.font) !== null && _g !== void 0 ? _g : this.doc.getForm().getDefaultFont();\n this.updateWidgetAppearance(widget, font);\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n };\n /**\n * Returns `true` if this text field has been marked as dirty, or if any of\n * this text field's widgets do not have an appearance stream. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this text field needs an appearance update.\n */\n PDFTextField.prototype.needsAppearancesUpdate = function () {\n var _a;\n if (this.isDirty())\n return true;\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var hasAppearances = ((_a = widget.getAppearances()) === null || _a === void 0 ? void 0 : _a.normal) instanceof PDFStream;\n if (!hasAppearances)\n return true;\n }\n return false;\n };\n /**\n * Update the appearance streams for each of this text field's widgets using\n * the default appearance provider for text fields. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const textField = form.getTextField('some.text.field')\n * textField.defaultUpdateAppearances(helvetica)\n * ```\n * @param font The font to be used for creating the appearance streams.\n */\n PDFTextField.prototype.defaultUpdateAppearances = function (font) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.updateAppearances(font);\n };\n /**\n * Update the appearance streams for each of this text field's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for text fields will be used. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const textField = form.getTextField('some.text.field')\n * textField.updateAppearances(helvetica, (field, widget, font) => {\n * ...\n * return drawTextField(...)\n * })\n * ```\n * @param font The font to be used for creating the appearance streams.\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n PDFTextField.prototype.updateAppearances = function (font, provider) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(provider, 'provider', [Function]);\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n this.updateWidgetAppearance(widget, font, provider);\n }\n this.markAsClean();\n };\n PDFTextField.prototype.updateWidgetAppearance = function (widget, font, provider) {\n var apProvider = provider !== null && provider !== void 0 ? provider : defaultTextFieldAppearanceProvider;\n var appearances = normalizeAppearance(apProvider(this, widget, font));\n this.updateWidgetAppearanceWithFont(widget, font, appearances);\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getTextField]] method, which will create an\n * > instance of [[PDFTextField]] for you.\n *\n * Create an instance of [[PDFTextField]] from an existing acroText and ref\n *\n * @param acroText The underlying `PDFAcroText` for this text field.\n * @param ref The unique reference for this text field.\n * @param doc The document to which this text field will belong.\n */\n PDFTextField.of = function (acroText, ref, doc) {\n return new PDFTextField(acroText, ref, doc);\n };\n return PDFTextField;\n}(PDFField));\nexport default PDFTextField;\n//# sourceMappingURL=PDFTextField.js.map","import { __assign, __spreadArrays } from \"tslib\";\nimport PDFDocument from \"../PDFDocument\";\nimport PDFButton from \"./PDFButton\";\nimport PDFCheckBox from \"./PDFCheckBox\";\nimport PDFDropdown from \"./PDFDropdown\";\nimport PDFOptionList from \"./PDFOptionList\";\nimport PDFRadioGroup from \"./PDFRadioGroup\";\nimport PDFSignature from \"./PDFSignature\";\nimport PDFTextField from \"./PDFTextField\";\nimport { NoSuchFieldError, UnexpectedFieldTypeError, FieldAlreadyExistsError, InvalidFieldNamePartError, } from \"../errors\";\nimport PDFFont from \"../PDFFont\";\nimport { StandardFonts } from \"../StandardFonts\";\nimport { rotateInPlace } from \"../operations\";\nimport { drawObject, popGraphicsState, pushGraphicsState, translate, } from \"../operators\";\nimport { PDFAcroForm, PDFAcroCheckBox, PDFAcroComboBox, PDFAcroListBox, PDFAcroRadioButton, PDFAcroSignature, PDFAcroText, PDFAcroPushButton, PDFAcroNonTerminal, PDFDict, PDFRef, createPDFAcroFields, PDFName, } from \"../../core\";\nimport { assertIs, Cache, assertOrUndefined } from \"../../utils\";\n/**\n * Represents the interactive form of a [[PDFDocument]].\n *\n * Interactive forms (sometimes called _AcroForms_) are collections of fields\n * designed to gather information from a user. A PDF document may contains any\n * number of fields that appear on various pages, all of which make up a single,\n * global interactive form spanning the entire document. This means that\n * instances of [[PDFDocument]] shall contain at most one [[PDFForm]].\n *\n * The fields of an interactive form are represented by [[PDFField]] instances.\n */\nvar PDFForm = /** @class */ (function () {\n function PDFForm(acroForm, doc) {\n var _this = this;\n this.embedDefaultFont = function () {\n return _this.doc.embedStandardFont(StandardFonts.Helvetica);\n };\n assertIs(acroForm, 'acroForm', [[PDFAcroForm, 'PDFAcroForm']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n this.acroForm = acroForm;\n this.doc = doc;\n this.dirtyFields = new Set();\n this.defaultFontCache = Cache.populatedBy(this.embedDefaultFont);\n }\n /**\n * Returns `true` if this [[PDFForm]] has XFA data. Most PDFs with form\n * fields do not use XFA as it is not widely supported by PDF readers.\n *\n * > `pdf-lib` does not support creation, modification, or reading of XFA\n * > fields.\n *\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * if (form.hasXFA()) console.log('PDF has XFA data')\n * ```\n * @returns Whether or not this form has XFA data.\n */\n PDFForm.prototype.hasXFA = function () {\n return this.acroForm.dict.has(PDFName.of('XFA'));\n };\n /**\n * Disconnect the XFA data from this [[PDFForm]] (if any exists). This will\n * force readers to fallback to standard fields if the [[PDFDocument]]\n * contains any. For example:\n *\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * form.deleteXFA()\n * ```\n */\n PDFForm.prototype.deleteXFA = function () {\n this.acroForm.dict.delete(PDFName.of('XFA'));\n };\n /**\n * Get all fields contained in this [[PDFForm]]. For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const fields = form.getFields()\n * fields.forEach(field => {\n * const type = field.constructor.name\n * const name = field.getName()\n * console.log(`${type}: ${name}`)\n * })\n * ```\n * @returns An array of all fields in this form.\n */\n PDFForm.prototype.getFields = function () {\n var allFields = this.acroForm.getAllFields();\n var fields = [];\n for (var idx = 0, len = allFields.length; idx < len; idx++) {\n var _a = allFields[idx], acroField = _a[0], ref = _a[1];\n var field = convertToPDFField(acroField, ref, this.doc);\n if (field)\n fields.push(field);\n }\n return fields;\n };\n /**\n * Get the field in this [[PDFForm]] with the given name. For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getFieldMaybe('Page1.Foo.Bar[0]')\n * if (field) console.log('Field exists!')\n * ```\n * @param name A fully qualified field name.\n * @returns The field with the specified name, if one exists.\n */\n PDFForm.prototype.getFieldMaybe = function (name) {\n assertIs(name, 'name', ['string']);\n var fields = this.getFields();\n for (var idx = 0, len = fields.length; idx < len; idx++) {\n var field = fields[idx];\n if (field.getName() === name)\n return field;\n }\n return undefined;\n };\n /**\n * Get the field in this [[PDFForm]] with the given name. For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getField('Page1.Foo.Bar[0]')\n * ```\n * If no field exists with the provided name, an error will be thrown.\n * @param name A fully qualified field name.\n * @returns The field with the specified name.\n */\n PDFForm.prototype.getField = function (name) {\n assertIs(name, 'name', ['string']);\n var field = this.getFieldMaybe(name);\n if (field)\n return field;\n throw new NoSuchFieldError(name);\n };\n /**\n * Get the button field in this [[PDFForm]] with the given name. For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const button = form.getButton('Page1.Foo.Button[0]')\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a button.\n * @param name A fully qualified button name.\n * @returns The button with the specified name.\n */\n PDFForm.prototype.getButton = function (name) {\n assertIs(name, 'name', ['string']);\n var field = this.getField(name);\n if (field instanceof PDFButton)\n return field;\n throw new UnexpectedFieldTypeError(name, PDFButton, field);\n };\n /**\n * Get the check box field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const checkBox = form.getCheckBox('Page1.Foo.CheckBox[0]')\n * checkBox.check()\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a check box.\n * @param name A fully qualified check box name.\n * @returns The check box with the specified name.\n */\n PDFForm.prototype.getCheckBox = function (name) {\n assertIs(name, 'name', ['string']);\n var field = this.getField(name);\n if (field instanceof PDFCheckBox)\n return field;\n throw new UnexpectedFieldTypeError(name, PDFCheckBox, field);\n };\n /**\n * Get the dropdown field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const dropdown = form.getDropdown('Page1.Foo.Dropdown[0]')\n * const options = dropdown.getOptions()\n * dropdown.select(options[0])\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a dropdown.\n * @param name A fully qualified dropdown name.\n * @returns The dropdown with the specified name.\n */\n PDFForm.prototype.getDropdown = function (name) {\n assertIs(name, 'name', ['string']);\n var field = this.getField(name);\n if (field instanceof PDFDropdown)\n return field;\n throw new UnexpectedFieldTypeError(name, PDFDropdown, field);\n };\n /**\n * Get the option list field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const optionList = form.getOptionList('Page1.Foo.OptionList[0]')\n * const options = optionList.getOptions()\n * optionList.select(options[0])\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not an option list.\n * @param name A fully qualified option list name.\n * @returns The option list with the specified name.\n */\n PDFForm.prototype.getOptionList = function (name) {\n assertIs(name, 'name', ['string']);\n var field = this.getField(name);\n if (field instanceof PDFOptionList)\n return field;\n throw new UnexpectedFieldTypeError(name, PDFOptionList, field);\n };\n /**\n * Get the radio group field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const radioGroup = form.getRadioGroup('Page1.Foo.RadioGroup[0]')\n * const options = radioGroup.getOptions()\n * radioGroup.select(options[0])\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a radio group.\n * @param name A fully qualified radio group name.\n * @returns The radio group with the specified name.\n */\n PDFForm.prototype.getRadioGroup = function (name) {\n assertIs(name, 'name', ['string']);\n var field = this.getField(name);\n if (field instanceof PDFRadioGroup)\n return field;\n throw new UnexpectedFieldTypeError(name, PDFRadioGroup, field);\n };\n /**\n * Get the signature field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const signature = form.getSignature('Page1.Foo.Signature[0]')\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a signature.\n * @param name A fully qualified signature name.\n * @returns The signature with the specified name.\n */\n PDFForm.prototype.getSignature = function (name) {\n assertIs(name, 'name', ['string']);\n var field = this.getField(name);\n if (field instanceof PDFSignature)\n return field;\n throw new UnexpectedFieldTypeError(name, PDFSignature, field);\n };\n /**\n * Get the text field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const textField = form.getTextField('Page1.Foo.TextField[0]')\n * textField.setText('Are you designed to act or to be acted upon?')\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a text field.\n * @param name A fully qualified text field name.\n * @returns The text field with the specified name.\n */\n PDFForm.prototype.getTextField = function (name) {\n assertIs(name, 'name', ['string']);\n var field = this.getField(name);\n if (field instanceof PDFTextField)\n return field;\n throw new UnexpectedFieldTypeError(name, PDFTextField, field);\n };\n /**\n * Create a new button field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const button = form.createButton('cool.new.button')\n *\n * button.addToPage('Do Stuff', font, page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new button.\n * @returns The new button field.\n */\n PDFForm.prototype.createButton = function (name) {\n assertIs(name, 'name', ['string']);\n var nameParts = splitFieldName(name);\n var parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n var button = PDFAcroPushButton.create(this.doc.context);\n button.setPartialName(nameParts.terminal);\n addFieldToParent(parent, [button, button.ref], nameParts.terminal);\n return PDFButton.of(button, button.ref, this.doc);\n };\n /**\n * Create a new check box field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const checkBox = form.createCheckBox('cool.new.checkBox')\n *\n * checkBox.addToPage(page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new check box.\n * @returns The new check box field.\n */\n PDFForm.prototype.createCheckBox = function (name) {\n assertIs(name, 'name', ['string']);\n var nameParts = splitFieldName(name);\n var parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n var checkBox = PDFAcroCheckBox.create(this.doc.context);\n checkBox.setPartialName(nameParts.terminal);\n addFieldToParent(parent, [checkBox, checkBox.ref], nameParts.terminal);\n return PDFCheckBox.of(checkBox, checkBox.ref, this.doc);\n };\n /**\n * Create a new dropdown field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const dropdown = form.createDropdown('cool.new.dropdown')\n *\n * dropdown.addToPage(font, page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new dropdown.\n * @returns The new dropdown field.\n */\n PDFForm.prototype.createDropdown = function (name) {\n assertIs(name, 'name', ['string']);\n var nameParts = splitFieldName(name);\n var parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n var comboBox = PDFAcroComboBox.create(this.doc.context);\n comboBox.setPartialName(nameParts.terminal);\n addFieldToParent(parent, [comboBox, comboBox.ref], nameParts.terminal);\n return PDFDropdown.of(comboBox, comboBox.ref, this.doc);\n };\n /**\n * Create a new option list field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const optionList = form.createOptionList('cool.new.optionList')\n *\n * optionList.addToPage(font, page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new option list.\n * @returns The new option list field.\n */\n PDFForm.prototype.createOptionList = function (name) {\n assertIs(name, 'name', ['string']);\n var nameParts = splitFieldName(name);\n var parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n var listBox = PDFAcroListBox.create(this.doc.context);\n listBox.setPartialName(nameParts.terminal);\n addFieldToParent(parent, [listBox, listBox.ref], nameParts.terminal);\n return PDFOptionList.of(listBox, listBox.ref, this.doc);\n };\n /**\n * Create a new radio group field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const radioGroup = form.createRadioGroup('cool.new.radioGroup')\n *\n * radioGroup.addOptionToPage('is-dog', page, { y: 0 })\n * radioGroup.addOptionToPage('is-cat', page, { y: 75 })\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new radio group.\n * @returns The new radio group field.\n */\n PDFForm.prototype.createRadioGroup = function (name) {\n assertIs(name, 'name', ['string']);\n var nameParts = splitFieldName(name);\n var parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n var radioButton = PDFAcroRadioButton.create(this.doc.context);\n radioButton.setPartialName(nameParts.terminal);\n addFieldToParent(parent, [radioButton, radioButton.ref], nameParts.terminal);\n return PDFRadioGroup.of(radioButton, radioButton.ref, this.doc);\n };\n /**\n * Create a new text field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const textField = form.createTextField('cool.new.textField')\n *\n * textField.addToPage(font, page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new radio group.\n * @returns The new radio group field.\n */\n PDFForm.prototype.createTextField = function (name) {\n assertIs(name, 'name', ['string']);\n var nameParts = splitFieldName(name);\n var parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n var text = PDFAcroText.create(this.doc.context);\n text.setPartialName(nameParts.terminal);\n addFieldToParent(parent, [text, text.ref], nameParts.terminal);\n return PDFTextField.of(text, text.ref, this.doc);\n };\n /**\n * Flatten all fields in this [[PDFForm]].\n *\n * Flattening a form field will take the current appearance for each of that\n * field's widgets and make them part of their page's content stream. All form\n * fields and annotations associated are then removed. Note that once a form\n * has been flattened its fields can no longer be accessed or edited.\n *\n * This operation is often used after filling form fields to ensure a\n * consistent appearance across different PDF readers and/or printers.\n * Another common use case is to copy a template document with form fields\n * into another document. In this scenario you would load the template\n * document, fill its fields, flatten it, and then copy its pages into the\n * recipient document - the filled fields will be copied over.\n *\n * For example:\n * ```js\n * const form = pdfDoc.getForm();\n * form.flatten();\n * ```\n */\n PDFForm.prototype.flatten = function (options) {\n if (options === void 0) { options = { updateFieldAppearances: true }; }\n if (options.updateFieldAppearances) {\n this.updateFieldAppearances();\n }\n var fields = this.getFields();\n for (var i = 0, lenFields = fields.length; i < lenFields; i++) {\n var field = fields[i];\n var widgets = field.acroField.getWidgets();\n for (var j = 0, lenWidgets = widgets.length; j < lenWidgets; j++) {\n var widget = widgets[j];\n var page = this.findWidgetPage(widget);\n var widgetRef = this.findWidgetAppearanceRef(field, widget);\n var xObjectKey = page.node.newXObject('FlatWidget', widgetRef);\n var rectangle = widget.getRectangle();\n var operators = __spreadArrays([\n pushGraphicsState(),\n translate(rectangle.x, rectangle.y)\n ], rotateInPlace(__assign(__assign({}, rectangle), { rotation: 0 })), [\n drawObject(xObjectKey),\n popGraphicsState(),\n ]).filter(Boolean);\n page.pushOperators.apply(page, operators);\n }\n this.removeField(field);\n }\n };\n /**\n * Remove a field from this [[PDFForm]].\n *\n * For example:\n * ```js\n * const form = pdfDoc.getForm();\n * const ageField = form.getFields().find(x => x.getName() === 'Age');\n * form.removeField(ageField);\n * ```\n */\n PDFForm.prototype.removeField = function (field) {\n var widgets = field.acroField.getWidgets();\n var pages = new Set();\n for (var i = 0, len = widgets.length; i < len; i++) {\n var widget = widgets[i];\n var widgetRef = this.findWidgetAppearanceRef(field, widget);\n var page = this.findWidgetPage(widget);\n pages.add(page);\n page.node.removeAnnot(widgetRef);\n }\n pages.forEach(function (page) { return page.node.removeAnnot(field.ref); });\n this.acroForm.removeField(field.acroField);\n var fieldKids = field.acroField.normalizedEntries().Kids;\n var kidsCount = fieldKids.size();\n for (var childIndex = 0; childIndex < kidsCount; childIndex++) {\n var child = fieldKids.get(childIndex);\n if (child instanceof PDFRef) {\n this.doc.context.delete(child);\n }\n }\n this.doc.context.delete(field.ref);\n };\n /**\n * Update the appearance streams for all widgets of all fields in this\n * [[PDFForm]]. Appearance streams will only be created for a widget if it\n * does not have any existing appearance streams, or the field's value has\n * changed (e.g. by calling [[PDFTextField.setText]] or\n * [[PDFDropdown.select]]).\n *\n * For example:\n * ```js\n * const courier = await pdfDoc.embedFont(StandardFonts.Courier)\n * const form = pdfDoc.getForm()\n * form.updateFieldAppearances(courier)\n * ```\n *\n * **IMPORTANT:** The default value for the `font` parameter is\n * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n * that encoding errors will be thrown if any fields contain text with\n * characters outside the WinAnsi character set (the latin alphabet).\n *\n * Embedding a custom font and passing that as the `font`\n * parameter allows you to generate appearance streams with non WinAnsi\n * characters (assuming your custom font supports them).\n *\n * > **NOTE:** The [[PDFDocument.save]] method will call this method to\n * > update appearances automatically if a form was accessed via the\n * > [[PDFDocument.getForm]] method prior to saving.\n *\n * @param font Optionally, the font to use when creating new appearances.\n */\n PDFForm.prototype.updateFieldAppearances = function (font) {\n assertOrUndefined(font, 'font', [[PDFFont, 'PDFFont']]);\n font = font !== null && font !== void 0 ? font : this.getDefaultFont();\n var fields = this.getFields();\n for (var idx = 0, len = fields.length; idx < len; idx++) {\n var field = fields[idx];\n if (field.needsAppearancesUpdate()) {\n field.defaultUpdateAppearances(font);\n }\n }\n };\n /**\n * Mark a field as dirty. This will cause its appearance streams to be\n * updated by [[PDFForm.updateFieldAppearances]].\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getField('foo.bar')\n * form.markFieldAsDirty(field.ref)\n * ```\n * @param fieldRef The reference to the field that should be marked.\n */\n PDFForm.prototype.markFieldAsDirty = function (fieldRef) {\n assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n this.dirtyFields.add(fieldRef);\n };\n /**\n * Mark a field as dirty. This will cause its appearance streams to not be\n * updated by [[PDFForm.updateFieldAppearances]].\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getField('foo.bar')\n * form.markFieldAsClean(field.ref)\n * ```\n * @param fieldRef The reference to the field that should be marked.\n */\n PDFForm.prototype.markFieldAsClean = function (fieldRef) {\n assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n this.dirtyFields.delete(fieldRef);\n };\n /**\n * Returns `true` is the specified field has been marked as dirty.\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getField('foo.bar')\n * if (form.fieldIsDirty(field.ref)) console.log('Field is dirty')\n * ```\n * @param fieldRef The reference to the field that should be checked.\n * @returns Whether or not the specified field is dirty.\n */\n PDFForm.prototype.fieldIsDirty = function (fieldRef) {\n assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n return this.dirtyFields.has(fieldRef);\n };\n PDFForm.prototype.getDefaultFont = function () {\n return this.defaultFontCache.access();\n };\n PDFForm.prototype.findWidgetPage = function (widget) {\n var pageRef = widget.P();\n var page = this.doc.getPages().find(function (x) { return x.ref === pageRef; });\n if (page === undefined) {\n var widgetRef = this.doc.context.getObjectRef(widget.dict);\n if (widgetRef === undefined) {\n throw new Error('Could not find PDFRef for PDFObject');\n }\n page = this.doc.findPageForAnnotationRef(widgetRef);\n if (page === undefined) {\n throw new Error(\"Could not find page for PDFRef \" + widgetRef);\n }\n }\n return page;\n };\n PDFForm.prototype.findWidgetAppearanceRef = function (field, widget) {\n var _a;\n var refOrDict = widget.getNormalAppearance();\n if (refOrDict instanceof PDFDict &&\n (field instanceof PDFCheckBox || field instanceof PDFRadioGroup)) {\n var value = field.acroField.getValue();\n var ref = (_a = refOrDict.get(value)) !== null && _a !== void 0 ? _a : refOrDict.get(PDFName.of('Off'));\n if (ref instanceof PDFRef) {\n refOrDict = ref;\n }\n }\n if (!(refOrDict instanceof PDFRef)) {\n var name_1 = field.getName();\n throw new Error(\"Failed to extract appearance ref for: \" + name_1);\n }\n return refOrDict;\n };\n PDFForm.prototype.findOrCreateNonTerminals = function (partialNames) {\n var nonTerminal = [\n this.acroForm,\n ];\n for (var idx = 0, len = partialNames.length; idx < len; idx++) {\n var namePart = partialNames[idx];\n if (!namePart)\n throw new InvalidFieldNamePartError(namePart);\n var parent_1 = nonTerminal[0], parentRef = nonTerminal[1];\n var res = this.findNonTerminal(namePart, parent_1);\n if (res) {\n nonTerminal = res;\n }\n else {\n var node = PDFAcroNonTerminal.create(this.doc.context);\n node.setPartialName(namePart);\n node.setParent(parentRef);\n var nodeRef = this.doc.context.register(node.dict);\n parent_1.addField(nodeRef);\n nonTerminal = [node, nodeRef];\n }\n }\n return nonTerminal;\n };\n PDFForm.prototype.findNonTerminal = function (partialName, parent) {\n var fields = parent instanceof PDFAcroForm\n ? this.acroForm.getFields()\n : createPDFAcroFields(parent.Kids());\n for (var idx = 0, len = fields.length; idx < len; idx++) {\n var _a = fields[idx], field = _a[0], ref = _a[1];\n if (field.getPartialName() === partialName) {\n if (field instanceof PDFAcroNonTerminal)\n return [field, ref];\n throw new FieldAlreadyExistsError(partialName);\n }\n }\n return undefined;\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.getForm]] method, which will create an\n * > instance of [[PDFForm]] for you.\n *\n * Create an instance of [[PDFForm]] from an existing acroForm and embedder\n *\n * @param acroForm The underlying `PDFAcroForm` for this form.\n * @param doc The document to which the form will belong.\n */\n PDFForm.of = function (acroForm, doc) {\n return new PDFForm(acroForm, doc);\n };\n return PDFForm;\n}());\nexport default PDFForm;\nvar convertToPDFField = function (field, ref, doc) {\n if (field instanceof PDFAcroPushButton)\n return PDFButton.of(field, ref, doc);\n if (field instanceof PDFAcroCheckBox)\n return PDFCheckBox.of(field, ref, doc);\n if (field instanceof PDFAcroComboBox)\n return PDFDropdown.of(field, ref, doc);\n if (field instanceof PDFAcroListBox)\n return PDFOptionList.of(field, ref, doc);\n if (field instanceof PDFAcroText)\n return PDFTextField.of(field, ref, doc);\n if (field instanceof PDFAcroRadioButton) {\n return PDFRadioGroup.of(field, ref, doc);\n }\n if (field instanceof PDFAcroSignature) {\n return PDFSignature.of(field, ref, doc);\n }\n return undefined;\n};\nvar splitFieldName = function (fullyQualifiedName) {\n if (fullyQualifiedName.length === 0) {\n throw new Error('PDF field names must not be empty strings');\n }\n var parts = fullyQualifiedName.split('.');\n for (var idx = 0, len = parts.length; idx < len; idx++) {\n if (parts[idx] === '') {\n throw new Error(\"Periods in PDF field names must be separated by at least one character: \\\"\" + fullyQualifiedName + \"\\\"\");\n }\n }\n if (parts.length === 1)\n return { nonTerminal: [], terminal: parts[0] };\n return {\n nonTerminal: parts.slice(0, parts.length - 1),\n terminal: parts[parts.length - 1],\n };\n};\nvar addFieldToParent = function (_a, _b, partialName) {\n var parent = _a[0], parentRef = _a[1];\n var field = _b[0], fieldRef = _b[1];\n var entries = parent.normalizedEntries();\n var fields = createPDFAcroFields('Kids' in entries ? entries.Kids : entries.Fields);\n for (var idx = 0, len = fields.length; idx < len; idx++) {\n if (fields[idx][0].getPartialName() === partialName) {\n throw new FieldAlreadyExistsError(partialName);\n }\n }\n parent.addField(fieldRef);\n field.setParent(parentRef);\n};\n//# sourceMappingURL=PDFForm.js.map","export var ParseSpeeds;\n(function (ParseSpeeds) {\n ParseSpeeds[ParseSpeeds[\"Fastest\"] = Infinity] = \"Fastest\";\n ParseSpeeds[ParseSpeeds[\"Fast\"] = 1500] = \"Fast\";\n ParseSpeeds[ParseSpeeds[\"Medium\"] = 500] = \"Medium\";\n ParseSpeeds[ParseSpeeds[\"Slow\"] = 100] = \"Slow\";\n})(ParseSpeeds || (ParseSpeeds = {}));\n//# sourceMappingURL=PDFDocumentOptions.js.map","export var PageSizes = {\n '4A0': [4767.87, 6740.79],\n '2A0': [3370.39, 4767.87],\n A0: [2383.94, 3370.39],\n A1: [1683.78, 2383.94],\n A2: [1190.55, 1683.78],\n A3: [841.89, 1190.55],\n A4: [595.28, 841.89],\n A5: [419.53, 595.28],\n A6: [297.64, 419.53],\n A7: [209.76, 297.64],\n A8: [147.4, 209.76],\n A9: [104.88, 147.4],\n A10: [73.7, 104.88],\n B0: [2834.65, 4008.19],\n B1: [2004.09, 2834.65],\n B2: [1417.32, 2004.09],\n B3: [1000.63, 1417.32],\n B4: [708.66, 1000.63],\n B5: [498.9, 708.66],\n B6: [354.33, 498.9],\n B7: [249.45, 354.33],\n B8: [175.75, 249.45],\n B9: [124.72, 175.75],\n B10: [87.87, 124.72],\n C0: [2599.37, 3676.54],\n C1: [1836.85, 2599.37],\n C2: [1298.27, 1836.85],\n C3: [918.43, 1298.27],\n C4: [649.13, 918.43],\n C5: [459.21, 649.13],\n C6: [323.15, 459.21],\n C7: [229.61, 323.15],\n C8: [161.57, 229.61],\n C9: [113.39, 161.57],\n C10: [79.37, 113.39],\n RA0: [2437.8, 3458.27],\n RA1: [1729.13, 2437.8],\n RA2: [1218.9, 1729.13],\n RA3: [864.57, 1218.9],\n RA4: [609.45, 864.57],\n SRA0: [2551.18, 3628.35],\n SRA1: [1814.17, 2551.18],\n SRA2: [1275.59, 1814.17],\n SRA3: [907.09, 1275.59],\n SRA4: [637.8, 907.09],\n Executive: [521.86, 756.0],\n Folio: [612.0, 936.0],\n Legal: [612.0, 1008.0],\n Letter: [612.0, 792.0],\n Tabloid: [792.0, 1224.0],\n};\n//# sourceMappingURL=sizes.js.map","export var BlendMode;\n(function (BlendMode) {\n BlendMode[\"Normal\"] = \"Normal\";\n BlendMode[\"Multiply\"] = \"Multiply\";\n BlendMode[\"Screen\"] = \"Screen\";\n BlendMode[\"Overlay\"] = \"Overlay\";\n BlendMode[\"Darken\"] = \"Darken\";\n BlendMode[\"Lighten\"] = \"Lighten\";\n BlendMode[\"ColorDodge\"] = \"ColorDodge\";\n BlendMode[\"ColorBurn\"] = \"ColorBurn\";\n BlendMode[\"HardLight\"] = \"HardLight\";\n BlendMode[\"SoftLight\"] = \"SoftLight\";\n BlendMode[\"Difference\"] = \"Difference\";\n BlendMode[\"Exclusion\"] = \"Exclusion\";\n})(BlendMode || (BlendMode = {}));\n//# sourceMappingURL=PDFPageOptions.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { PDFName, PDFArray, PDFDict, PDFHexString } from \"../core\";\n/**\n * Represents a file that has been embedded in a [[PDFDocument]].\n */\nvar PDFEmbeddedFile = /** @class */ (function () {\n function PDFEmbeddedFile(ref, doc, embedder) {\n this.alreadyEmbedded = false;\n this.ref = ref;\n this.doc = doc;\n this.embedder = embedder;\n }\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all embeddable files get embedded.\n *\n * Embed this embeddable file in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n PDFEmbeddedFile.prototype.embed = function () {\n return __awaiter(this, void 0, void 0, function () {\n var ref, Names, EmbeddedFiles, EFNames, AF;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.alreadyEmbedded) return [3 /*break*/, 2];\n return [4 /*yield*/, this.embedder.embedIntoContext(this.doc.context, this.ref)];\n case 1:\n ref = _a.sent();\n if (!this.doc.catalog.has(PDFName.of('Names'))) {\n this.doc.catalog.set(PDFName.of('Names'), this.doc.context.obj({}));\n }\n Names = this.doc.catalog.lookup(PDFName.of('Names'), PDFDict);\n if (!Names.has(PDFName.of('EmbeddedFiles'))) {\n Names.set(PDFName.of('EmbeddedFiles'), this.doc.context.obj({}));\n }\n EmbeddedFiles = Names.lookup(PDFName.of('EmbeddedFiles'), PDFDict);\n if (!EmbeddedFiles.has(PDFName.of('Names'))) {\n EmbeddedFiles.set(PDFName.of('Names'), this.doc.context.obj([]));\n }\n EFNames = EmbeddedFiles.lookup(PDFName.of('Names'), PDFArray);\n EFNames.push(PDFHexString.fromText(this.embedder.fileName));\n EFNames.push(ref);\n /**\n * The AF-Tag is needed to achieve PDF-A3 compliance for embedded files\n *\n * The following document outlines the uses cases of the associated files (AF) tag.\n * See:\n * https://www.pdfa.org/wp-content/uploads/2018/10/PDF20_AN002-AF.pdf\n */\n if (!this.doc.catalog.has(PDFName.of('AF'))) {\n this.doc.catalog.set(PDFName.of('AF'), this.doc.context.obj([]));\n }\n AF = this.doc.catalog.lookup(PDFName.of('AF'), PDFArray);\n AF.push(ref);\n this.alreadyEmbedded = true;\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.attach]] method, which will create\n * instances of [[PDFEmbeddedFile]] for you.\n *\n * Create an instance of [[PDFEmbeddedFile]] from an existing ref and embedder\n *\n * @param ref The unique reference for this file.\n * @param doc The document to which the file will belong.\n * @param embedder The embedder that will be used to embed the file.\n */\n PDFEmbeddedFile.of = function (ref, doc, embedder) {\n return new PDFEmbeddedFile(ref, doc, embedder);\n };\n return PDFEmbeddedFile;\n}());\nexport default PDFEmbeddedFile;\n//# sourceMappingURL=PDFEmbeddedFile.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { PDFName, PDFArray, PDFDict, PDFHexString } from \"../core\";\n/**\n * Represents JavaScript that has been embedded in a [[PDFDocument]].\n */\nvar PDFJavaScript = /** @class */ (function () {\n function PDFJavaScript(ref, doc, embedder) {\n this.alreadyEmbedded = false;\n this.ref = ref;\n this.doc = doc;\n this.embedder = embedder;\n }\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all JavaScripts get embedded.\n *\n * Embed this JavaScript in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n PDFJavaScript.prototype.embed = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, catalog, context, ref, Names, Javascript, JSNames;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!!this.alreadyEmbedded) return [3 /*break*/, 2];\n _a = this.doc, catalog = _a.catalog, context = _a.context;\n return [4 /*yield*/, this.embedder.embedIntoContext(this.doc.context, this.ref)];\n case 1:\n ref = _b.sent();\n if (!catalog.has(PDFName.of('Names'))) {\n catalog.set(PDFName.of('Names'), context.obj({}));\n }\n Names = catalog.lookup(PDFName.of('Names'), PDFDict);\n if (!Names.has(PDFName.of('JavaScript'))) {\n Names.set(PDFName.of('JavaScript'), context.obj({}));\n }\n Javascript = Names.lookup(PDFName.of('JavaScript'), PDFDict);\n if (!Javascript.has(PDFName.of('Names'))) {\n Javascript.set(PDFName.of('Names'), context.obj([]));\n }\n JSNames = Javascript.lookup(PDFName.of('Names'), PDFArray);\n JSNames.push(PDFHexString.fromText(this.embedder.scriptName));\n JSNames.push(ref);\n this.alreadyEmbedded = true;\n _b.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.addJavaScript]] method, which will\n * create instances of [[PDFJavaScript]] for you.\n *\n * Create an instance of [[PDFJavaScript]] from an existing ref and script\n *\n * @param ref The unique reference for this script.\n * @param doc The document to which the script will belong.\n * @param embedder The embedder that will be used to embed the script.\n */\n PDFJavaScript.of = function (ref, doc, embedder) {\n return new PDFJavaScript(ref, doc, embedder);\n };\n return PDFJavaScript;\n}());\nexport default PDFJavaScript;\n//# sourceMappingURL=PDFJavaScript.js.map","import { __awaiter, __generator } from \"tslib\";\nimport PDFHexString from \"../objects/PDFHexString\";\nvar JavaScriptEmbedder = /** @class */ (function () {\n function JavaScriptEmbedder(script, scriptName) {\n this.script = script;\n this.scriptName = scriptName;\n }\n JavaScriptEmbedder.for = function (script, scriptName) {\n return new JavaScriptEmbedder(script, scriptName);\n };\n JavaScriptEmbedder.prototype.embedIntoContext = function (context, ref) {\n return __awaiter(this, void 0, void 0, function () {\n var jsActionDict;\n return __generator(this, function (_a) {\n jsActionDict = context.obj({\n Type: 'Action',\n S: 'JavaScript',\n JS: PDFHexString.fromText(this.script),\n });\n if (ref) {\n context.assign(ref, jsActionDict);\n return [2 /*return*/, ref];\n }\n else {\n return [2 /*return*/, context.register(jsActionDict)];\n }\n return [2 /*return*/];\n });\n });\n };\n return JavaScriptEmbedder;\n}());\nexport default JavaScriptEmbedder;\n//# sourceMappingURL=JavaScriptEmbedder.js.map","import { __awaiter, __generator, __rest } from \"tslib\";\nimport { EncryptedPDFError, FontkitNotRegisteredError, ForeignPageError, RemovePageFromEmptyDocumentError, } from \"./errors\";\nimport PDFEmbeddedPage from \"./PDFEmbeddedPage\";\nimport PDFFont from \"./PDFFont\";\nimport PDFImage from \"./PDFImage\";\nimport PDFPage from \"./PDFPage\";\nimport PDFForm from \"./form/PDFForm\";\nimport { PageSizes } from \"./sizes\";\nimport { CustomFontEmbedder, CustomFontSubsetEmbedder, JpegEmbedder, PageEmbeddingMismatchedContextError, PDFCatalog, PDFContext, PDFDict, PDFHexString, PDFName, PDFObjectCopier, PDFPageEmbedder, PDFPageLeaf, PDFPageTree, PDFParser, PDFStreamWriter, PDFString, PDFWriter, PngEmbedder, StandardFontEmbedder, UnexpectedObjectTypeError, } from \"../core\";\nimport { ParseSpeeds, } from \"./PDFDocumentOptions\";\nimport { assertIs, assertIsOneOfOrUndefined, assertOrUndefined, assertRange, Cache, canBeConvertedToUint8Array, encodeToBase64, isStandardFont, pluckIndices, range, toUint8Array, } from \"../utils\";\nimport FileEmbedder, { AFRelationship } from \"../core/embedders/FileEmbedder\";\nimport PDFEmbeddedFile from \"./PDFEmbeddedFile\";\nimport PDFJavaScript from \"./PDFJavaScript\";\nimport JavaScriptEmbedder from \"../core/embedders/JavaScriptEmbedder\";\n/**\n * Represents a PDF document.\n */\nvar PDFDocument = /** @class */ (function () {\n function PDFDocument(context, ignoreEncryption, updateMetadata) {\n var _this = this;\n /** The default word breaks used in PDFPage.drawText */\n this.defaultWordBreaks = [' '];\n this.computePages = function () {\n var pages = [];\n _this.catalog.Pages().traverse(function (node, ref) {\n if (node instanceof PDFPageLeaf) {\n var page = _this.pageMap.get(node);\n if (!page) {\n page = PDFPage.of(node, ref, _this);\n _this.pageMap.set(node, page);\n }\n pages.push(page);\n }\n });\n return pages;\n };\n this.getOrCreateForm = function () {\n var acroForm = _this.catalog.getOrCreateAcroForm();\n return PDFForm.of(acroForm, _this);\n };\n assertIs(context, 'context', [[PDFContext, 'PDFContext']]);\n assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);\n this.context = context;\n this.catalog = context.lookup(context.trailerInfo.Root);\n this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);\n this.pageCache = Cache.populatedBy(this.computePages);\n this.pageMap = new Map();\n this.formCache = Cache.populatedBy(this.getOrCreateForm);\n this.fonts = [];\n this.images = [];\n this.embeddedPages = [];\n this.embeddedFiles = [];\n this.javaScripts = [];\n if (!ignoreEncryption && this.isEncrypted)\n throw new EncryptedPDFError();\n if (updateMetadata)\n this.updateInfoDict();\n }\n /**\n * Load an existing [[PDFDocument]]. The input data can be provided in\n * multiple formats:\n *\n * | Type | Contents |\n * | ------------- | ------------------------------------------------------ |\n * | `string` | A base64 encoded string (or data URI) containing a PDF |\n * | `Uint8Array` | The raw bytes of a PDF |\n * | `ArrayBuffer` | The raw bytes of a PDF |\n *\n * For example:\n * ```js\n * import { PDFDocument } from 'pdf-lib'\n *\n * // pdf=string\n * const base64 =\n * 'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +\n * 'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +\n * '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +\n * 'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +\n * 'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +\n * 'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +\n * '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +\n * 'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +\n * 'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +\n * 'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +\n * 'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +\n * '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +\n * 'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +\n * 'FydHhyZWYKNTEwCiUlRU9G'\n *\n * const dataUri = 'data:application/pdf;base64,' + base64\n *\n * const pdfDoc1 = await PDFDocument.load(base64)\n * const pdfDoc2 = await PDFDocument.load(dataUri)\n *\n * // pdf=Uint8Array\n * import fs from 'fs'\n * const uint8Array = fs.readFileSync('with_update_sections.pdf')\n * const pdfDoc3 = await PDFDocument.load(uint8Array)\n *\n * // pdf=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n * const pdfDoc4 = await PDFDocument.load(arrayBuffer)\n *\n * ```\n *\n * @param pdf The input data containing a PDF document.\n * @param options The options to be used when loading the document.\n * @returns Resolves with a document loaded from the input.\n */\n PDFDocument.load = function (pdf, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, ignoreEncryption, _b, parseSpeed, _c, throwOnInvalidObject, _d, updateMetadata, _e, capNumbers, bytes, context;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = options.ignoreEncryption, ignoreEncryption = _a === void 0 ? false : _a, _b = options.parseSpeed, parseSpeed = _b === void 0 ? ParseSpeeds.Slow : _b, _c = options.throwOnInvalidObject, throwOnInvalidObject = _c === void 0 ? false : _c, _d = options.updateMetadata, updateMetadata = _d === void 0 ? true : _d, _e = options.capNumbers, capNumbers = _e === void 0 ? false : _e;\n assertIs(pdf, 'pdf', ['string', Uint8Array, ArrayBuffer]);\n assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);\n assertIs(parseSpeed, 'parseSpeed', ['number']);\n assertIs(throwOnInvalidObject, 'throwOnInvalidObject', ['boolean']);\n bytes = toUint8Array(pdf);\n return [4 /*yield*/, PDFParser.forBytesWithOptions(bytes, parseSpeed, throwOnInvalidObject, capNumbers).parseDocument()];\n case 1:\n context = _f.sent();\n return [2 /*return*/, new PDFDocument(context, ignoreEncryption, updateMetadata)];\n }\n });\n });\n };\n /**\n * Create a new [[PDFDocument]].\n * @returns Resolves with the newly created document.\n */\n PDFDocument.create = function (options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, updateMetadata, context, pageTree, pageTreeRef, catalog;\n return __generator(this, function (_b) {\n _a = options.updateMetadata, updateMetadata = _a === void 0 ? true : _a;\n context = PDFContext.create();\n pageTree = PDFPageTree.withContext(context);\n pageTreeRef = context.register(pageTree);\n catalog = PDFCatalog.withContextAndPages(context, pageTreeRef);\n context.trailerInfo.Root = context.register(catalog);\n return [2 /*return*/, new PDFDocument(context, false, updateMetadata)];\n });\n });\n };\n /**\n * Register a fontkit instance. This must be done before custom fonts can\n * be embedded. See [here](https://github.com/Hopding/pdf-lib/tree/master#fontkit-installation)\n * for instructions on how to install and register a fontkit instance.\n *\n * > You do **not** need to call this method to embed standard fonts.\n *\n * For example:\n * ```js\n * import { PDFDocument } from 'pdf-lib'\n * import fontkit from '@pdf-lib/fontkit'\n *\n * const pdfDoc = await PDFDocument.create()\n * pdfDoc.registerFontkit(fontkit)\n * ```\n *\n * @param fontkit The fontkit instance to be registered.\n */\n PDFDocument.prototype.registerFontkit = function (fontkit) {\n this.fontkit = fontkit;\n };\n /**\n * Get the [[PDFForm]] containing all interactive fields for this document.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const fields = form.getFields()\n * fields.forEach(field => {\n * const type = field.constructor.name\n * const name = field.getName()\n * console.log(`${type}: ${name}`)\n * })\n * ```\n * @returns The form for this document.\n */\n PDFDocument.prototype.getForm = function () {\n var form = this.formCache.access();\n if (form.hasXFA()) {\n console.warn('Removing XFA form data as pdf-lib does not support reading or writing XFA');\n form.deleteXFA();\n }\n return form;\n };\n /**\n * Get this document's title metadata. The title appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const title = pdfDoc.getTitle()\n * ```\n * @returns A string containing the title of this document, if it has one.\n */\n PDFDocument.prototype.getTitle = function () {\n var title = this.getInfoDict().lookup(PDFName.Title);\n if (!title)\n return undefined;\n assertIsLiteralOrHexString(title);\n return title.decodeText();\n };\n /**\n * Get this document's author metadata. The author appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const author = pdfDoc.getAuthor()\n * ```\n * @returns A string containing the author of this document, if it has one.\n */\n PDFDocument.prototype.getAuthor = function () {\n var author = this.getInfoDict().lookup(PDFName.Author);\n if (!author)\n return undefined;\n assertIsLiteralOrHexString(author);\n return author.decodeText();\n };\n /**\n * Get this document's subject metadata. The subject appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const subject = pdfDoc.getSubject()\n * ```\n * @returns A string containing the subject of this document, if it has one.\n */\n PDFDocument.prototype.getSubject = function () {\n var subject = this.getInfoDict().lookup(PDFName.Subject);\n if (!subject)\n return undefined;\n assertIsLiteralOrHexString(subject);\n return subject.decodeText();\n };\n /**\n * Get this document's keywords metadata. The keywords appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const keywords = pdfDoc.getKeywords()\n * ```\n * @returns A string containing the keywords of this document, if it has any.\n */\n PDFDocument.prototype.getKeywords = function () {\n var keywords = this.getInfoDict().lookup(PDFName.Keywords);\n if (!keywords)\n return undefined;\n assertIsLiteralOrHexString(keywords);\n return keywords.decodeText();\n };\n /**\n * Get this document's creator metadata. The creator appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const creator = pdfDoc.getCreator()\n * ```\n * @returns A string containing the creator of this document, if it has one.\n */\n PDFDocument.prototype.getCreator = function () {\n var creator = this.getInfoDict().lookup(PDFName.Creator);\n if (!creator)\n return undefined;\n assertIsLiteralOrHexString(creator);\n return creator.decodeText();\n };\n /**\n * Get this document's producer metadata. The producer appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const producer = pdfDoc.getProducer()\n * ```\n * @returns A string containing the producer of this document, if it has one.\n */\n PDFDocument.prototype.getProducer = function () {\n var producer = this.getInfoDict().lookup(PDFName.Producer);\n if (!producer)\n return undefined;\n assertIsLiteralOrHexString(producer);\n return producer.decodeText();\n };\n /**\n * Get this document's creation date metadata. The creation date appears in\n * the \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const creationDate = pdfDoc.getCreationDate()\n * ```\n * @returns A Date containing the creation date of this document,\n * if it has one.\n */\n PDFDocument.prototype.getCreationDate = function () {\n var creationDate = this.getInfoDict().lookup(PDFName.CreationDate);\n if (!creationDate)\n return undefined;\n assertIsLiteralOrHexString(creationDate);\n return creationDate.decodeDate();\n };\n /**\n * Get this document's modification date metadata. The modification date\n * appears in the \"Document Properties\" section of most PDF readers.\n * For example:\n * ```js\n * const modification = pdfDoc.getModificationDate()\n * ```\n * @returns A Date containing the modification date of this document,\n * if it has one.\n */\n PDFDocument.prototype.getModificationDate = function () {\n var modificationDate = this.getInfoDict().lookup(PDFName.ModDate);\n if (!modificationDate)\n return undefined;\n assertIsLiteralOrHexString(modificationDate);\n return modificationDate.decodeDate();\n };\n /**\n * Set this document's title metadata. The title will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setTitle('🥚 The Life of an Egg 🍳')\n * ```\n *\n * To display the title in the window's title bar, set the\n * `showInWindowTitleBar` option to `true` (works for _most_ PDF readers).\n * For example:\n * ```js\n * pdfDoc.setTitle('🥚 The Life of an Egg 🍳', { showInWindowTitleBar: true })\n * ```\n *\n * @param title The title of this document.\n * @param options The options to be used when setting the title.\n */\n PDFDocument.prototype.setTitle = function (title, options) {\n assertIs(title, 'title', ['string']);\n var key = PDFName.of('Title');\n this.getInfoDict().set(key, PDFHexString.fromText(title));\n // Indicate that readers should display the title rather than the filename\n if (options === null || options === void 0 ? void 0 : options.showInWindowTitleBar) {\n var prefs = this.catalog.getOrCreateViewerPreferences();\n prefs.setDisplayDocTitle(true);\n }\n };\n /**\n * Set this document's author metadata. The author will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setAuthor('Humpty Dumpty')\n * ```\n * @param author The author of this document.\n */\n PDFDocument.prototype.setAuthor = function (author) {\n assertIs(author, 'author', ['string']);\n var key = PDFName.of('Author');\n this.getInfoDict().set(key, PDFHexString.fromText(author));\n };\n /**\n * Set this document's subject metadata. The subject will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setSubject('📘 An Epic Tale of Woe 📖')\n * ```\n * @param subject The subject of this document.\n */\n PDFDocument.prototype.setSubject = function (subject) {\n assertIs(subject, 'author', ['string']);\n var key = PDFName.of('Subject');\n this.getInfoDict().set(key, PDFHexString.fromText(subject));\n };\n /**\n * Set this document's keyword metadata. These keywords will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setKeywords(['eggs', 'wall', 'fall', 'king', 'horses', 'men'])\n * ```\n * @param keywords An array of keywords associated with this document.\n */\n PDFDocument.prototype.setKeywords = function (keywords) {\n assertIs(keywords, 'keywords', [Array]);\n var key = PDFName.of('Keywords');\n this.getInfoDict().set(key, PDFHexString.fromText(keywords.join(' ')));\n };\n /**\n * Set this document's creator metadata. The creator will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setCreator('PDF App 9000 🤖')\n * ```\n * @param creator The creator of this document.\n */\n PDFDocument.prototype.setCreator = function (creator) {\n assertIs(creator, 'creator', ['string']);\n var key = PDFName.of('Creator');\n this.getInfoDict().set(key, PDFHexString.fromText(creator));\n };\n /**\n * Set this document's producer metadata. The producer will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setProducer('PDF App 9000 🤖')\n * ```\n * @param producer The producer of this document.\n */\n PDFDocument.prototype.setProducer = function (producer) {\n assertIs(producer, 'creator', ['string']);\n var key = PDFName.of('Producer');\n this.getInfoDict().set(key, PDFHexString.fromText(producer));\n };\n /**\n * Set this document's language metadata. The language will appear in the\n * \"Document Properties\" section of some PDF readers. For example:\n * ```js\n * pdfDoc.setLanguage('en-us')\n * ```\n *\n * @param language An RFC 3066 _Language-Tag_ denoting the language of this\n * document, or an empty string if the language is unknown.\n */\n PDFDocument.prototype.setLanguage = function (language) {\n assertIs(language, 'language', ['string']);\n var key = PDFName.of('Lang');\n this.catalog.set(key, PDFString.of(language));\n };\n /**\n * Set this document's creation date metadata. The creation date will appear\n * in the \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setCreationDate(new Date())\n * ```\n * @param creationDate The date this document was created.\n */\n PDFDocument.prototype.setCreationDate = function (creationDate) {\n assertIs(creationDate, 'creationDate', [[Date, 'Date']]);\n var key = PDFName.of('CreationDate');\n this.getInfoDict().set(key, PDFString.fromDate(creationDate));\n };\n /**\n * Set this document's modification date metadata. The modification date will\n * appear in the \"Document Properties\" section of most PDF readers. For\n * example:\n * ```js\n * pdfDoc.setModificationDate(new Date())\n * ```\n * @param modificationDate The date this document was last modified.\n */\n PDFDocument.prototype.setModificationDate = function (modificationDate) {\n assertIs(modificationDate, 'modificationDate', [[Date, 'Date']]);\n var key = PDFName.of('ModDate');\n this.getInfoDict().set(key, PDFString.fromDate(modificationDate));\n };\n /**\n * Get the number of pages contained in this document. For example:\n * ```js\n * const totalPages = pdfDoc.getPageCount()\n * ```\n * @returns The number of pages in this document.\n */\n PDFDocument.prototype.getPageCount = function () {\n if (this.pageCount === undefined)\n this.pageCount = this.getPages().length;\n return this.pageCount;\n };\n /**\n * Get an array of all the pages contained in this document. The pages are\n * stored in the array in the same order that they are rendered in the\n * document. For example:\n * ```js\n * const pages = pdfDoc.getPages()\n * pages[0] // The first page of the document\n * pages[2] // The third page of the document\n * pages[197] // The 198th page of the document\n * ```\n * @returns An array of all the pages contained in this document.\n */\n PDFDocument.prototype.getPages = function () {\n return this.pageCache.access();\n };\n /**\n * Get the page rendered at a particular `index` of the document. For example:\n * ```js\n * pdfDoc.getPage(0) // The first page of the document\n * pdfDoc.getPage(2) // The third page of the document\n * pdfDoc.getPage(197) // The 198th page of the document\n * ```\n * @returns The [[PDFPage]] rendered at the given `index` of the document.\n */\n PDFDocument.prototype.getPage = function (index) {\n var pages = this.getPages();\n assertRange(index, 'index', 0, pages.length - 1);\n return pages[index];\n };\n /**\n * Get an array of indices for all the pages contained in this document. The\n * array will contain a range of integers from\n * `0..pdfDoc.getPageCount() - 1`. For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n * pdfDoc.addPage()\n * pdfDoc.addPage()\n * pdfDoc.addPage()\n *\n * const indices = pdfDoc.getPageIndices()\n * indices // => [0, 1, 2]\n * ```\n * @returns An array of indices for all pages contained in this document.\n */\n PDFDocument.prototype.getPageIndices = function () {\n return range(0, this.getPageCount());\n };\n /**\n * Remove the page at a given index from this document. For example:\n * ```js\n * pdfDoc.removePage(0) // Remove the first page of the document\n * pdfDoc.removePage(2) // Remove the third page of the document\n * pdfDoc.removePage(197) // Remove the 198th page of the document\n * ```\n * Once a page has been removed, it will no longer be rendered at that index\n * in the document.\n * @param index The index of the page to be removed.\n */\n PDFDocument.prototype.removePage = function (index) {\n var pageCount = this.getPageCount();\n if (this.pageCount === 0)\n throw new RemovePageFromEmptyDocumentError();\n assertRange(index, 'index', 0, pageCount - 1);\n this.catalog.removeLeafNode(index);\n this.pageCount = pageCount - 1;\n };\n /**\n * Add a page to the end of this document. This method accepts three\n * different value types for the `page` parameter:\n *\n * | Type | Behavior |\n * | ------------------ | ----------------------------------------------------------------------------------- |\n * | `undefined` | Create a new page and add it to the end of this document |\n * | `[number, number]` | Create a new page with the given dimensions and add it to the end of this document |\n * | `PDFPage` | Add the existing page to the end of this document |\n *\n * For example:\n * ```js\n * // page=undefined\n * const newPage = pdfDoc.addPage()\n *\n * // page=[number, number]\n * import { PageSizes } from 'pdf-lib'\n * const newPage1 = pdfDoc.addPage(PageSizes.A7)\n * const newPage2 = pdfDoc.addPage(PageSizes.Letter)\n * const newPage3 = pdfDoc.addPage([500, 750])\n *\n * // page=PDFPage\n * const pdfDoc1 = await PDFDocument.create()\n * const pdfDoc2 = await PDFDocument.load(...)\n * const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])\n * pdfDoc1.addPage(existingPage)\n * ```\n *\n * @param page Optionally, the desired dimensions or existing page.\n * @returns The newly created (or existing) page.\n */\n PDFDocument.prototype.addPage = function (page) {\n assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);\n return this.insertPage(this.getPageCount(), page);\n };\n /**\n * Insert a page at a given index within this document. This method accepts\n * three different value types for the `page` parameter:\n *\n * | Type | Behavior |\n * | ------------------ | ------------------------------------------------------------------------------ |\n * | `undefined` | Create a new page and insert it into this document |\n * | `[number, number]` | Create a new page with the given dimensions and insert it into this document |\n * | `PDFPage` | Insert the existing page into this document |\n *\n * For example:\n * ```js\n * // page=undefined\n * const newPage = pdfDoc.insertPage(2)\n *\n * // page=[number, number]\n * import { PageSizes } from 'pdf-lib'\n * const newPage1 = pdfDoc.insertPage(2, PageSizes.A7)\n * const newPage2 = pdfDoc.insertPage(0, PageSizes.Letter)\n * const newPage3 = pdfDoc.insertPage(198, [500, 750])\n *\n * // page=PDFPage\n * const pdfDoc1 = await PDFDocument.create()\n * const pdfDoc2 = await PDFDocument.load(...)\n * const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])\n * pdfDoc1.insertPage(0, existingPage)\n * ```\n *\n * @param index The index at which the page should be inserted (zero-based).\n * @param page Optionally, the desired dimensions or existing page.\n * @returns The newly created (or existing) page.\n */\n PDFDocument.prototype.insertPage = function (index, page) {\n var pageCount = this.getPageCount();\n assertRange(index, 'index', 0, pageCount);\n assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);\n if (!page || Array.isArray(page)) {\n var dims = Array.isArray(page) ? page : PageSizes.A4;\n page = PDFPage.create(this);\n page.setSize.apply(page, dims);\n }\n else if (page.doc !== this) {\n throw new ForeignPageError();\n }\n var parentRef = this.catalog.insertLeafNode(page.ref, index);\n page.node.setParent(parentRef);\n this.pageMap.set(page.node, page);\n this.pageCache.invalidate();\n this.pageCount = pageCount + 1;\n return page;\n };\n /**\n * Copy pages from a source document into this document. Allows pages to be\n * copied between different [[PDFDocument]] instances. For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n * const srcDoc = await PDFDocument.load(...)\n *\n * const copiedPages = await pdfDoc.copyPages(srcDoc, [0, 3, 89])\n * const [firstPage, fourthPage, ninetiethPage] = copiedPages;\n *\n * pdfDoc.addPage(fourthPage)\n * pdfDoc.insertPage(0, ninetiethPage)\n * pdfDoc.addPage(firstPage)\n * ```\n * @param srcDoc The document from which pages should be copied.\n * @param indices The indices of the pages that should be copied.\n * @returns Resolves with an array of pages copied into this document.\n */\n PDFDocument.prototype.copyPages = function (srcDoc, indices) {\n return __awaiter(this, void 0, void 0, function () {\n var copier, srcPages, copiedPages, idx, len, srcPage, copiedPage, ref;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n assertIs(srcDoc, 'srcDoc', [[PDFDocument, 'PDFDocument']]);\n assertIs(indices, 'indices', [Array]);\n return [4 /*yield*/, srcDoc.flush()];\n case 1:\n _a.sent();\n copier = PDFObjectCopier.for(srcDoc.context, this.context);\n srcPages = srcDoc.getPages();\n copiedPages = new Array(indices.length);\n for (idx = 0, len = indices.length; idx < len; idx++) {\n srcPage = srcPages[indices[idx]];\n copiedPage = copier.copy(srcPage.node);\n ref = this.context.register(copiedPage);\n copiedPages[idx] = PDFPage.of(copiedPage, ref, this);\n }\n return [2 /*return*/, copiedPages];\n }\n });\n });\n };\n /**\n * Get a copy of this document.\n *\n * For example:\n * ```js\n * const srcDoc = await PDFDocument.load(...)\n * const pdfDoc = await srcDoc.copy()\n * ```\n *\n * > **NOTE:** This method won't copy all information over to the new\n * > document (acroforms, outlines, etc...).\n *\n * @returns Resolves with a copy this document.\n */\n PDFDocument.prototype.copy = function () {\n return __awaiter(this, void 0, void 0, function () {\n var pdfCopy, contentPages, idx, len;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, PDFDocument.create()];\n case 1:\n pdfCopy = _a.sent();\n return [4 /*yield*/, pdfCopy.copyPages(this, this.getPageIndices())];\n case 2:\n contentPages = _a.sent();\n for (idx = 0, len = contentPages.length; idx < len; idx++) {\n pdfCopy.addPage(contentPages[idx]);\n }\n if (this.getAuthor() !== undefined) {\n pdfCopy.setAuthor(this.getAuthor());\n }\n if (this.getCreationDate() !== undefined) {\n pdfCopy.setCreationDate(this.getCreationDate());\n }\n if (this.getCreator() !== undefined) {\n pdfCopy.setCreator(this.getCreator());\n }\n if (this.getModificationDate() !== undefined) {\n pdfCopy.setModificationDate(this.getModificationDate());\n }\n if (this.getProducer() !== undefined) {\n pdfCopy.setProducer(this.getProducer());\n }\n if (this.getSubject() !== undefined) {\n pdfCopy.setSubject(this.getSubject());\n }\n if (this.getTitle() !== undefined) {\n pdfCopy.setTitle(this.getTitle());\n }\n pdfCopy.defaultWordBreaks = this.defaultWordBreaks;\n return [2 /*return*/, pdfCopy];\n }\n });\n });\n };\n /**\n * Add JavaScript to this document. The supplied `script` is executed when the\n * document is opened. The `script` can be used to perform some operation\n * when the document is opened (e.g. logging to the console), or it can be\n * used to define a function that can be referenced later in a JavaScript\n * action. For example:\n * ```js\n * // Show \"Hello World!\" in the console when the PDF is opened\n * pdfDoc.addJavaScript(\n * 'main',\n * 'console.show(); console.println(\"Hello World!\");'\n * );\n *\n * // Define a function named \"foo\" that can be called in JavaScript Actions\n * pdfDoc.addJavaScript(\n * 'foo',\n * 'function foo() { return \"foo\"; }'\n * );\n * ```\n * See the [JavaScript for Acrobat API Reference](https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf)\n * for details.\n * @param name The name of the script. Must be unique per document.\n * @param script The JavaScript to execute.\n */\n PDFDocument.prototype.addJavaScript = function (name, script) {\n assertIs(name, 'name', ['string']);\n assertIs(script, 'script', ['string']);\n var embedder = JavaScriptEmbedder.for(script, name);\n var ref = this.context.nextRef();\n var javaScript = PDFJavaScript.of(ref, this, embedder);\n this.javaScripts.push(javaScript);\n };\n /**\n * Add an attachment to this document. Attachments are visible in the\n * \"Attachments\" panel of Adobe Acrobat and some other PDF readers. Any\n * type of file can be added as an attachment. This includes, but is not\n * limited to, `.png`, `.jpg`, `.pdf`, `.csv`, `.docx`, and `.xlsx` files.\n *\n * The input data can be provided in multiple formats:\n *\n * | Type | Contents |\n * | ------------- | -------------------------------------------------------------- |\n * | `string` | A base64 encoded string (or data URI) containing an attachment |\n * | `Uint8Array` | The raw bytes of an attachment |\n * | `ArrayBuffer` | The raw bytes of an attachment |\n *\n * For example:\n * ```js\n * // attachment=string\n * await pdfDoc.attach('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...', 'cat_riding_unicorn.jpg', {\n * mimeType: 'image/jpeg',\n * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n * creationDate: new Date('2019/12/01'),\n * modificationDate: new Date('2020/04/19'),\n * })\n * await pdfDoc.attach('data:image/jpeg;base64,/9j/4AAQ...', 'cat_riding_unicorn.jpg', {\n * mimeType: 'image/jpeg',\n * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n * creationDate: new Date('2019/12/01'),\n * modificationDate: new Date('2020/04/19'),\n * })\n *\n * // attachment=Uint8Array\n * import fs from 'fs'\n * const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')\n * await pdfDoc.attach(uint8Array, 'cat_riding_unicorn.jpg', {\n * mimeType: 'image/jpeg',\n * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n * creationDate: new Date('2019/12/01'),\n * modificationDate: new Date('2020/04/19'),\n * })\n *\n * // attachment=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n * await pdfDoc.attach(arrayBuffer, 'cat_riding_unicorn.jpg', {\n * mimeType: 'image/jpeg',\n * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n * creationDate: new Date('2019/12/01'),\n * modificationDate: new Date('2020/04/19'),\n * })\n * ```\n *\n * @param attachment The input data containing the file to be attached.\n * @param name The name of the file to be attached.\n * @returns Resolves when the attachment is complete.\n */\n PDFDocument.prototype.attach = function (attachment, name, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var bytes, embedder, ref, embeddedFile;\n return __generator(this, function (_a) {\n assertIs(attachment, 'attachment', ['string', Uint8Array, ArrayBuffer]);\n assertIs(name, 'name', ['string']);\n assertOrUndefined(options.mimeType, 'mimeType', ['string']);\n assertOrUndefined(options.description, 'description', ['string']);\n assertOrUndefined(options.creationDate, 'options.creationDate', [Date]);\n assertOrUndefined(options.modificationDate, 'options.modificationDate', [\n Date,\n ]);\n assertIsOneOfOrUndefined(options.afRelationship, 'options.afRelationship', AFRelationship);\n bytes = toUint8Array(attachment);\n embedder = FileEmbedder.for(bytes, name, options);\n ref = this.context.nextRef();\n embeddedFile = PDFEmbeddedFile.of(ref, this, embedder);\n this.embeddedFiles.push(embeddedFile);\n return [2 /*return*/];\n });\n });\n };\n /**\n * Embed a font into this document. The input data can be provided in multiple\n * formats:\n *\n * | Type | Contents |\n * | --------------- | ------------------------------------------------------- |\n * | `StandardFonts` | One of the standard 14 fonts |\n * | `string` | A base64 encoded string (or data URI) containing a font |\n * | `Uint8Array` | The raw bytes of a font |\n * | `ArrayBuffer` | The raw bytes of a font |\n *\n * For example:\n * ```js\n * // font=StandardFonts\n * import { StandardFonts } from 'pdf-lib'\n * const font1 = await pdfDoc.embedFont(StandardFonts.Helvetica)\n *\n * // font=string\n * const font2 = await pdfDoc.embedFont('AAEAAAAVAQAABABQRFNJRx/upe...')\n * const font3 = await pdfDoc.embedFont('data:font/opentype;base64,AAEAAA...')\n *\n * // font=Uint8Array\n * import fs from 'fs'\n * const font4 = await pdfDoc.embedFont(fs.readFileSync('Ubuntu-R.ttf'))\n *\n * // font=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf'\n * const ubuntuBytes = await fetch(url).then(res => res.arrayBuffer())\n * const font5 = await pdfDoc.embedFont(ubuntuBytes)\n * ```\n * See also: [[registerFontkit]]\n * @param font The input data for a font.\n * @param options The options to be used when embedding the font.\n * @returns Resolves with the embedded font.\n */\n PDFDocument.prototype.embedFont = function (font, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, subset, customName, features, embedder, bytes, fontkit, _b, ref, pdfFont;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = options.subset, subset = _a === void 0 ? false : _a, customName = options.customName, features = options.features;\n assertIs(font, 'font', ['string', Uint8Array, ArrayBuffer]);\n assertIs(subset, 'subset', ['boolean']);\n if (!isStandardFont(font)) return [3 /*break*/, 1];\n embedder = StandardFontEmbedder.for(font, customName);\n return [3 /*break*/, 7];\n case 1:\n if (!canBeConvertedToUint8Array(font)) return [3 /*break*/, 6];\n bytes = toUint8Array(font);\n fontkit = this.assertFontkit();\n if (!subset) return [3 /*break*/, 3];\n return [4 /*yield*/, CustomFontSubsetEmbedder.for(fontkit, bytes, customName, features)];\n case 2:\n _b = _c.sent();\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, CustomFontEmbedder.for(fontkit, bytes, customName, features)];\n case 4:\n _b = _c.sent();\n _c.label = 5;\n case 5:\n embedder = _b;\n return [3 /*break*/, 7];\n case 6: throw new TypeError('`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`');\n case 7:\n ref = this.context.nextRef();\n pdfFont = PDFFont.of(ref, this, embedder);\n this.fonts.push(pdfFont);\n return [2 /*return*/, pdfFont];\n }\n });\n });\n };\n /**\n * Embed a standard font into this document.\n * For example:\n * ```js\n * import { StandardFonts } from 'pdf-lib'\n * const helveticaFont = pdfDoc.embedFont(StandardFonts.Helvetica)\n * ```\n * @param font The standard font to be embedded.\n * @param customName The name to be used when embedding the font.\n * @returns The embedded font.\n */\n PDFDocument.prototype.embedStandardFont = function (font, customName) {\n assertIs(font, 'font', ['string']);\n if (!isStandardFont(font)) {\n throw new TypeError('`font` must be one of type `StandardFonts`');\n }\n var embedder = StandardFontEmbedder.for(font, customName);\n var ref = this.context.nextRef();\n var pdfFont = PDFFont.of(ref, this, embedder);\n this.fonts.push(pdfFont);\n return pdfFont;\n };\n /**\n * Embed a JPEG image into this document. The input data can be provided in\n * multiple formats:\n *\n * | Type | Contents |\n * | ------------- | ------------------------------------------------------------- |\n * | `string` | A base64 encoded string (or data URI) containing a JPEG image |\n * | `Uint8Array` | The raw bytes of a JPEG image |\n * | `ArrayBuffer` | The raw bytes of a JPEG image |\n *\n * For example:\n * ```js\n * // jpg=string\n * const image1 = await pdfDoc.embedJpg('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...')\n * const image2 = await pdfDoc.embedJpg('data:image/jpeg;base64,/9j/4AAQ...')\n *\n * // jpg=Uint8Array\n * import fs from 'fs'\n * const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')\n * const image3 = await pdfDoc.embedJpg(uint8Array)\n *\n * // jpg=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n * const image4 = await pdfDoc.embedJpg(arrayBuffer)\n * ```\n *\n * @param jpg The input data for a JPEG image.\n * @returns Resolves with the embedded image.\n */\n PDFDocument.prototype.embedJpg = function (jpg) {\n return __awaiter(this, void 0, void 0, function () {\n var bytes, embedder, ref, pdfImage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n assertIs(jpg, 'jpg', ['string', Uint8Array, ArrayBuffer]);\n bytes = toUint8Array(jpg);\n return [4 /*yield*/, JpegEmbedder.for(bytes)];\n case 1:\n embedder = _a.sent();\n ref = this.context.nextRef();\n pdfImage = PDFImage.of(ref, this, embedder);\n this.images.push(pdfImage);\n return [2 /*return*/, pdfImage];\n }\n });\n });\n };\n /**\n * Embed a PNG image into this document. The input data can be provided in\n * multiple formats:\n *\n * | Type | Contents |\n * | ------------- | ------------------------------------------------------------ |\n * | `string` | A base64 encoded string (or data URI) containing a PNG image |\n * | `Uint8Array` | The raw bytes of a PNG image |\n * | `ArrayBuffer` | The raw bytes of a PNG image |\n *\n * For example:\n * ```js\n * // png=string\n * const image1 = await pdfDoc.embedPng('iVBORw0KGgoAAAANSUhEUgAAAlgAAAF3...')\n * const image2 = await pdfDoc.embedPng('data:image/png;base64,iVBORw0KGg...')\n *\n * // png=Uint8Array\n * import fs from 'fs'\n * const uint8Array = fs.readFileSync('small_mario.png')\n * const image3 = await pdfDoc.embedPng(uint8Array)\n *\n * // png=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/small_mario.png'\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n * const image4 = await pdfDoc.embedPng(arrayBuffer)\n * ```\n *\n * @param png The input data for a PNG image.\n * @returns Resolves with the embedded image.\n */\n PDFDocument.prototype.embedPng = function (png) {\n return __awaiter(this, void 0, void 0, function () {\n var bytes, embedder, ref, pdfImage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n assertIs(png, 'png', ['string', Uint8Array, ArrayBuffer]);\n bytes = toUint8Array(png);\n return [4 /*yield*/, PngEmbedder.for(bytes)];\n case 1:\n embedder = _a.sent();\n ref = this.context.nextRef();\n pdfImage = PDFImage.of(ref, this, embedder);\n this.images.push(pdfImage);\n return [2 /*return*/, pdfImage];\n }\n });\n });\n };\n /**\n * Embed one or more PDF pages into this document.\n *\n * For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n *\n * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n * const sourcePdf = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n *\n * // Embed page 74 of `sourcePdf` into `pdfDoc`\n * const [embeddedPage] = await pdfDoc.embedPdf(sourcePdf, [73])\n * ```\n *\n * See [[PDFDocument.load]] for examples of the allowed input data formats.\n *\n * @param pdf The input data containing a PDF document.\n * @param indices The indices of the pages that should be embedded.\n * @returns Resolves with an array of the embedded pages.\n */\n PDFDocument.prototype.embedPdf = function (pdf, indices) {\n if (indices === void 0) { indices = [0]; }\n return __awaiter(this, void 0, void 0, function () {\n var srcDoc, _a, srcPages;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n assertIs(pdf, 'pdf', [\n 'string',\n Uint8Array,\n ArrayBuffer,\n [PDFDocument, 'PDFDocument'],\n ]);\n assertIs(indices, 'indices', [Array]);\n if (!(pdf instanceof PDFDocument)) return [3 /*break*/, 1];\n _a = pdf;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, PDFDocument.load(pdf)];\n case 2:\n _a = _b.sent();\n _b.label = 3;\n case 3:\n srcDoc = _a;\n srcPages = pluckIndices(srcDoc.getPages(), indices);\n return [2 /*return*/, this.embedPages(srcPages)];\n }\n });\n });\n };\n /**\n * Embed a single PDF page into this document.\n *\n * For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n *\n * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n * const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n * const sourcePdfDoc = await PDFDocument.load(sourceBuffer)\n * const sourcePdfPage = sourcePdfDoc.getPages()[73]\n *\n * const embeddedPage = await pdfDoc.embedPage(\n * sourcePdfPage,\n *\n * // Clip a section of the source page so that we only embed part of it\n * { left: 100, right: 450, bottom: 330, top: 570 },\n *\n * // Translate all drawings of the embedded page by (10, 200) units\n * [1, 0, 0, 1, 10, 200],\n * )\n * ```\n *\n * @param page The page to be embedded.\n * @param boundingBox\n * Optionally, an area of the source page that should be embedded\n * (defaults to entire page).\n * @param transformationMatrix\n * Optionally, a transformation matrix that is always applied to the embedded\n * page anywhere it is drawn.\n * @returns Resolves with the embedded pdf page.\n */\n PDFDocument.prototype.embedPage = function (page, boundingBox, transformationMatrix) {\n return __awaiter(this, void 0, void 0, function () {\n var embeddedPage;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n return [4 /*yield*/, this.embedPages([page], [boundingBox], [transformationMatrix])];\n case 1:\n embeddedPage = (_a.sent())[0];\n return [2 /*return*/, embeddedPage];\n }\n });\n });\n };\n /**\n * Embed one or more PDF pages into this document.\n *\n * For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n *\n * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n * const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n * const sourcePdfDoc = await PDFDocument.load(sourceBuffer)\n *\n * const page1 = sourcePdfDoc.getPages()[0]\n * const page2 = sourcePdfDoc.getPages()[52]\n * const page3 = sourcePdfDoc.getPages()[73]\n *\n * const embeddedPages = await pdfDoc.embedPages([page1, page2, page3])\n * ```\n *\n * @param page\n * The pages to be embedded (they must all share the same context).\n * @param boundingBoxes\n * Optionally, an array of clipping boundaries - one for each page\n * (defaults to entirety of each page).\n * @param transformationMatrices\n * Optionally, an array of transformation matrices - one for each page\n * (each page's transformation will apply anywhere it is drawn).\n * @returns Resolves with an array of the embedded pdf pages.\n */\n PDFDocument.prototype.embedPages = function (pages, boundingBoxes, transformationMatrices) {\n if (boundingBoxes === void 0) { boundingBoxes = []; }\n if (transformationMatrices === void 0) { transformationMatrices = []; }\n return __awaiter(this, void 0, void 0, function () {\n var idx, len, currPage, nextPage, context, maybeCopyPage, embeddedPages, idx, len, page, box, matrix, embedder, ref;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (pages.length === 0)\n return [2 /*return*/, []];\n // Assert all pages have the same context\n for (idx = 0, len = pages.length - 1; idx < len; idx++) {\n currPage = pages[idx];\n nextPage = pages[idx + 1];\n if (currPage.node.context !== nextPage.node.context) {\n throw new PageEmbeddingMismatchedContextError();\n }\n }\n context = pages[0].node.context;\n maybeCopyPage = context === this.context\n ? function (p) { return p; }\n : PDFObjectCopier.for(context, this.context).copy;\n embeddedPages = new Array(pages.length);\n idx = 0, len = pages.length;\n _b.label = 1;\n case 1:\n if (!(idx < len)) return [3 /*break*/, 4];\n page = maybeCopyPage(pages[idx].node);\n box = boundingBoxes[idx];\n matrix = transformationMatrices[idx];\n return [4 /*yield*/, PDFPageEmbedder.for(page, box, matrix)];\n case 2:\n embedder = _b.sent();\n ref = this.context.nextRef();\n embeddedPages[idx] = PDFEmbeddedPage.of(ref, this, embedder);\n _b.label = 3;\n case 3:\n idx++;\n return [3 /*break*/, 1];\n case 4:\n (_a = this.embeddedPages).push.apply(_a, embeddedPages);\n return [2 /*return*/, embeddedPages];\n }\n });\n });\n };\n /**\n * > **NOTE:** You shouldn't need to call this method directly. The [[save]]\n * > and [[saveAsBase64]] methods will automatically ensure that all embedded\n * > assets are flushed before serializing the document.\n *\n * Flush all embedded fonts, PDF pages, and images to this document's\n * [[context]].\n *\n * @returns Resolves when the flush is complete.\n */\n PDFDocument.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.embedAll(this.fonts)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.embedAll(this.images)];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.embedAll(this.embeddedPages)];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.embedAll(this.embeddedFiles)];\n case 4:\n _a.sent();\n return [4 /*yield*/, this.embedAll(this.javaScripts)];\n case 5:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Serialize this document to an array of bytes making up a PDF file.\n * For example:\n * ```js\n * const pdfBytes = await pdfDoc.save()\n * ```\n *\n * There are a number of things you can do with the serialized document,\n * depending on the JavaScript environment you're running in:\n * * Write it to a file in Node or React Native\n * * Download it as a Blob in the browser\n * * Render it in an `iframe`\n *\n * @param options The options to be used when saving the document.\n * @returns Resolves with the bytes of the serialized document.\n */\n PDFDocument.prototype.save = function (options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, useObjectStreams, _b, addDefaultPage, _c, objectsPerTick, _d, updateFieldAppearances, form, Writer;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = options.useObjectStreams, useObjectStreams = _a === void 0 ? true : _a, _b = options.addDefaultPage, addDefaultPage = _b === void 0 ? true : _b, _c = options.objectsPerTick, objectsPerTick = _c === void 0 ? 50 : _c, _d = options.updateFieldAppearances, updateFieldAppearances = _d === void 0 ? true : _d;\n assertIs(useObjectStreams, 'useObjectStreams', ['boolean']);\n assertIs(addDefaultPage, 'addDefaultPage', ['boolean']);\n assertIs(objectsPerTick, 'objectsPerTick', ['number']);\n assertIs(updateFieldAppearances, 'updateFieldAppearances', ['boolean']);\n if (addDefaultPage && this.getPageCount() === 0)\n this.addPage();\n if (updateFieldAppearances) {\n form = this.formCache.getValue();\n if (form)\n form.updateFieldAppearances();\n }\n return [4 /*yield*/, this.flush()];\n case 1:\n _e.sent();\n Writer = useObjectStreams ? PDFStreamWriter : PDFWriter;\n return [2 /*return*/, Writer.forContext(this.context, objectsPerTick).serializeToBuffer()];\n }\n });\n });\n };\n /**\n * Serialize this document to a base64 encoded string or data URI making up a\n * PDF file. For example:\n * ```js\n * const base64String = await pdfDoc.saveAsBase64()\n * base64String // => 'JVBERi0xLjcKJYGBgYEKC...'\n *\n * const base64DataUri = await pdfDoc.saveAsBase64({ dataUri: true })\n * base64DataUri // => 'data:application/pdf;base64,JVBERi0xLjcKJYGBgYEKC...'\n * ```\n *\n * @param options The options to be used when saving the document.\n * @returns Resolves with a base64 encoded string or data URI of the\n * serialized document.\n */\n PDFDocument.prototype.saveAsBase64 = function (options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, dataUri, otherOptions, bytes, base64;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = options.dataUri, dataUri = _a === void 0 ? false : _a, otherOptions = __rest(options, [\"dataUri\"]);\n assertIs(dataUri, 'dataUri', ['boolean']);\n return [4 /*yield*/, this.save(otherOptions)];\n case 1:\n bytes = _b.sent();\n base64 = encodeToBase64(bytes);\n return [2 /*return*/, dataUri ? \"data:application/pdf;base64,\" + base64 : base64];\n }\n });\n });\n };\n PDFDocument.prototype.findPageForAnnotationRef = function (ref) {\n var pages = this.getPages();\n for (var idx = 0, len = pages.length; idx < len; idx++) {\n var page = pages[idx];\n var annotations = page.node.Annots();\n if ((annotations === null || annotations === void 0 ? void 0 : annotations.indexOf(ref)) !== undefined) {\n return page;\n }\n }\n return undefined;\n };\n PDFDocument.prototype.embedAll = function (embeddables) {\n return __awaiter(this, void 0, void 0, function () {\n var idx, len;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n idx = 0, len = embeddables.length;\n _a.label = 1;\n case 1:\n if (!(idx < len)) return [3 /*break*/, 4];\n return [4 /*yield*/, embeddables[idx].embed()];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n idx++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n PDFDocument.prototype.updateInfoDict = function () {\n var pdfLib = \"pdf-lib (https://github.com/Hopding/pdf-lib)\";\n var now = new Date();\n var info = this.getInfoDict();\n this.setProducer(pdfLib);\n this.setModificationDate(now);\n if (!info.get(PDFName.of('Creator')))\n this.setCreator(pdfLib);\n if (!info.get(PDFName.of('CreationDate')))\n this.setCreationDate(now);\n };\n PDFDocument.prototype.getInfoDict = function () {\n var existingInfo = this.context.lookup(this.context.trailerInfo.Info);\n if (existingInfo instanceof PDFDict)\n return existingInfo;\n var newInfo = this.context.obj({});\n this.context.trailerInfo.Info = this.context.register(newInfo);\n return newInfo;\n };\n PDFDocument.prototype.assertFontkit = function () {\n if (!this.fontkit)\n throw new FontkitNotRegisteredError();\n return this.fontkit;\n };\n return PDFDocument;\n}());\nexport default PDFDocument;\n/* tslint:disable-next-line only-arrow-functions */\nfunction assertIsLiteralOrHexString(pdfObject) {\n if (!(pdfObject instanceof PDFHexString) &&\n !(pdfObject instanceof PDFString)) {\n throw new UnexpectedObjectTypeError([PDFHexString, PDFString], pdfObject);\n }\n}\n//# sourceMappingURL=PDFDocument.js.map","import { __assign } from \"tslib\";\nimport { rgb } from \"./colors\";\nimport { drawImage, drawLine, drawLinesOfText, drawPage, drawRectangle, drawSvgPath, drawEllipse, } from \"./operations\";\nimport { popGraphicsState, pushGraphicsState, translate, LineCapStyle, scale, } from \"./operators\";\nimport PDFDocument from \"./PDFDocument\";\nimport PDFEmbeddedPage from \"./PDFEmbeddedPage\";\nimport PDFFont from \"./PDFFont\";\nimport PDFImage from \"./PDFImage\";\nimport { BlendMode, } from \"./PDFPageOptions\";\nimport { degrees, toDegrees } from \"./rotations\";\nimport { StandardFonts } from \"./StandardFonts\";\nimport { PDFContentStream, PDFName, PDFOperator, PDFPageLeaf, PDFRef, PDFDict, PDFArray, } from \"../core\";\nimport { assertEachIs, assertIs, assertMultiple, assertOrUndefined, breakTextIntoLines, cleanText, rectanglesAreEqual, lineSplit, assertRangeOrUndefined, assertIsOneOfOrUndefined, } from \"../utils\";\n/**\n * Represents a single page of a [[PDFDocument]].\n */\nvar PDFPage = /** @class */ (function () {\n function PDFPage(leafNode, ref, doc) {\n this.fontSize = 24;\n this.fontColor = rgb(0, 0, 0);\n this.lineHeight = 24;\n this.x = 0;\n this.y = 0;\n assertIs(leafNode, 'leafNode', [[PDFPageLeaf, 'PDFPageLeaf']]);\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n this.node = leafNode;\n this.ref = ref;\n this.doc = doc;\n }\n /**\n * Rotate this page by a multiple of 90 degrees. For example:\n * ```js\n * import { degrees } from 'pdf-lib'\n *\n * page.setRotation(degrees(-90))\n * page.setRotation(degrees(0))\n * page.setRotation(degrees(90))\n * page.setRotation(degrees(180))\n * page.setRotation(degrees(270))\n * ```\n * @param angle The angle to rotate this page.\n */\n PDFPage.prototype.setRotation = function (angle) {\n var degreesAngle = toDegrees(angle);\n assertMultiple(degreesAngle, 'degreesAngle', 90);\n this.node.set(PDFName.of('Rotate'), this.doc.context.obj(degreesAngle));\n };\n /**\n * Get this page's rotation angle in degrees. For example:\n * ```js\n * const rotationAngle = page.getRotation().angle;\n * ```\n * @returns The rotation angle of the page in degrees (always a multiple of\n * 90 degrees).\n */\n PDFPage.prototype.getRotation = function () {\n var Rotate = this.node.Rotate();\n return degrees(Rotate ? Rotate.asNumber() : 0);\n };\n /**\n * Resize this page by increasing or decreasing its width and height. For\n * example:\n * ```js\n * page.setSize(250, 500)\n * page.setSize(page.getWidth() + 50, page.getHeight() + 100)\n * page.setSize(page.getWidth() - 50, page.getHeight() - 100)\n * ```\n *\n * Note that the PDF specification does not allow for pages to have explicit\n * widths and heights. Instead it defines the \"size\" of a page in terms of\n * five rectangles: the MediaBox, CropBox, BleedBox, TrimBox, and ArtBox. As a\n * result, this method cannot directly change the width and height of a page.\n * Instead, it works by adjusting these five boxes.\n *\n * This method performs the following steps:\n * 1. Set width & height of MediaBox.\n * 2. Set width & height of CropBox, if it has same dimensions as MediaBox.\n * 3. Set width & height of BleedBox, if it has same dimensions as MediaBox.\n * 4. Set width & height of TrimBox, if it has same dimensions as MediaBox.\n * 5. Set width & height of ArtBox, if it has same dimensions as MediaBox.\n *\n * This approach works well for most PDF documents as all PDF pages must\n * have a MediaBox, but relatively few have a CropBox, BleedBox, TrimBox, or\n * ArtBox. And when they do have these additional boxes, they often have the\n * same dimensions as the MediaBox. However, if you find this method does not\n * work for your document, consider setting the boxes directly:\n * * [[PDFPage.setMediaBox]]\n * * [[PDFPage.setCropBox]]\n * * [[PDFPage.setBleedBox]]\n * * [[PDFPage.setTrimBox]]\n * * [[PDFPage.setArtBox]]\n *\n * @param width The new width of the page.\n * @param height The new height of the page.\n */\n PDFPage.prototype.setSize = function (width, height) {\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n var mediaBox = this.getMediaBox();\n this.setMediaBox(mediaBox.x, mediaBox.y, width, height);\n var cropBox = this.getCropBox();\n var bleedBox = this.getBleedBox();\n var trimBox = this.getTrimBox();\n var artBox = this.getArtBox();\n var hasCropBox = this.node.CropBox();\n var hasBleedBox = this.node.BleedBox();\n var hasTrimBox = this.node.TrimBox();\n var hasArtBox = this.node.ArtBox();\n if (hasCropBox && rectanglesAreEqual(cropBox, mediaBox)) {\n this.setCropBox(mediaBox.x, mediaBox.y, width, height);\n }\n if (hasBleedBox && rectanglesAreEqual(bleedBox, mediaBox)) {\n this.setBleedBox(mediaBox.x, mediaBox.y, width, height);\n }\n if (hasTrimBox && rectanglesAreEqual(trimBox, mediaBox)) {\n this.setTrimBox(mediaBox.x, mediaBox.y, width, height);\n }\n if (hasArtBox && rectanglesAreEqual(artBox, mediaBox)) {\n this.setArtBox(mediaBox.x, mediaBox.y, width, height);\n }\n };\n /**\n * Resize this page by increasing or decreasing its width. For example:\n * ```js\n * page.setWidth(250)\n * page.setWidth(page.getWidth() + 50)\n * page.setWidth(page.getWidth() - 50)\n * ```\n *\n * This method uses [[PDFPage.setSize]] to set the page's width.\n *\n * @param width The new width of the page.\n */\n PDFPage.prototype.setWidth = function (width) {\n assertIs(width, 'width', ['number']);\n this.setSize(width, this.getSize().height);\n };\n /**\n * Resize this page by increasing or decreasing its height. For example:\n * ```js\n * page.setHeight(500)\n * page.setHeight(page.getWidth() + 100)\n * page.setHeight(page.getWidth() - 100)\n * ```\n *\n * This method uses [[PDFPage.setSize]] to set the page's height.\n *\n * @param height The new height of the page.\n */\n PDFPage.prototype.setHeight = function (height) {\n assertIs(height, 'height', ['number']);\n this.setSize(this.getSize().width, height);\n };\n /**\n * Set the MediaBox of this page. For example:\n * ```js\n * const mediaBox = page.getMediaBox()\n *\n * page.setMediaBox(0, 0, 250, 500)\n * page.setMediaBox(mediaBox.x, mediaBox.y, 50, 100)\n * page.setMediaBox(15, 5, mediaBox.width - 50, mediaBox.height - 100)\n * ```\n *\n * See [[PDFPage.getMediaBox]] for details about what the MediaBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new MediaBox.\n * @param y The y coordinate of the lower left corner of the new MediaBox.\n * @param width The width of the new MediaBox.\n * @param height The height of the new MediaBox.\n */\n PDFPage.prototype.setMediaBox = function (x, y, width, height) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n var mediaBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.MediaBox, mediaBox);\n };\n /**\n * Set the CropBox of this page. For example:\n * ```js\n * const cropBox = page.getCropBox()\n *\n * page.setCropBox(0, 0, 250, 500)\n * page.setCropBox(cropBox.x, cropBox.y, 50, 100)\n * page.setCropBox(15, 5, cropBox.width - 50, cropBox.height - 100)\n * ```\n *\n * See [[PDFPage.getCropBox]] for details about what the CropBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new CropBox.\n * @param y The y coordinate of the lower left corner of the new CropBox.\n * @param width The width of the new CropBox.\n * @param height The height of the new CropBox.\n */\n PDFPage.prototype.setCropBox = function (x, y, width, height) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n var cropBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.CropBox, cropBox);\n };\n /**\n * Set the BleedBox of this page. For example:\n * ```js\n * const bleedBox = page.getBleedBox()\n *\n * page.setBleedBox(0, 0, 250, 500)\n * page.setBleedBox(bleedBox.x, bleedBox.y, 50, 100)\n * page.setBleedBox(15, 5, bleedBox.width - 50, bleedBox.height - 100)\n * ```\n *\n * See [[PDFPage.getBleedBox]] for details about what the BleedBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new BleedBox.\n * @param y The y coordinate of the lower left corner of the new BleedBox.\n * @param width The width of the new BleedBox.\n * @param height The height of the new BleedBox.\n */\n PDFPage.prototype.setBleedBox = function (x, y, width, height) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n var bleedBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.BleedBox, bleedBox);\n };\n /**\n * Set the TrimBox of this page. For example:\n * ```js\n * const trimBox = page.getTrimBox()\n *\n * page.setTrimBox(0, 0, 250, 500)\n * page.setTrimBox(trimBox.x, trimBox.y, 50, 100)\n * page.setTrimBox(15, 5, trimBox.width - 50, trimBox.height - 100)\n * ```\n *\n * See [[PDFPage.getTrimBox]] for details about what the TrimBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new TrimBox.\n * @param y The y coordinate of the lower left corner of the new TrimBox.\n * @param width The width of the new TrimBox.\n * @param height The height of the new TrimBox.\n */\n PDFPage.prototype.setTrimBox = function (x, y, width, height) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n var trimBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.TrimBox, trimBox);\n };\n /**\n * Set the ArtBox of this page. For example:\n * ```js\n * const artBox = page.getArtBox()\n *\n * page.setArtBox(0, 0, 250, 500)\n * page.setArtBox(artBox.x, artBox.y, 50, 100)\n * page.setArtBox(15, 5, artBox.width - 50, artBox.height - 100)\n * ```\n *\n * See [[PDFPage.getArtBox]] for details about what the ArtBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new ArtBox.\n * @param y The y coordinate of the lower left corner of the new ArtBox.\n * @param width The width of the new ArtBox.\n * @param height The height of the new ArtBox.\n */\n PDFPage.prototype.setArtBox = function (x, y, width, height) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n var artBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.ArtBox, artBox);\n };\n /**\n * Get this page's width and height. For example:\n * ```js\n * const { width, height } = page.getSize()\n * ```\n *\n * This method uses [[PDFPage.getMediaBox]] to obtain the page's\n * width and height.\n *\n * @returns The width and height of the page.\n */\n PDFPage.prototype.getSize = function () {\n var _a = this.getMediaBox(), width = _a.width, height = _a.height;\n return { width: width, height: height };\n };\n /**\n * Get this page's width. For example:\n * ```js\n * const width = page.getWidth()\n * ```\n *\n * This method uses [[PDFPage.getSize]] to obtain the page's size.\n *\n * @returns The width of the page.\n */\n PDFPage.prototype.getWidth = function () {\n return this.getSize().width;\n };\n /**\n * Get this page's height. For example:\n * ```js\n * const height = page.getHeight()\n * ```\n *\n * This method uses [[PDFPage.getSize]] to obtain the page's size.\n *\n * @returns The height of the page.\n */\n PDFPage.prototype.getHeight = function () {\n return this.getSize().height;\n };\n /**\n * Get the rectangle defining this page's MediaBox. For example:\n * ```js\n * const { x, y, width, height } = page.getMediaBox()\n * ```\n *\n * The MediaBox of a page defines the boundaries of the physical medium on\n * which the page is to be displayed/printed. It may include extended area\n * surrounding the page content for bleed marks, printing marks, etc...\n * It may also include areas close to the edges of the medium that cannot be\n * marked because of physical limitations of the output device. Content\n * falling outside this boundary may safely be discarded without affecting\n * the meaning of the PDF file.\n *\n * @returns An object defining the lower left corner of the MediaBox and its\n * width & height.\n */\n PDFPage.prototype.getMediaBox = function () {\n var mediaBox = this.node.MediaBox();\n return mediaBox.asRectangle();\n };\n /**\n * Get the rectangle defining this page's CropBox. For example:\n * ```js\n * const { x, y, width, height } = page.getCropBox()\n * ```\n *\n * The CropBox of a page defines the region to which the contents of the page\n * shall be clipped when displayed or printed. Unlike the other boxes, the\n * CropBox does not necessarily represent the physical page geometry. It\n * merely imposes clipping on the page contents.\n *\n * The CropBox's default value is the page's MediaBox.\n *\n * @returns An object defining the lower left corner of the CropBox and its\n * width & height.\n */\n PDFPage.prototype.getCropBox = function () {\n var _a;\n var cropBox = this.node.CropBox();\n return (_a = cropBox === null || cropBox === void 0 ? void 0 : cropBox.asRectangle()) !== null && _a !== void 0 ? _a : this.getMediaBox();\n };\n /**\n * Get the rectangle defining this page's BleedBox. For example:\n * ```js\n * const { x, y, width, height } = page.getBleedBox()\n * ```\n *\n * The BleedBox of a page defines the region to which the contents of the\n * page shall be clipped when output in a production environment. This may\n * include any extra bleed area needed to accommodate the physical\n * limitations of cutting, folding, and trimming equipment. The actual\n * printed page may include printing marks that fall outside the BleedBox.\n *\n * The BleedBox's default value is the page's CropBox.\n *\n * @returns An object defining the lower left corner of the BleedBox and its\n * width & height.\n */\n PDFPage.prototype.getBleedBox = function () {\n var _a;\n var bleedBox = this.node.BleedBox();\n return (_a = bleedBox === null || bleedBox === void 0 ? void 0 : bleedBox.asRectangle()) !== null && _a !== void 0 ? _a : this.getCropBox();\n };\n /**\n * Get the rectangle defining this page's TrimBox. For example:\n * ```js\n * const { x, y, width, height } = page.getTrimBox()\n * ```\n *\n * The TrimBox of a page defines the intended dimensions of the finished\n * page after trimming. It may be smaller than the MediaBox to allow for\n * production-related content, such as printing instructions, cut marks, or\n * color bars.\n *\n * The TrimBox's default value is the page's CropBox.\n *\n * @returns An object defining the lower left corner of the TrimBox and its\n * width & height.\n */\n PDFPage.prototype.getTrimBox = function () {\n var _a;\n var trimBox = this.node.TrimBox();\n return (_a = trimBox === null || trimBox === void 0 ? void 0 : trimBox.asRectangle()) !== null && _a !== void 0 ? _a : this.getCropBox();\n };\n /**\n * Get the rectangle defining this page's ArtBox. For example:\n * ```js\n * const { x, y, width, height } = page.getArtBox()\n * ```\n *\n * The ArtBox of a page defines the extent of the page's meaningful content\n * (including potential white space).\n *\n * The ArtBox's default value is the page's CropBox.\n *\n * @returns An object defining the lower left corner of the ArtBox and its\n * width & height.\n */\n PDFPage.prototype.getArtBox = function () {\n var _a;\n var artBox = this.node.ArtBox();\n return (_a = artBox === null || artBox === void 0 ? void 0 : artBox.asRectangle()) !== null && _a !== void 0 ? _a : this.getCropBox();\n };\n /**\n * Translate this page's content to a new location on the page. This operation\n * is often useful after resizing the page with [[setSize]]. For example:\n * ```js\n * // Add 50 units of whitespace to the top and right of the page\n * page.setSize(page.getWidth() + 50, page.getHeight() + 50)\n *\n * // Move the page's content from the lower-left corner of the page\n * // to the top-right corner.\n * page.translateContent(50, 50)\n *\n * // Now there are 50 units of whitespace to the left and bottom of the page\n * ```\n * See also: [[resetPosition]]\n * @param x The new position on the x-axis for this page's content.\n * @param y The new position on the y-axis for this page's content.\n */\n PDFPage.prototype.translateContent = function (x, y) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n this.node.normalize();\n this.getContentStream();\n var start = this.createContentStream(pushGraphicsState(), translate(x, y));\n var startRef = this.doc.context.register(start);\n var end = this.createContentStream(popGraphicsState());\n var endRef = this.doc.context.register(end);\n this.node.wrapContentStreams(startRef, endRef);\n };\n /**\n * Scale the size, content, and annotations of a page.\n *\n * For example:\n * ```js\n * page.scale(0.5, 0.5);\n * ```\n *\n * @param x The factor by which the width for the page should be scaled\n * (e.g. `0.5` is 50%).\n * @param y The factor by which the height for the page should be scaled\n * (e.g. `2.0` is 200%).\n */\n PDFPage.prototype.scale = function (x, y) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n this.setSize(this.getWidth() * x, this.getHeight() * y);\n this.scaleContent(x, y);\n this.scaleAnnotations(x, y);\n };\n /**\n * Scale the content of a page. This is useful after resizing an existing\n * page. This scales only the content, not the annotations.\n *\n * For example:\n * ```js\n * // Bisect the size of the page\n * page.setSize(page.getWidth() / 2, page.getHeight() / 2);\n *\n * // Scale the content of the page down by 50% in x and y\n * page.scaleContent(0.5, 0.5);\n * ```\n * See also: [[scaleAnnotations]]\n * @param x The factor by which the x-axis for the content should be scaled\n * (e.g. `0.5` is 50%).\n * @param y The factor by which the y-axis for the content should be scaled\n * (e.g. `2.0` is 200%).\n */\n PDFPage.prototype.scaleContent = function (x, y) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n this.node.normalize();\n this.getContentStream();\n var start = this.createContentStream(pushGraphicsState(), scale(x, y));\n var startRef = this.doc.context.register(start);\n var end = this.createContentStream(popGraphicsState());\n var endRef = this.doc.context.register(end);\n this.node.wrapContentStreams(startRef, endRef);\n };\n /**\n * Scale the annotations of a page. This is useful if you want to scale a\n * page with comments or other annotations.\n * ```js\n * // Scale the content of the page down by 50% in x and y\n * page.scaleContent(0.5, 0.5);\n *\n * // Scale the content of the page down by 50% in x and y\n * page.scaleAnnotations(0.5, 0.5);\n * ```\n * See also: [[scaleContent]]\n * @param x The factor by which the x-axis for the annotations should be\n * scaled (e.g. `0.5` is 50%).\n * @param y The factor by which the y-axis for the annotations should be\n * scaled (e.g. `2.0` is 200%).\n */\n PDFPage.prototype.scaleAnnotations = function (x, y) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n var annots = this.node.Annots();\n if (!annots)\n return;\n for (var idx = 0; idx < annots.size(); idx++) {\n var annot = annots.lookup(idx);\n if (annot instanceof PDFDict)\n this.scaleAnnot(annot, x, y);\n }\n };\n /**\n * Reset the x and y coordinates of this page to `(0, 0)`. This operation is\n * often useful after calling [[translateContent]]. For example:\n * ```js\n * // Shift the page's contents up and to the right by 50 units\n * page.translateContent(50, 50)\n *\n * // This text will shifted - it will be drawn at (50, 50)\n * page.drawText('I am shifted')\n *\n * // Move back to (0, 0)\n * page.resetPosition()\n *\n * // This text will not be shifted - it will be drawn at (0, 0)\n * page.drawText('I am not shifted')\n * ```\n */\n PDFPage.prototype.resetPosition = function () {\n this.getContentStream(false);\n this.x = 0;\n this.y = 0;\n };\n /**\n * Choose a default font for this page. The default font will be used whenever\n * text is drawn on this page and no font is specified. For example:\n * ```js\n * import { StandardFonts } from 'pdf-lib'\n *\n * const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n * const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const courierFont = await pdfDoc.embedFont(StandardFonts.Courier)\n *\n * const page = pdfDoc.addPage()\n *\n * page.setFont(helveticaFont)\n * page.drawText('I will be drawn in Helvetica')\n *\n * page.setFont(timesRomanFont)\n * page.drawText('I will be drawn in Courier', { font: courierFont })\n * ```\n * @param font The default font to be used when drawing text on this page.\n */\n PDFPage.prototype.setFont = function (font) {\n // TODO: Reuse image Font name if we've already added this image to Resources.Fonts\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.font = font;\n this.fontKey = this.node.newFontDictionary(this.font.name, this.font.ref);\n };\n /**\n * Choose a default font size for this page. The default font size will be\n * used whenever text is drawn on this page and no font size is specified.\n * For example:\n * ```js\n * page.setFontSize(12)\n * page.drawText('I will be drawn in size 12')\n *\n * page.setFontSize(36)\n * page.drawText('I will be drawn in size 24', { fontSize: 24 })\n * ```\n * @param fontSize The default font size to be used when drawing text on this\n * page.\n */\n PDFPage.prototype.setFontSize = function (fontSize) {\n assertIs(fontSize, 'fontSize', ['number']);\n this.fontSize = fontSize;\n };\n /**\n * Choose a default font color for this page. The default font color will be\n * used whenever text is drawn on this page and no font color is specified.\n * For example:\n * ```js\n * import { rgb, cmyk, grayscale } from 'pdf-lib'\n *\n * page.setFontColor(rgb(0.97, 0.02, 0.97))\n * page.drawText('I will be drawn in pink')\n *\n * page.setFontColor(cmyk(0.4, 0.7, 0.39, 0.15))\n * page.drawText('I will be drawn in gray', { color: grayscale(0.5) })\n * ```\n * @param fontColor The default font color to be used when drawing text on\n * this page.\n */\n PDFPage.prototype.setFontColor = function (fontColor) {\n assertIs(fontColor, 'fontColor', [[Object, 'Color']]);\n this.fontColor = fontColor;\n };\n /**\n * Choose a default line height for this page. The default line height will be\n * used whenever text is drawn on this page and no line height is specified.\n * For example:\n * ```js\n * page.setLineHeight(12);\n * page.drawText('These lines will be vertically \\n separated by 12 units')\n *\n * page.setLineHeight(36);\n * page.drawText('These lines will be vertically \\n separated by 24 units', {\n * lineHeight: 24\n * })\n * ```\n * @param lineHeight The default line height to be used when drawing text on\n * this page.\n */\n PDFPage.prototype.setLineHeight = function (lineHeight) {\n assertIs(lineHeight, 'lineHeight', ['number']);\n this.lineHeight = lineHeight;\n };\n /**\n * Get the default position of this page. For example:\n * ```js\n * const { x, y } = page.getPosition()\n * ```\n * @returns The default position of the page.\n */\n PDFPage.prototype.getPosition = function () {\n return { x: this.x, y: this.y };\n };\n /**\n * Get the default x coordinate of this page. For example:\n * ```js\n * const x = page.getX()\n * ```\n * @returns The default x coordinate of the page.\n */\n PDFPage.prototype.getX = function () {\n return this.x;\n };\n /**\n * Get the default y coordinate of this page. For example:\n * ```js\n * const y = page.getY()\n * ```\n * @returns The default y coordinate of the page.\n */\n PDFPage.prototype.getY = function () {\n return this.y;\n };\n /**\n * Change the default position of this page. For example:\n * ```js\n * page.moveTo(0, 0)\n * page.drawText('I will be drawn at the origin')\n *\n * page.moveTo(0, 25)\n * page.drawText('I will be drawn 25 units up')\n *\n * page.moveTo(25, 25)\n * page.drawText('I will be drawn 25 units up and 25 units to the right')\n * ```\n * @param x The new default position on the x-axis for this page.\n * @param y The new default position on the y-axis for this page.\n */\n PDFPage.prototype.moveTo = function (x, y) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n this.x = x;\n this.y = y;\n };\n /**\n * Change the default position of this page to be further down the y-axis.\n * For example:\n * ```js\n * page.moveTo(50, 50)\n * page.drawText('I will be drawn at (50, 50)')\n *\n * page.moveDown(10)\n * page.drawText('I will be drawn at (50, 40)')\n * ```\n * @param yDecrease The amount by which the page's default position along the\n * y-axis should be decreased.\n */\n PDFPage.prototype.moveDown = function (yDecrease) {\n assertIs(yDecrease, 'yDecrease', ['number']);\n this.y -= yDecrease;\n };\n /**\n * Change the default position of this page to be further up the y-axis.\n * For example:\n * ```js\n * page.moveTo(50, 50)\n * page.drawText('I will be drawn at (50, 50)')\n *\n * page.moveUp(10)\n * page.drawText('I will be drawn at (50, 60)')\n * ```\n * @param yIncrease The amount by which the page's default position along the\n * y-axis should be increased.\n */\n PDFPage.prototype.moveUp = function (yIncrease) {\n assertIs(yIncrease, 'yIncrease', ['number']);\n this.y += yIncrease;\n };\n /**\n * Change the default position of this page to be further left on the x-axis.\n * For example:\n * ```js\n * page.moveTo(50, 50)\n * page.drawText('I will be drawn at (50, 50)')\n *\n * page.moveLeft(10)\n * page.drawText('I will be drawn at (40, 50)')\n * ```\n * @param xDecrease The amount by which the page's default position along the\n * x-axis should be decreased.\n */\n PDFPage.prototype.moveLeft = function (xDecrease) {\n assertIs(xDecrease, 'xDecrease', ['number']);\n this.x -= xDecrease;\n };\n /**\n * Change the default position of this page to be further right on the y-axis.\n * For example:\n * ```js\n * page.moveTo(50, 50)\n * page.drawText('I will be drawn at (50, 50)')\n *\n * page.moveRight(10)\n * page.drawText('I will be drawn at (60, 50)')\n * ```\n * @param xIncrease The amount by which the page's default position along the\n * x-axis should be increased.\n */\n PDFPage.prototype.moveRight = function (xIncrease) {\n assertIs(xIncrease, 'xIncrease', ['number']);\n this.x += xIncrease;\n };\n /**\n * Push one or more operators to the end of this page's current content\n * stream. For example:\n * ```js\n * import {\n * pushGraphicsState,\n * moveTo,\n * lineTo,\n * closePath,\n * setFillingColor,\n * rgb,\n * fill,\n * popGraphicsState,\n * } from 'pdf-lib'\n *\n * // Draw a green triangle in the lower-left corner of the page\n * page.pushOperators(\n * pushGraphicsState(),\n * moveTo(0, 0),\n * lineTo(100, 0),\n * lineTo(50, 100),\n * closePath(),\n * setFillingColor(rgb(0.0, 1.0, 0.0)),\n * fill(),\n * popGraphicsState(),\n * )\n * ```\n * @param operator The operators to be pushed.\n */\n PDFPage.prototype.pushOperators = function () {\n var operator = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operator[_i] = arguments[_i];\n }\n assertEachIs(operator, 'operator', [[PDFOperator, 'PDFOperator']]);\n var contentStream = this.getContentStream();\n contentStream.push.apply(contentStream, operator);\n };\n /**\n * Draw one or more lines of text on this page. For example:\n * ```js\n * import { StandardFonts, rgb } from 'pdf-lib'\n *\n * const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n *\n * const page = pdfDoc.addPage()\n *\n * page.setFont(helveticaFont)\n *\n * page.moveTo(5, 200)\n * page.drawText('The Life of an Egg', { size: 36 })\n *\n * page.moveDown(36)\n * page.drawText('An Epic Tale of Woe', { size: 30 })\n *\n * page.drawText(\n * `Humpty Dumpty sat on a wall \\n` +\n * `Humpty Dumpty had a great fall; \\n` +\n * `All the king's horses and all the king's men \\n` +\n * `Couldn't put Humpty together again. \\n`,\n * {\n * x: 25,\n * y: 100,\n * font: timesRomanFont,\n * size: 24,\n * color: rgb(1, 0, 0),\n * lineHeight: 24,\n * opacity: 0.75,\n * },\n * )\n * ```\n * @param text The text to be drawn.\n * @param options The options to be used when drawing the text.\n */\n PDFPage.prototype.drawText = function (text, options) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (options === void 0) { options = {}; }\n assertIs(text, 'text', ['string']);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertOrUndefined(options.font, 'options.font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(options.size, 'options.size', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.lineHeight, 'options.lineHeight', ['number']);\n assertOrUndefined(options.maxWidth, 'options.maxWidth', ['number']);\n assertOrUndefined(options.wordBreaks, 'options.wordBreaks', [Array]);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n var _h = this.setOrEmbedFont(options.font), oldFont = _h.oldFont, newFont = _h.newFont, newFontKey = _h.newFontKey;\n var fontSize = options.size || this.fontSize;\n var wordBreaks = options.wordBreaks || this.doc.defaultWordBreaks;\n var textWidth = function (t) { return newFont.widthOfTextAtSize(t, fontSize); };\n var lines = options.maxWidth === undefined\n ? lineSplit(cleanText(text))\n : breakTextIntoLines(text, wordBreaks, options.maxWidth, textWidth);\n var encodedLines = new Array(lines.length);\n for (var idx = 0, len = lines.length; idx < len; idx++) {\n encodedLines[idx] = newFont.encodeText(lines[idx]);\n }\n var graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n blendMode: options.blendMode,\n });\n var contentStream = this.getContentStream();\n contentStream.push.apply(contentStream, drawLinesOfText(encodedLines, {\n color: (_a = options.color) !== null && _a !== void 0 ? _a : this.fontColor,\n font: newFontKey,\n size: fontSize,\n rotate: (_b = options.rotate) !== null && _b !== void 0 ? _b : degrees(0),\n xSkew: (_c = options.xSkew) !== null && _c !== void 0 ? _c : degrees(0),\n ySkew: (_d = options.ySkew) !== null && _d !== void 0 ? _d : degrees(0),\n x: (_e = options.x) !== null && _e !== void 0 ? _e : this.x,\n y: (_f = options.y) !== null && _f !== void 0 ? _f : this.y,\n lineHeight: (_g = options.lineHeight) !== null && _g !== void 0 ? _g : this.lineHeight,\n graphicsState: graphicsStateKey,\n }));\n if (options.font) {\n if (oldFont)\n this.setFont(oldFont);\n else\n this.resetFont();\n }\n };\n /**\n * Draw an image on this page. For example:\n * ```js\n * import { degrees } from 'pdf-lib'\n *\n * const jpgUrl = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n * const jpgImageBytes = await fetch(jpgUrl).then((res) => res.arrayBuffer())\n *\n * const jpgImage = await pdfDoc.embedJpg(jpgImageBytes)\n * const jpgDims = jpgImage.scale(0.5)\n *\n * const page = pdfDoc.addPage()\n *\n * page.drawImage(jpgImage, {\n * x: 25,\n * y: 25,\n * width: jpgDims.width,\n * height: jpgDims.height,\n * rotate: degrees(30),\n * opacity: 0.75,\n * })\n * ```\n * @param image The image to be drawn.\n * @param options The options to be used when drawing the image.\n */\n PDFPage.prototype.drawImage = function (image, options) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (options === void 0) { options = {}; }\n // TODO: Reuse image XObject name if we've already added this image to Resources.XObjects\n assertIs(image, 'image', [[PDFImage, 'PDFImage']]);\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.width, 'options.width', ['number']);\n assertOrUndefined(options.height, 'options.height', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n var xObjectKey = this.node.newXObject('Image', image.ref);\n var graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n blendMode: options.blendMode,\n });\n var contentStream = this.getContentStream();\n contentStream.push.apply(contentStream, drawImage(xObjectKey, {\n x: (_a = options.x) !== null && _a !== void 0 ? _a : this.x,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : this.y,\n width: (_c = options.width) !== null && _c !== void 0 ? _c : image.size().width,\n height: (_d = options.height) !== null && _d !== void 0 ? _d : image.size().height,\n rotate: (_e = options.rotate) !== null && _e !== void 0 ? _e : degrees(0),\n xSkew: (_f = options.xSkew) !== null && _f !== void 0 ? _f : degrees(0),\n ySkew: (_g = options.ySkew) !== null && _g !== void 0 ? _g : degrees(0),\n graphicsState: graphicsStateKey,\n }));\n };\n /**\n * Draw an embedded PDF page on this page. For example:\n * ```js\n * import { degrees } from 'pdf-lib'\n *\n * const pdfDoc = await PDFDocument.create()\n * const page = pdfDoc.addPage()\n *\n * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n * const sourcePdf = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n *\n * // Embed page 74 from the PDF\n * const [embeddedPage] = await pdfDoc.embedPdf(sourcePdf, 73)\n *\n * page.drawPage(embeddedPage, {\n * x: 250,\n * y: 200,\n * xScale: 0.5,\n * yScale: 0.5,\n * rotate: degrees(30),\n * opacity: 0.75,\n * })\n * ```\n *\n * The `options` argument accepts both `width`/`height` and `xScale`/`yScale`\n * as options. Since each of these options defines the size of the drawn page,\n * if both options are given, `width` and `height` take precedence and the\n * corresponding scale variants are ignored.\n *\n * @param embeddedPage The embedded page to be drawn.\n * @param options The options to be used when drawing the embedded page.\n */\n PDFPage.prototype.drawPage = function (embeddedPage, options) {\n var _a, _b, _c, _d, _e;\n if (options === void 0) { options = {}; }\n // TODO: Reuse embeddedPage XObject name if we've already added this embeddedPage to Resources.XObjects\n assertIs(embeddedPage, 'embeddedPage', [\n [PDFEmbeddedPage, 'PDFEmbeddedPage'],\n ]);\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.xScale, 'options.xScale', ['number']);\n assertOrUndefined(options.yScale, 'options.yScale', ['number']);\n assertOrUndefined(options.width, 'options.width', ['number']);\n assertOrUndefined(options.height, 'options.height', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n var xObjectKey = this.node.newXObject('EmbeddedPdfPage', embeddedPage.ref);\n var graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n blendMode: options.blendMode,\n });\n // prettier-ignore\n var xScale = (options.width !== undefined ? options.width / embeddedPage.width\n : options.xScale !== undefined ? options.xScale\n : 1);\n // prettier-ignore\n var yScale = (options.height !== undefined ? options.height / embeddedPage.height\n : options.yScale !== undefined ? options.yScale\n : 1);\n var contentStream = this.getContentStream();\n contentStream.push.apply(contentStream, drawPage(xObjectKey, {\n x: (_a = options.x) !== null && _a !== void 0 ? _a : this.x,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : this.y,\n xScale: xScale,\n yScale: yScale,\n rotate: (_c = options.rotate) !== null && _c !== void 0 ? _c : degrees(0),\n xSkew: (_d = options.xSkew) !== null && _d !== void 0 ? _d : degrees(0),\n ySkew: (_e = options.ySkew) !== null && _e !== void 0 ? _e : degrees(0),\n graphicsState: graphicsStateKey,\n }));\n };\n /**\n * Draw an SVG path on this page. For example:\n * ```js\n * import { rgb } from 'pdf-lib'\n *\n * const svgPath = 'M 0,20 L 100,160 Q 130,200 150,120 C 190,-40 200,200 300,150 L 400,90'\n *\n * // Draw path as black line\n * page.drawSvgPath(svgPath, { x: 25, y: 75 })\n *\n * // Change border style and opacity\n * page.drawSvgPath(svgPath, {\n * x: 25,\n * y: 275,\n * borderColor: rgb(0.5, 0.5, 0.5),\n * borderWidth: 2,\n * borderOpacity: 0.75,\n * })\n *\n * // Set fill color and opacity\n * page.drawSvgPath(svgPath, {\n * x: 25,\n * y: 475,\n * color: rgb(1.0, 0, 0),\n * opacity: 0.75,\n * })\n *\n * // Draw 50% of original size\n * page.drawSvgPath(svgPath, {\n * x: 25,\n * y: 675,\n * scale: 0.5,\n * })\n * ```\n * @param path The SVG path to be drawn.\n * @param options The options to be used when drawing the SVG path.\n */\n PDFPage.prototype.drawSvgPath = function (path, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (options === void 0) { options = {}; }\n assertIs(path, 'path', ['string']);\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.scale, 'options.scale', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertOrUndefined(options.borderColor, 'options.borderColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n Array,\n ]);\n assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n 'number',\n ]);\n assertIsOneOfOrUndefined(options.borderLineCap, 'options.borderLineCap', LineCapStyle);\n assertRangeOrUndefined(options.borderOpacity, 'options.borderOpacity', 0, 1);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n var graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n borderOpacity: options.borderOpacity,\n blendMode: options.blendMode,\n });\n if (!('color' in options) && !('borderColor' in options)) {\n options.borderColor = rgb(0, 0, 0);\n }\n var contentStream = this.getContentStream();\n contentStream.push.apply(contentStream, drawSvgPath(path, {\n x: (_a = options.x) !== null && _a !== void 0 ? _a : this.x,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : this.y,\n scale: options.scale,\n rotate: (_c = options.rotate) !== null && _c !== void 0 ? _c : degrees(0),\n color: (_d = options.color) !== null && _d !== void 0 ? _d : undefined,\n borderColor: (_e = options.borderColor) !== null && _e !== void 0 ? _e : undefined,\n borderWidth: (_f = options.borderWidth) !== null && _f !== void 0 ? _f : 0,\n borderDashArray: (_g = options.borderDashArray) !== null && _g !== void 0 ? _g : undefined,\n borderDashPhase: (_h = options.borderDashPhase) !== null && _h !== void 0 ? _h : undefined,\n borderLineCap: (_j = options.borderLineCap) !== null && _j !== void 0 ? _j : undefined,\n graphicsState: graphicsStateKey,\n }));\n };\n /**\n * Draw a line on this page. For example:\n * ```js\n * import { rgb } from 'pdf-lib'\n *\n * page.drawLine({\n * start: { x: 25, y: 75 },\n * end: { x: 125, y: 175 },\n * thickness: 2,\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the line.\n */\n PDFPage.prototype.drawLine = function (options) {\n var _a, _b, _c, _d, _e;\n assertIs(options.start, 'options.start', [\n [Object, '{ x: number, y: number }'],\n ]);\n assertIs(options.end, 'options.end', [\n [Object, '{ x: number, y: number }'],\n ]);\n assertIs(options.start.x, 'options.start.x', ['number']);\n assertIs(options.start.y, 'options.start.y', ['number']);\n assertIs(options.end.x, 'options.end.x', ['number']);\n assertIs(options.end.y, 'options.end.y', ['number']);\n assertOrUndefined(options.thickness, 'options.thickness', ['number']);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertOrUndefined(options.dashArray, 'options.dashArray', [Array]);\n assertOrUndefined(options.dashPhase, 'options.dashPhase', ['number']);\n assertIsOneOfOrUndefined(options.lineCap, 'options.lineCap', LineCapStyle);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n var graphicsStateKey = this.maybeEmbedGraphicsState({\n borderOpacity: options.opacity,\n blendMode: options.blendMode,\n });\n if (!('color' in options)) {\n options.color = rgb(0, 0, 0);\n }\n var contentStream = this.getContentStream();\n contentStream.push.apply(contentStream, drawLine({\n start: options.start,\n end: options.end,\n thickness: (_a = options.thickness) !== null && _a !== void 0 ? _a : 1,\n color: (_b = options.color) !== null && _b !== void 0 ? _b : undefined,\n dashArray: (_c = options.dashArray) !== null && _c !== void 0 ? _c : undefined,\n dashPhase: (_d = options.dashPhase) !== null && _d !== void 0 ? _d : undefined,\n lineCap: (_e = options.lineCap) !== null && _e !== void 0 ? _e : undefined,\n graphicsState: graphicsStateKey,\n }));\n };\n /**\n * Draw a rectangle on this page. For example:\n * ```js\n * import { degrees, grayscale, rgb } from 'pdf-lib'\n *\n * page.drawRectangle({\n * x: 25,\n * y: 75,\n * width: 250,\n * height: 75,\n * rotate: degrees(-15),\n * borderWidth: 5,\n * borderColor: grayscale(0.5),\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.5,\n * borderOpacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the rectangle.\n */\n PDFPage.prototype.drawRectangle = function (options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n if (options === void 0) { options = {}; }\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.width, 'options.width', ['number']);\n assertOrUndefined(options.height, 'options.height', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertOrUndefined(options.borderColor, 'options.borderColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n Array,\n ]);\n assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n 'number',\n ]);\n assertIsOneOfOrUndefined(options.borderLineCap, 'options.borderLineCap', LineCapStyle);\n assertRangeOrUndefined(options.borderOpacity, 'options.borderOpacity', 0, 1);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n var graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n borderOpacity: options.borderOpacity,\n blendMode: options.blendMode,\n });\n if (!('color' in options) && !('borderColor' in options)) {\n options.color = rgb(0, 0, 0);\n }\n var contentStream = this.getContentStream();\n contentStream.push.apply(contentStream, drawRectangle({\n x: (_a = options.x) !== null && _a !== void 0 ? _a : this.x,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : this.y,\n width: (_c = options.width) !== null && _c !== void 0 ? _c : 150,\n height: (_d = options.height) !== null && _d !== void 0 ? _d : 100,\n rotate: (_e = options.rotate) !== null && _e !== void 0 ? _e : degrees(0),\n xSkew: (_f = options.xSkew) !== null && _f !== void 0 ? _f : degrees(0),\n ySkew: (_g = options.ySkew) !== null && _g !== void 0 ? _g : degrees(0),\n borderWidth: (_h = options.borderWidth) !== null && _h !== void 0 ? _h : 0,\n color: (_j = options.color) !== null && _j !== void 0 ? _j : undefined,\n borderColor: (_k = options.borderColor) !== null && _k !== void 0 ? _k : undefined,\n borderDashArray: (_l = options.borderDashArray) !== null && _l !== void 0 ? _l : undefined,\n borderDashPhase: (_m = options.borderDashPhase) !== null && _m !== void 0 ? _m : undefined,\n graphicsState: graphicsStateKey,\n borderLineCap: (_o = options.borderLineCap) !== null && _o !== void 0 ? _o : undefined,\n }));\n };\n /**\n * Draw a square on this page. For example:\n * ```js\n * import { degrees, grayscale, rgb } from 'pdf-lib'\n *\n * page.drawSquare({\n * x: 25,\n * y: 75,\n * size: 100,\n * rotate: degrees(-15),\n * borderWidth: 5,\n * borderColor: grayscale(0.5),\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.5,\n * borderOpacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the square.\n */\n PDFPage.prototype.drawSquare = function (options) {\n if (options === void 0) { options = {}; }\n var size = options.size;\n assertOrUndefined(size, 'size', ['number']);\n this.drawRectangle(__assign(__assign({}, options), { width: size, height: size }));\n };\n /**\n * Draw an ellipse on this page. For example:\n * ```js\n * import { grayscale, rgb } from 'pdf-lib'\n *\n * page.drawEllipse({\n * x: 200,\n * y: 75,\n * xScale: 100,\n * yScale: 50,\n * borderWidth: 5,\n * borderColor: grayscale(0.5),\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.5,\n * borderOpacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the ellipse.\n */\n PDFPage.prototype.drawEllipse = function (options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n if (options === void 0) { options = {}; }\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.xScale, 'options.xScale', ['number']);\n assertOrUndefined(options.yScale, 'options.yScale', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertOrUndefined(options.borderColor, 'options.borderColor', [\n [Object, 'Color'],\n ]);\n assertRangeOrUndefined(options.borderOpacity, 'options.borderOpacity', 0, 1);\n assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n Array,\n ]);\n assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n 'number',\n ]);\n assertIsOneOfOrUndefined(options.borderLineCap, 'options.borderLineCap', LineCapStyle);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n var graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n borderOpacity: options.borderOpacity,\n blendMode: options.blendMode,\n });\n if (!('color' in options) && !('borderColor' in options)) {\n options.color = rgb(0, 0, 0);\n }\n var contentStream = this.getContentStream();\n contentStream.push.apply(contentStream, drawEllipse({\n x: (_a = options.x) !== null && _a !== void 0 ? _a : this.x,\n y: (_b = options.y) !== null && _b !== void 0 ? _b : this.y,\n xScale: (_c = options.xScale) !== null && _c !== void 0 ? _c : 100,\n yScale: (_d = options.yScale) !== null && _d !== void 0 ? _d : 100,\n rotate: (_e = options.rotate) !== null && _e !== void 0 ? _e : undefined,\n color: (_f = options.color) !== null && _f !== void 0 ? _f : undefined,\n borderColor: (_g = options.borderColor) !== null && _g !== void 0 ? _g : undefined,\n borderWidth: (_h = options.borderWidth) !== null && _h !== void 0 ? _h : 0,\n borderDashArray: (_j = options.borderDashArray) !== null && _j !== void 0 ? _j : undefined,\n borderDashPhase: (_k = options.borderDashPhase) !== null && _k !== void 0 ? _k : undefined,\n borderLineCap: (_l = options.borderLineCap) !== null && _l !== void 0 ? _l : undefined,\n graphicsState: graphicsStateKey,\n }));\n };\n /**\n * Draw a circle on this page. For example:\n * ```js\n * import { grayscale, rgb } from 'pdf-lib'\n *\n * page.drawCircle({\n * x: 200,\n * y: 150,\n * size: 100,\n * borderWidth: 5,\n * borderColor: grayscale(0.5),\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.5,\n * borderOpacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the ellipse.\n */\n PDFPage.prototype.drawCircle = function (options) {\n if (options === void 0) { options = {}; }\n var _a = options.size, size = _a === void 0 ? 100 : _a;\n assertOrUndefined(size, 'size', ['number']);\n this.drawEllipse(__assign(__assign({}, options), { xScale: size, yScale: size }));\n };\n PDFPage.prototype.setOrEmbedFont = function (font) {\n var oldFont = this.font;\n var oldFontKey = this.fontKey;\n if (font)\n this.setFont(font);\n else\n this.getFont();\n var newFont = this.font;\n var newFontKey = this.fontKey;\n return { oldFont: oldFont, oldFontKey: oldFontKey, newFont: newFont, newFontKey: newFontKey };\n };\n PDFPage.prototype.getFont = function () {\n if (!this.font || !this.fontKey) {\n var font = this.doc.embedStandardFont(StandardFonts.Helvetica);\n this.setFont(font);\n }\n return [this.font, this.fontKey];\n };\n PDFPage.prototype.resetFont = function () {\n this.font = undefined;\n this.fontKey = undefined;\n };\n PDFPage.prototype.getContentStream = function (useExisting) {\n if (useExisting === void 0) { useExisting = true; }\n if (useExisting && this.contentStream)\n return this.contentStream;\n this.contentStream = this.createContentStream();\n this.contentStreamRef = this.doc.context.register(this.contentStream);\n this.node.addContentStream(this.contentStreamRef);\n return this.contentStream;\n };\n PDFPage.prototype.createContentStream = function () {\n var operators = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operators[_i] = arguments[_i];\n }\n var dict = this.doc.context.obj({});\n var contentStream = PDFContentStream.of(dict, operators);\n return contentStream;\n };\n PDFPage.prototype.maybeEmbedGraphicsState = function (options) {\n var opacity = options.opacity, borderOpacity = options.borderOpacity, blendMode = options.blendMode;\n if (opacity === undefined &&\n borderOpacity === undefined &&\n blendMode === undefined) {\n return undefined;\n }\n var graphicsState = this.doc.context.obj({\n Type: 'ExtGState',\n ca: opacity,\n CA: borderOpacity,\n BM: blendMode,\n });\n var key = this.node.newExtGState('GS', graphicsState);\n return key;\n };\n PDFPage.prototype.scaleAnnot = function (annot, x, y) {\n var selectors = ['RD', 'CL', 'Vertices', 'QuadPoints', 'L', 'Rect'];\n for (var idx = 0, len = selectors.length; idx < len; idx++) {\n var list = annot.lookup(PDFName.of(selectors[idx]));\n if (list instanceof PDFArray)\n list.scalePDFNumbers(x, y);\n }\n var inkLists = annot.lookup(PDFName.of('InkList'));\n if (inkLists instanceof PDFArray) {\n for (var idx = 0, len = inkLists.size(); idx < len; idx++) {\n var arr = inkLists.lookup(idx);\n if (arr instanceof PDFArray)\n arr.scalePDFNumbers(x, y);\n }\n }\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.addPage]] and [[PDFDocument.insertPage]]\n * > methods, which can create instances of [[PDFPage]] for you.\n *\n * Create an instance of [[PDFPage]] from an existing leaf node.\n *\n * @param leafNode The leaf node to be wrapped.\n * @param ref The unique reference for the page.\n * @param doc The document to which the page will belong.\n */\n PDFPage.of = function (leafNode, ref, doc) {\n return new PDFPage(leafNode, ref, doc);\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.addPage]] and [[PDFDocument.insertPage]]\n * > methods, which can create instances of [[PDFPage]] for you.\n *\n * Create an instance of [[PDFPage]].\n *\n * @param doc The document to which the page will belong.\n */\n PDFPage.create = function (doc) {\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n var dummyRef = PDFRef.of(-1);\n var pageLeaf = PDFPageLeaf.withContextAndParent(doc.context, dummyRef);\n var pageRef = doc.context.register(pageLeaf);\n return new PDFPage(pageLeaf, pageRef, doc);\n };\n return PDFPage;\n}());\nexport default PDFPage;\n//# sourceMappingURL=PDFPage.js.map","import { __extends } from \"tslib\";\nimport PDFPage from \"../PDFPage\";\nimport PDFFont from \"../PDFFont\";\nimport { ImageAlignment } from \"../image/alignment\";\nimport { normalizeAppearance, defaultButtonAppearanceProvider, } from \"./appearances\";\nimport PDFField, { assertFieldAppearanceOptions, } from \"./PDFField\";\nimport { rgb } from \"../colors\";\nimport { degrees } from \"../rotations\";\nimport { PDFStream, PDFAcroPushButton, } from \"../../core\";\nimport { assertIs, assertOrUndefined, assertPositive } from \"../../utils\";\n/**\n * Represents a button field of a [[PDFForm]].\n *\n * [[PDFButton]] fields are interactive controls that users can click with their\n * mouse. This type of [[PDFField]] is not stateful. The purpose of a button\n * is to perform an action when the user clicks on it, such as opening a print\n * modal or resetting the form. Buttons are typically rectangular in shape and\n * have a text label describing the action that they perform when clicked.\n */\nvar PDFButton = /** @class */ (function (_super) {\n __extends(PDFButton, _super);\n function PDFButton(acroPushButton, ref, doc) {\n var _this = _super.call(this, acroPushButton, ref, doc) || this;\n assertIs(acroPushButton, 'acroButton', [\n [PDFAcroPushButton, 'PDFAcroPushButton'],\n ]);\n _this.acroField = acroPushButton;\n return _this;\n }\n /**\n * Display an image inside the bounds of this button's widgets. For example:\n * ```js\n * const pngImage = await pdfDoc.embedPng(...)\n * const button = form.getButton('some.button.field')\n * button.setImage(pngImage, ImageAlignment.Center)\n * ```\n * This will update the appearances streams for each of this button's widgets.\n * @param image The image that should be displayed.\n * @param alignment The alignment of the image.\n */\n PDFButton.prototype.setImage = function (image, alignment) {\n if (alignment === void 0) { alignment = ImageAlignment.Center; }\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var streamRef = this.createImageAppearanceStream(widget, image, alignment);\n this.updateWidgetAppearances(widget, { normal: streamRef });\n }\n this.markAsClean();\n };\n /**\n * Set the font size for this field. Larger font sizes will result in larger\n * text being displayed when PDF readers render this button. Font sizes may\n * be integer or floating point numbers. Supplying a negative font size will\n * cause this method to throw an error.\n *\n * For example:\n * ```js\n * const button = form.getButton('some.button.field')\n * button.setFontSize(4)\n * button.setFontSize(15.7)\n * ```\n *\n * > This method depends upon the existence of a default appearance\n * > (`/DA`) string. If this field does not have a default appearance string,\n * > or that string does not contain a font size (via the `Tf` operator),\n * > then this method will throw an error.\n *\n * @param fontSize The font size to be used when rendering text in this field.\n */\n PDFButton.prototype.setFontSize = function (fontSize) {\n assertPositive(fontSize, 'fontSize');\n this.acroField.setFontSize(fontSize);\n this.markAsDirty();\n };\n /**\n * Show this button on the specified page with the given text. For example:\n * ```js\n * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const button = form.createButton('some.button.field')\n *\n * button.addToPage('Do Stuff', page, {\n * x: 50,\n * y: 75,\n * width: 200,\n * height: 100,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * font: ubuntuFont,\n * })\n * ```\n * This will create a new widget for this button field.\n * @param text The text to be displayed for this button widget.\n * @param page The page to which this button widget should be added.\n * @param options The options to be used when adding this button widget.\n */\n PDFButton.prototype.addToPage = function (\n // TODO: This needs to be optional, e.g. for image buttons\n text, page, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n assertOrUndefined(text, 'text', ['string']);\n assertOrUndefined(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n // Create a widget for this button\n var widget = this.createWidget({\n x: ((_a = options === null || options === void 0 ? void 0 : options.x) !== null && _a !== void 0 ? _a : 0) - ((_b = options === null || options === void 0 ? void 0 : options.borderWidth) !== null && _b !== void 0 ? _b : 0) / 2,\n y: ((_c = options === null || options === void 0 ? void 0 : options.y) !== null && _c !== void 0 ? _c : 0) - ((_d = options === null || options === void 0 ? void 0 : options.borderWidth) !== null && _d !== void 0 ? _d : 0) / 2,\n width: (_e = options === null || options === void 0 ? void 0 : options.width) !== null && _e !== void 0 ? _e : 100,\n height: (_f = options === null || options === void 0 ? void 0 : options.height) !== null && _f !== void 0 ? _f : 50,\n textColor: (_g = options === null || options === void 0 ? void 0 : options.textColor) !== null && _g !== void 0 ? _g : rgb(0, 0, 0),\n backgroundColor: (_h = options === null || options === void 0 ? void 0 : options.backgroundColor) !== null && _h !== void 0 ? _h : rgb(0.75, 0.75, 0.75),\n borderColor: options === null || options === void 0 ? void 0 : options.borderColor,\n borderWidth: (_j = options === null || options === void 0 ? void 0 : options.borderWidth) !== null && _j !== void 0 ? _j : 0,\n rotate: (_k = options === null || options === void 0 ? void 0 : options.rotate) !== null && _k !== void 0 ? _k : degrees(0),\n caption: text,\n hidden: options === null || options === void 0 ? void 0 : options.hidden,\n page: page.ref,\n });\n var widgetRef = this.doc.context.register(widget.dict);\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n // Set appearance streams for widget\n var font = (_l = options === null || options === void 0 ? void 0 : options.font) !== null && _l !== void 0 ? _l : this.doc.getForm().getDefaultFont();\n this.updateWidgetAppearance(widget, font);\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n };\n /**\n * Returns `true` if this button has been marked as dirty, or if any of this\n * button's widgets do not have an appearance stream. For example:\n * ```js\n * const button = form.getButton('some.button.field')\n * if (button.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this button needs an appearance update.\n */\n PDFButton.prototype.needsAppearancesUpdate = function () {\n var _a;\n if (this.isDirty())\n return true;\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n var hasAppearances = ((_a = widget.getAppearances()) === null || _a === void 0 ? void 0 : _a.normal) instanceof PDFStream;\n if (!hasAppearances)\n return true;\n }\n return false;\n };\n /**\n * Update the appearance streams for each of this button's widgets using\n * the default appearance provider for buttons. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const button = form.getButton('some.button.field')\n * button.defaultUpdateAppearances(helvetica)\n * ```\n * @param font The font to be used for creating the appearance streams.\n */\n PDFButton.prototype.defaultUpdateAppearances = function (font) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.updateAppearances(font);\n };\n /**\n * Update the appearance streams for each of this button's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for buttons will be used. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const button = form.getButton('some.button.field')\n * button.updateAppearances(helvetica, (field, widget, font) => {\n * ...\n * return {\n * normal: drawButton(...),\n * down: drawButton(...),\n * }\n * })\n * ```\n * @param font The font to be used for creating the appearance streams.\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n PDFButton.prototype.updateAppearances = function (font, provider) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(provider, 'provider', [Function]);\n var widgets = this.acroField.getWidgets();\n for (var idx = 0, len = widgets.length; idx < len; idx++) {\n var widget = widgets[idx];\n this.updateWidgetAppearance(widget, font, provider);\n }\n };\n PDFButton.prototype.updateWidgetAppearance = function (widget, font, provider) {\n var apProvider = provider !== null && provider !== void 0 ? provider : defaultButtonAppearanceProvider;\n var appearances = normalizeAppearance(apProvider(this, widget, font));\n this.updateWidgetAppearanceWithFont(widget, font, appearances);\n };\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getButton]] method, which will create an\n * > instance of [[PDFButton]] for you.\n *\n * Create an instance of [[PDFButton]] from an existing acroPushButton and ref\n *\n * @param acroPushButton The underlying `PDFAcroPushButton` for this button.\n * @param ref The unique reference for this button.\n * @param doc The document to which this button will belong.\n */\n PDFButton.of = function (acroPushButton, ref, doc) { return new PDFButton(acroPushButton, ref, doc); };\n return PDFButton;\n}(PDFField));\nexport default PDFButton;\n//# sourceMappingURL=PDFButton.js.map","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","import { isNumber } from '../../utils/is.js';\nimport { flatten } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nimport { createApply } from '../matrix/apply.js';\nvar name = 'quantileSeq';\nvar dependencies = ['typed', '?bignumber', 'add', 'subtract', 'divide', 'multiply', 'partitionSelect', 'compare', 'isInteger', 'smaller', 'smallerEq', 'larger'];\nexport var createQuantileSeq = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n bignumber,\n add,\n subtract,\n divide,\n multiply,\n partitionSelect,\n compare,\n isInteger,\n smaller,\n smallerEq,\n larger\n } = _ref;\n var apply = createApply({\n typed,\n isInteger\n });\n\n /**\n * Compute the prob order quantile of a matrix or a list with values.\n * The sequence is sorted and the middle value is returned.\n * Supported types of sequence values are: Number, BigNumber, Unit\n * Supported types of probability are: Number, BigNumber\n *\n * In case of a multidimensional array or matrix, the prob order quantile\n * of all elements will be calculated.\n *\n * Syntax:\n *\n * math.quantileSeq(A, prob[, sorted])\n * math.quantileSeq(A, [prob1, prob2, ...][, sorted])\n * math.quantileSeq(A, N[, sorted])\n *\n * Examples:\n *\n * math.quantileSeq([3, -1, 5, 7], 0.5) // returns 4\n * math.quantileSeq([3, -1, 5, 7], [1/3, 2/3]) // returns [3, 5]\n * math.quantileSeq([3, -1, 5, 7], 2) // returns [3, 5]\n * math.quantileSeq([-1, 3, 5, 7], 0.5, true) // returns 4\n *\n * See also:\n *\n * median, mean, min, max, sum, prod, std, variance\n *\n * @param {Array, Matrix} data A single matrix or Array\n * @param {Number, BigNumber, Array} probOrN prob is the order of the quantile, while N is\n * the amount of evenly distributed steps of\n * probabilities; only one of these options can\n * be provided\n * @param {Boolean} sorted=false is data sorted in ascending order\n * @return {Number, BigNumber, Unit, Array} Quantile(s)\n */\n return typed(name, {\n 'Array | Matrix, number | BigNumber': (data, p) => _quantileSeqProbNumber(data, p, false),\n 'Array | Matrix, number | BigNumber, number': (data, prob, dim) => _quantileSeqDim(data, prob, false, dim, _quantileSeqProbNumber),\n 'Array | Matrix, number | BigNumber, boolean': _quantileSeqProbNumber,\n 'Array | Matrix, number | BigNumber, boolean, number': (data, prob, sorted, dim) => _quantileSeqDim(data, prob, sorted, dim, _quantileSeqProbNumber),\n 'Array | Matrix, Array | Matrix': (data, p) => _quantileSeqProbCollection(data, p, false),\n 'Array | Matrix, Array | Matrix, number': (data, prob, dim) => _quantileSeqDim(data, prob, false, dim, _quantileSeqProbCollection),\n 'Array | Matrix, Array | Matrix, boolean': _quantileSeqProbCollection,\n 'Array | Matrix, Array | Matrix, boolean, number': (data, prob, sorted, dim) => _quantileSeqDim(data, prob, sorted, dim, _quantileSeqProbCollection)\n });\n function _quantileSeqDim(data, prob, sorted, dim, fn) {\n return apply(data, dim, x => fn(x, prob, sorted));\n }\n function _quantileSeqProbNumber(data, probOrN, sorted) {\n var probArr;\n var dataArr = data.valueOf();\n if (smaller(probOrN, 0)) {\n throw new Error('N/prob must be non-negative');\n }\n if (smallerEq(probOrN, 1)) {\n // quantileSeq([a, b, c, d, ...], prob[,sorted])\n return isNumber(probOrN) ? _quantileSeq(dataArr, probOrN, sorted) : bignumber(_quantileSeq(dataArr, probOrN, sorted));\n }\n if (larger(probOrN, 1)) {\n // quantileSeq([a, b, c, d, ...], N[,sorted])\n if (!isInteger(probOrN)) {\n throw new Error('N must be a positive integer');\n }\n\n // largest possible Array length is 2^32-1\n // 2^32 < 10^15, thus safe conversion guaranteed\n if (larger(probOrN, 4294967295)) {\n throw new Error('N must be less than or equal to 2^32-1, as that is the maximum length of an Array');\n }\n var nPlusOne = add(probOrN, 1);\n probArr = [];\n for (var i = 0; smaller(i, probOrN); i++) {\n var prob = divide(i + 1, nPlusOne);\n probArr.push(_quantileSeq(dataArr, prob, sorted));\n }\n return isNumber(probOrN) ? probArr : bignumber(probArr);\n }\n }\n\n /**\n * Calculate the prob order quantile of an n-dimensional array.\n *\n * @param {Array, Matrix} array\n * @param {Array, Matrix} prob\n * @param {Boolean} sorted\n * @return {Number, BigNumber, Unit} prob order quantile\n * @private\n */\n\n function _quantileSeqProbCollection(data, probOrN, sorted) {\n var dataArr = data.valueOf();\n // quantileSeq([a, b, c, d, ...], [prob1, prob2, ...][,sorted])\n var probOrNArr = probOrN.valueOf();\n var probArr = [];\n for (var i = 0; i < probOrNArr.length; ++i) {\n probArr.push(_quantileSeq(dataArr, probOrNArr[i], sorted));\n }\n return probArr;\n }\n\n /**\n * Calculate the prob order quantile of an n-dimensional array.\n *\n * @param {Array} array\n * @param {Number, BigNumber} prob\n * @param {Boolean} sorted\n * @return {Number, BigNumber, Unit} prob order quantile\n * @private\n */\n function _quantileSeq(array, prob, sorted) {\n var flat = flatten(array);\n var len = flat.length;\n if (len === 0) {\n throw new Error('Cannot calculate quantile of an empty sequence');\n }\n var index = isNumber(prob) ? prob * (len - 1) : prob.times(len - 1);\n var integerPart = isNumber(prob) ? Math.floor(index) : index.floor().toNumber();\n var fracPart = isNumber(prob) ? index % 1 : index.minus(integerPart);\n if (isInteger(index)) {\n return sorted ? flat[index] : partitionSelect(flat, isNumber(prob) ? index : index.valueOf());\n }\n var left;\n var right;\n if (sorted) {\n left = flat[integerPart];\n right = flat[integerPart + 1];\n } else {\n right = partitionSelect(flat, integerPart + 1);\n\n // max of partition is kth largest\n left = flat[integerPart];\n for (var i = 0; i < integerPart; ++i) {\n if (compare(flat[i], left) > 0) {\n left = flat[i];\n }\n }\n }\n // Q(prob) = (1-f)*A[floor(index)] + f*A[floor(index)+1]\n return add(multiply(left, subtract(1, fracPart)), multiply(right, fracPart));\n }\n});","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar TokenExpiredError = function (message, expiredAt) {\n JsonWebTokenError.call(this, message);\n this.name = 'TokenExpiredError';\n this.expiredAt = expiredAt;\n};\n\nTokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype);\n\nTokenExpiredError.prototype.constructor = TokenExpiredError;\n\nmodule.exports = TokenExpiredError;","import { bitOrBigNumber } from '../../utils/bignumber/bitwise.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatAlgo10xSids } from '../../type/matrix/utils/matAlgo10xSids.js';\nimport { createMatAlgo04xSidSid } from '../../type/matrix/utils/matAlgo04xSidSid.js';\nimport { createMatAlgo01xDSid } from '../../type/matrix/utils/matAlgo01xDSid.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { bitOrNumber } from '../../plain/number/index.js';\nvar name = 'bitOr';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix', 'concat'];\nexport var createBitOr = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo01xDSid = createMatAlgo01xDSid({\n typed\n });\n var matAlgo04xSidSid = createMatAlgo04xSidSid({\n typed,\n equalScalar\n });\n var matAlgo10xSids = createMatAlgo10xSids({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Bitwise OR two values, `x | y`.\n * For matrices, the function is evaluated element wise.\n * For units, the function is evaluated on the lowest print base.\n *\n * Syntax:\n *\n * math.bitOr(x, y)\n *\n * Examples:\n *\n * math.bitOr(1, 2) // returns number 3\n *\n * math.bitOr([1, 2, 3], 4) // returns Array [5, 6, 7]\n *\n * See also:\n *\n * bitAnd, bitNot, bitXor, leftShift, rightArithShift, rightLogShift\n *\n * @param {number | BigNumber | Array | Matrix} x First value to or\n * @param {number | BigNumber | Array | Matrix} y Second value to or\n * @return {number | BigNumber | Array | Matrix} OR of `x` and `y`\n */\n return typed(name, {\n 'number, number': bitOrNumber,\n 'BigNumber, BigNumber': bitOrBigNumber\n }, matrixAlgorithmSuite({\n SS: matAlgo04xSidSid,\n DS: matAlgo01xDSid,\n Ss: matAlgo10xSids\n }));\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","/** @param {number} i\n * @param {number} n\n * @returns {number} product of i to n\n */\nexport function product(i, n) {\n if (n < i) {\n return 1;\n }\n if (n === i) {\n return n;\n }\n var half = n + i >> 1; // divide (n + i) by 2 and truncate to integer\n return product(i, half) * product(half + 1, n);\n}","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","import { isMatrix } from '../../utils/is.js';\nimport { format } from '../../utils/string.js';\nimport { arraySize } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'sqrtm';\nvar dependencies = ['typed', 'abs', 'add', 'multiply', 'map', 'sqrt', 'subtract', 'inv', 'size', 'max', 'identity'];\nexport var createSqrtm = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n abs,\n add,\n multiply,\n map,\n sqrt,\n subtract,\n inv,\n size,\n max,\n identity\n } = _ref;\n var _maxIterations = 1e3;\n var _tolerance = 1e-6;\n\n /**\n * Calculate the principal square root matrix using the Denman–Beavers iterative method\n *\n * https://en.wikipedia.org/wiki/Square_root_of_a_matrix#By_Denman–Beavers_iteration\n *\n * @param {Array | Matrix} A The square matrix `A`\n * @return {Array | Matrix} The principal square root of matrix `A`\n * @private\n */\n function _denmanBeavers(A) {\n var error;\n var iterations = 0;\n var Y = A;\n var Z = identity(size(A));\n do {\n var Yk = Y;\n Y = multiply(0.5, add(Yk, inv(Z)));\n Z = multiply(0.5, add(Z, inv(Yk)));\n error = max(abs(subtract(Y, Yk)));\n if (error > _tolerance && ++iterations > _maxIterations) {\n throw new Error('computing square root of matrix: iterative method could not converge');\n }\n } while (error > _tolerance);\n return Y;\n }\n\n /**\n * Calculate the principal square root of a square matrix.\n * The principal square root matrix `X` of another matrix `A` is such that `X * X = A`.\n *\n * https://en.wikipedia.org/wiki/Square_root_of_a_matrix\n *\n * Syntax:\n *\n * math.sqrtm(A)\n *\n * Examples:\n *\n * math.sqrtm([[33, 24], [48, 57]]) // returns [[5, 2], [4, 7]]\n *\n * See also:\n *\n * sqrt, pow\n *\n * @param {Array | Matrix} A The square matrix `A`\n * @return {Array | Matrix} The principal square root of matrix `A`\n */\n return typed(name, {\n 'Array | Matrix': function ArrayMatrix(A) {\n var size = isMatrix(A) ? A.size() : arraySize(A);\n switch (size.length) {\n case 1:\n // Single element Array | Matrix\n if (size[0] === 1) {\n return map(A, sqrt);\n } else {\n throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');\n }\n case 2:\n {\n // Two-dimensional Array | Matrix\n var rows = size[0];\n var cols = size[1];\n if (rows === cols) {\n return _denmanBeavers(A);\n } else {\n throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');\n }\n }\n default:\n // Multi dimensional array\n throw new RangeError('Matrix must be at most two dimensional ' + '(size: ' + format(size) + ')');\n }\n }\n });\n});","import { isMatrix } from '../../utils/is.js';\nimport { arraySize } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nimport { format } from '../../utils/string.js';\nvar name = 'inv';\nvar dependencies = ['typed', 'matrix', 'divideScalar', 'addScalar', 'multiply', 'unaryMinus', 'det', 'identity', 'abs'];\nexport var createInv = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n divideScalar,\n addScalar,\n multiply,\n unaryMinus,\n det,\n identity,\n abs\n } = _ref;\n /**\n * Calculate the inverse of a square matrix.\n *\n * Syntax:\n *\n * math.inv(x)\n *\n * Examples:\n *\n * math.inv([[1, 2], [3, 4]]) // returns [[-2, 1], [1.5, -0.5]]\n * math.inv(4) // returns 0.25\n * 1 / 4 // returns 0.25\n *\n * See also:\n *\n * det, transpose\n *\n * @param {number | Complex | Array | Matrix} x Matrix to be inversed\n * @return {number | Complex | Array | Matrix} The inverse of `x`.\n */\n return typed(name, {\n 'Array | Matrix': function ArrayMatrix(x) {\n var size = isMatrix(x) ? x.size() : arraySize(x);\n switch (size.length) {\n case 1:\n // vector\n if (size[0] === 1) {\n if (isMatrix(x)) {\n return matrix([divideScalar(1, x.valueOf()[0])]);\n } else {\n return [divideScalar(1, x[0])];\n }\n } else {\n throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');\n }\n case 2:\n // two dimensional array\n {\n var rows = size[0];\n var cols = size[1];\n if (rows === cols) {\n if (isMatrix(x)) {\n return matrix(_inv(x.valueOf(), rows, cols), x.storage());\n } else {\n // return an Array\n return _inv(x, rows, cols);\n }\n } else {\n throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');\n }\n }\n default:\n // multi dimensional array\n throw new RangeError('Matrix must be two dimensional ' + '(size: ' + format(size) + ')');\n }\n },\n any: function any(x) {\n // scalar\n return divideScalar(1, x); // FIXME: create a BigNumber one when configured for bignumbers\n }\n });\n\n /**\n * Calculate the inverse of a square matrix\n * @param {Array[]} mat A square matrix\n * @param {number} rows Number of rows\n * @param {number} cols Number of columns, must equal rows\n * @return {Array[]} inv Inverse matrix\n * @private\n */\n function _inv(mat, rows, cols) {\n var r, s, f, value, temp;\n if (rows === 1) {\n // this is a 1 x 1 matrix\n value = mat[0][0];\n if (value === 0) {\n throw Error('Cannot calculate inverse, determinant is zero');\n }\n return [[divideScalar(1, value)]];\n } else if (rows === 2) {\n // this is a 2 x 2 matrix\n var d = det(mat);\n if (d === 0) {\n throw Error('Cannot calculate inverse, determinant is zero');\n }\n return [[divideScalar(mat[1][1], d), divideScalar(unaryMinus(mat[0][1]), d)], [divideScalar(unaryMinus(mat[1][0]), d), divideScalar(mat[0][0], d)]];\n } else {\n // this is a matrix of 3 x 3 or larger\n // calculate inverse using gauss-jordan elimination\n // https://en.wikipedia.org/wiki/Gaussian_elimination\n // http://mathworld.wolfram.com/MatrixInverse.html\n // http://math.uww.edu/~mcfarlat/inverse.htm\n\n // make a copy of the matrix (only the arrays, not of the elements)\n var A = mat.concat();\n for (r = 0; r < rows; r++) {\n A[r] = A[r].concat();\n }\n\n // create an identity matrix which in the end will contain the\n // matrix inverse\n var B = identity(rows).valueOf();\n\n // loop over all columns, and perform row reductions\n for (var c = 0; c < cols; c++) {\n // Pivoting: Swap row c with row r, where row r contains the largest element A[r][c]\n var ABig = abs(A[c][c]);\n var rBig = c;\n r = c + 1;\n while (r < rows) {\n if (abs(A[r][c]) > ABig) {\n ABig = abs(A[r][c]);\n rBig = r;\n }\n r++;\n }\n if (ABig === 0) {\n throw Error('Cannot calculate inverse, determinant is zero');\n }\n r = rBig;\n if (r !== c) {\n temp = A[c];\n A[c] = A[r];\n A[r] = temp;\n temp = B[c];\n B[c] = B[r];\n B[r] = temp;\n }\n\n // eliminate non-zero values on the other rows at column c\n var Ac = A[c];\n var Bc = B[c];\n for (r = 0; r < rows; r++) {\n var Ar = A[r];\n var Br = B[r];\n if (r !== c) {\n // eliminate value at column c and row r\n if (Ar[c] !== 0) {\n f = divideScalar(unaryMinus(Ar[c]), Ac[c]);\n\n // add (f * row c) to row r to eliminate the value\n // at column c\n for (s = c; s < cols; s++) {\n Ar[s] = addScalar(Ar[s], multiply(f, Ac[s]));\n }\n for (s = 0; s < cols; s++) {\n Br[s] = addScalar(Br[s], multiply(f, Bc[s]));\n }\n }\n } else {\n // normalize value at Acc to 1,\n // divide each value on row r with the value at Acc\n f = Ac[c];\n for (s = c; s < cols; s++) {\n Ar[s] = divideScalar(Ar[s], f);\n }\n for (s = 0; s < cols; s++) {\n Br[s] = divideScalar(Br[s], f);\n }\n }\n }\n }\n return B;\n }\n }\n});","'use strict';\n\n\nvar zlib_inflate = require('./zlib/inflate');\nvar utils = require('./utils/common');\nvar strings = require('./utils/strings');\nvar c = require('./zlib/constants');\nvar msg = require('./zlib/messages');\nvar ZStream = require('./zlib/zstream');\nvar GZheader = require('./zlib/gzheader');\n\nvar toString = Object.prototype.toString;\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Inflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n if (!(this instanceof Inflate)) return new Inflate(options);\n\n this.options = utils.assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var dictionary = this.options.dictionary;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n\n // Flag to properly process Z_BUF_ERROR on testing inflate call\n // when we check that all output data was flushed.\n var allowBufError = false;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = strings.binstring2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\n if (status === c.Z_NEED_DICT && dictionary) {\n status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);\n }\n\n if (status === c.Z_BUF_ERROR && allowBufError === true) {\n status = c.Z_OK;\n allowBufError = false;\n }\n\n if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n\n // When no more input data, we should check that internal inflate buffers\n // are flushed. The only way to do it when avail_out = 0 - run one more\n // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n // Here we set flag to process this error properly.\n //\n // NOTE. Deflate does not return error in this case and does not needs such\n // logic.\n if (strm.avail_in === 0 && strm.avail_out === 0) {\n allowBufError = true;\n }\n\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);\n\n if (status === c.Z_STREAM_END) {\n _mode = c.Z_FINISH;\n }\n\n // Finalize on the last chunk.\n if (_mode === c.Z_FINISH) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === c.Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === c.Z_SYNC_FLUSH) {\n this.onEnd(c.Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === c.Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 aligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip = inflate;\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","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\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","import { constFalse, constTrue, flow, pipe } from './function';\nvar contramap_ = function (predicate, f) { return pipe(predicate, contramap(f)); };\n/**\n * @since 2.11.0\n */\nexport var contramap = function (f) {\n return function (predicate) {\n return flow(f, predicate);\n };\n};\n/**\n * @category type lambdas\n * @since 2.11.0\n */\nexport var URI = 'Predicate';\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var getSemigroupAny = function () { return ({\n concat: function (first, second) { return pipe(first, or(second)); }\n}); };\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var getMonoidAny = function () { return ({\n concat: getSemigroupAny().concat,\n empty: constFalse\n}); };\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var getSemigroupAll = function () { return ({\n concat: function (first, second) { return pipe(first, and(second)); }\n}); };\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var getMonoidAll = function () { return ({\n concat: getSemigroupAll().concat,\n empty: constTrue\n}); };\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var Contravariant = {\n URI: URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nexport var not = function (predicate) {\n return function (a) {\n return !predicate(a);\n };\n};\n/**\n * @since 2.11.0\n */\nexport var or = function (second) {\n return function (first) {\n return function (a) {\n return first(a) || second(a);\n };\n };\n};\n/**\n * @since 2.11.0\n */\nexport var and = function (second) {\n return function (first) {\n return function (a) {\n return first(a) && second(a);\n };\n };\n};\n","import { isMatrix } from '../../utils/is.js';\nimport { clone } from '../../utils/object.js';\nimport { format } from '../../utils/string.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'det';\nvar dependencies = ['typed', 'matrix', 'subtractScalar', 'multiply', 'divideScalar', 'isZero', 'unaryMinus'];\nexport var createDet = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n subtractScalar,\n multiply,\n divideScalar,\n isZero,\n unaryMinus\n } = _ref;\n /**\n * Calculate the determinant of a matrix.\n *\n * Syntax:\n *\n * math.det(x)\n *\n * Examples:\n *\n * math.det([[1, 2], [3, 4]]) // returns -2\n *\n * const A = [\n * [-2, 2, 3],\n * [-1, 1, 3],\n * [2, 0, -1]\n * ]\n * math.det(A) // returns 6\n *\n * See also:\n *\n * inv\n *\n * @param {Array | Matrix} x A matrix\n * @return {number} The determinant of `x`\n */\n return typed(name, {\n any: function any(x) {\n return clone(x);\n },\n 'Array | Matrix': function det(x) {\n var size;\n if (isMatrix(x)) {\n size = x.size();\n } else if (Array.isArray(x)) {\n x = matrix(x);\n size = x.size();\n } else {\n // a scalar\n size = [];\n }\n switch (size.length) {\n case 0:\n // scalar\n return clone(x);\n case 1:\n // vector\n if (size[0] === 1) {\n return clone(x.valueOf()[0]);\n }\n if (size[0] === 0) {\n return 1; // det of an empty matrix is per definition 1\n } else {\n throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');\n }\n case 2:\n {\n // two-dimensional array\n var rows = size[0];\n var cols = size[1];\n if (rows === cols) {\n return _det(x.clone().valueOf(), rows, cols);\n }\n if (cols === 0) {\n return 1; // det of an empty matrix is per definition 1\n } else {\n throw new RangeError('Matrix must be square ' + '(size: ' + format(size) + ')');\n }\n }\n default:\n // multi dimensional array\n throw new RangeError('Matrix must be two dimensional ' + '(size: ' + format(size) + ')');\n }\n }\n });\n\n /**\n * Calculate the determinant of a matrix\n * @param {Array[]} matrix A square, two dimensional matrix\n * @param {number} rows Number of rows of the matrix (zero-based)\n * @param {number} cols Number of columns of the matrix (zero-based)\n * @returns {number} det\n * @private\n */\n function _det(matrix, rows, cols) {\n if (rows === 1) {\n // this is a 1 x 1 matrix\n return clone(matrix[0][0]);\n } else if (rows === 2) {\n // this is a 2 x 2 matrix\n // the determinant of [a11,a12;a21,a22] is det = a11*a22-a21*a12\n return subtractScalar(multiply(matrix[0][0], matrix[1][1]), multiply(matrix[1][0], matrix[0][1]));\n } else {\n // Bareiss algorithm\n // this algorithm have same complexity as LUP decomposition (O(n^3))\n // but it preserve precision of floating point more relative to the LUP decomposition\n var negated = false;\n var rowIndices = new Array(rows).fill(0).map((_, i) => i); // matrix index of row i\n for (var k = 0; k < rows; k++) {\n var k_ = rowIndices[k];\n if (isZero(matrix[k_][k])) {\n var _k = void 0;\n for (_k = k + 1; _k < rows; _k++) {\n if (!isZero(matrix[rowIndices[_k]][k])) {\n k_ = rowIndices[_k];\n rowIndices[_k] = rowIndices[k];\n rowIndices[k] = k_;\n negated = !negated;\n break;\n }\n }\n if (_k === rows) return matrix[k_][k]; // some zero of the type\n }\n\n var piv = matrix[k_][k];\n var piv_ = k === 0 ? 1 : matrix[rowIndices[k - 1]][k - 1];\n for (var i = k + 1; i < rows; i++) {\n var i_ = rowIndices[i];\n for (var j = k + 1; j < rows; j++) {\n matrix[i_][j] = divideScalar(subtractScalar(multiply(matrix[i_][j], piv), multiply(matrix[i_][k], matrix[k_][j])), piv_);\n }\n }\n }\n var det = matrix[rowIndices[rows - 1]][rows - 1];\n return negated ? unaryMinus(det) : det;\n }\n }\n});","/**\n * Compares two BigNumbers.\n * @param {BigNumber} x First value to compare\n * @param {BigNumber} y Second value to compare\n * @param {number} [epsilon] The maximum relative difference between x and y\n * If epsilon is undefined or null, the function will\n * test whether x and y are exactly equal.\n * @return {boolean} whether the two numbers are nearly equal\n */\nexport function nearlyEqual(x, y, epsilon) {\n // if epsilon is null or undefined, test whether x and y are exactly equal\n if (epsilon === null || epsilon === undefined) {\n return x.eq(y);\n }\n\n // use \"==\" operator, handles infinities\n if (x.eq(y)) {\n return true;\n }\n\n // NaN\n if (x.isNaN() || y.isNaN()) {\n return false;\n }\n\n // at this point x and y should be finite\n if (x.isFinite() && y.isFinite()) {\n // check numbers are very close, needed when comparing numbers near zero\n var diff = x.minus(y).abs();\n if (diff.isZero()) {\n return true;\n } else {\n // use relative error\n var max = x.constructor.max(x.abs(), y.abs());\n return diff.lte(max.times(epsilon));\n }\n }\n\n // Infinite and Number or negative Infinite and positive Infinite cases\n return false;\n}","import { compareText as _compareText } from '../../utils/string.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nvar name = 'compareText';\nvar dependencies = ['typed', 'matrix', 'concat'];\n_compareText.signature = 'any, any';\nexport var createCompareText = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n concat\n } = _ref;\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Compare two strings lexically. Comparison is case sensitive.\n * Returns 1 when x > y, -1 when x < y, and 0 when x == y.\n *\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.compareText(x, y)\n *\n * Examples:\n *\n * math.compareText('B', 'A') // returns 1\n * math.compareText('2', '10') // returns 1\n * math.compare('2', '10') // returns -1\n * math.compareNatural('2', '10') // returns -1\n *\n * math.compareText('B', ['A', 'B', 'C']) // returns [1, 0, -1]\n *\n * See also:\n *\n * equal, equalText, compare, compareNatural\n *\n * @param {string | Array | DenseMatrix} x First string to compare\n * @param {string | Array | DenseMatrix} y Second string to compare\n * @return {number | Array | DenseMatrix} Returns the result of the comparison:\n * 1 when x > y, -1 when x < y, and 0 when x == y.\n */\n return typed(name, _compareText, matrixAlgorithmSuite({\n elop: _compareText,\n Ds: true\n }));\n});\nexport var createCompareTextNumber = /* #__PURE__ */factory(name, ['typed'], _ref2 => {\n var {\n typed\n } = _ref2;\n return typed(name, _compareText);\n});","import naturalSort from 'javascript-natural-sort';\nimport { isDenseMatrix, isSparseMatrix, typeOf } from '../../utils/is.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'compareNatural';\nvar dependencies = ['typed', 'compare'];\nexport var createCompareNatural = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n compare\n } = _ref;\n var compareBooleans = compare.signatures['boolean,boolean'];\n\n /**\n * Compare two values of any type in a deterministic, natural way.\n *\n * For numeric values, the function works the same as `math.compare`.\n * For types of values that can't be compared mathematically,\n * the function compares in a natural way.\n *\n * For numeric values, x and y are considered equal when the relative\n * difference between x and y is smaller than the configured epsilon.\n * The function cannot be used to compare values smaller than\n * approximately 2.22e-16.\n *\n * For Complex numbers, first the real parts are compared. If equal,\n * the imaginary parts are compared.\n *\n * Strings are compared with a natural sorting algorithm, which\n * orders strings in a \"logic\" way following some heuristics.\n * This differs from the function `compare`, which converts the string\n * into a numeric value and compares that. The function `compareText`\n * on the other hand compares text lexically.\n *\n * Arrays and Matrices are compared value by value until there is an\n * unequal pair of values encountered. Objects are compared by sorted\n * keys until the keys or their values are unequal.\n *\n * Syntax:\n *\n * math.compareNatural(x, y)\n *\n * Examples:\n *\n * math.compareNatural(6, 1) // returns 1\n * math.compareNatural(2, 3) // returns -1\n * math.compareNatural(7, 7) // returns 0\n *\n * math.compareNatural('10', '2') // returns 1\n * math.compareText('10', '2') // returns -1\n * math.compare('10', '2') // returns 1\n *\n * math.compareNatural('Answer: 10', 'Answer: 2') // returns 1\n * math.compareText('Answer: 10', 'Answer: 2') // returns -1\n * math.compare('Answer: 10', 'Answer: 2')\n * // Error: Cannot convert \"Answer: 10\" to a number\n *\n * const a = math.unit('5 cm')\n * const b = math.unit('40 mm')\n * math.compareNatural(a, b) // returns 1\n *\n * const c = math.complex('2 + 3i')\n * const d = math.complex('2 + 4i')\n * math.compareNatural(c, d) // returns -1\n *\n * math.compareNatural([1, 2, 4], [1, 2, 3]) // returns 1\n * math.compareNatural([1, 2, 3], [1, 2]) // returns 1\n * math.compareNatural([1, 5], [1, 2, 3]) // returns 1\n * math.compareNatural([1, 2], [1, 2]) // returns 0\n *\n * math.compareNatural({a: 2}, {a: 4}) // returns -1\n *\n * See also:\n *\n * compare, compareText\n *\n * @param {*} x First value to compare\n * @param {*} y Second value to compare\n * @return {number} Returns the result of the comparison:\n * 1 when x > y, -1 when x < y, and 0 when x == y.\n */\n return typed(name, {\n 'any, any': _compareNatural\n }); // just to check # args\n\n function _compareNatural(x, y) {\n var typeX = typeOf(x);\n var typeY = typeOf(y);\n var c;\n\n // numeric types\n if ((typeX === 'number' || typeX === 'BigNumber' || typeX === 'Fraction') && (typeY === 'number' || typeY === 'BigNumber' || typeY === 'Fraction')) {\n c = compare(x, y);\n if (c.toString() !== '0') {\n // c can be number, BigNumber, or Fraction\n return c > 0 ? 1 : -1; // return a number\n } else {\n return naturalSort(typeX, typeY);\n }\n }\n\n // matrix types\n var matTypes = ['Array', 'DenseMatrix', 'SparseMatrix'];\n if (matTypes.includes(typeX) || matTypes.includes(typeY)) {\n c = compareMatricesAndArrays(_compareNatural, x, y);\n if (c !== 0) {\n return c;\n } else {\n return naturalSort(typeX, typeY);\n }\n }\n\n // in case of different types, order by name of type, i.e. 'BigNumber' < 'Complex'\n if (typeX !== typeY) {\n return naturalSort(typeX, typeY);\n }\n if (typeX === 'Complex') {\n return compareComplexNumbers(x, y);\n }\n if (typeX === 'Unit') {\n if (x.equalBase(y)) {\n return _compareNatural(x.value, y.value);\n }\n\n // compare by units\n return compareArrays(_compareNatural, x.formatUnits(), y.formatUnits());\n }\n if (typeX === 'boolean') {\n return compareBooleans(x, y);\n }\n if (typeX === 'string') {\n return naturalSort(x, y);\n }\n if (typeX === 'Object') {\n return compareObjects(_compareNatural, x, y);\n }\n if (typeX === 'null') {\n return 0;\n }\n if (typeX === 'undefined') {\n return 0;\n }\n\n // this should not occur...\n throw new TypeError('Unsupported type of value \"' + typeX + '\"');\n }\n\n /**\n * Compare mixed matrix/array types, by converting to same-shaped array.\n * This comparator is non-deterministic regarding input types.\n * @param {Array | SparseMatrix | DenseMatrix | *} x\n * @param {Array | SparseMatrix | DenseMatrix | *} y\n * @returns {number} Returns the comparison result: -1, 0, or 1\n */\n function compareMatricesAndArrays(compareNatural, x, y) {\n if (isSparseMatrix(x) && isSparseMatrix(y)) {\n return compareArrays(compareNatural, x.toJSON().values, y.toJSON().values);\n }\n if (isSparseMatrix(x)) {\n // note: convert to array is expensive\n return compareMatricesAndArrays(compareNatural, x.toArray(), y);\n }\n if (isSparseMatrix(y)) {\n // note: convert to array is expensive\n return compareMatricesAndArrays(compareNatural, x, y.toArray());\n }\n\n // convert DenseArray into Array\n if (isDenseMatrix(x)) {\n return compareMatricesAndArrays(compareNatural, x.toJSON().data, y);\n }\n if (isDenseMatrix(y)) {\n return compareMatricesAndArrays(compareNatural, x, y.toJSON().data);\n }\n\n // convert scalars to array\n if (!Array.isArray(x)) {\n return compareMatricesAndArrays(compareNatural, [x], y);\n }\n if (!Array.isArray(y)) {\n return compareMatricesAndArrays(compareNatural, x, [y]);\n }\n return compareArrays(compareNatural, x, y);\n }\n\n /**\n * Compare two Arrays\n *\n * - First, compares value by value\n * - Next, if all corresponding values are equal,\n * look at the length: longest array will be considered largest\n *\n * @param {Array} x\n * @param {Array} y\n * @returns {number} Returns the comparison result: -1, 0, or 1\n */\n function compareArrays(compareNatural, x, y) {\n // compare each value\n for (var i = 0, ii = Math.min(x.length, y.length); i < ii; i++) {\n var v = compareNatural(x[i], y[i]);\n if (v !== 0) {\n return v;\n }\n }\n\n // compare the size of the arrays\n if (x.length > y.length) {\n return 1;\n }\n if (x.length < y.length) {\n return -1;\n }\n\n // both Arrays have equal size and content\n return 0;\n }\n\n /**\n * Compare two objects\n *\n * - First, compare sorted property names\n * - Next, compare the property values\n *\n * @param {Object} x\n * @param {Object} y\n * @returns {number} Returns the comparison result: -1, 0, or 1\n */\n function compareObjects(compareNatural, x, y) {\n var keysX = Object.keys(x);\n var keysY = Object.keys(y);\n\n // compare keys\n keysX.sort(naturalSort);\n keysY.sort(naturalSort);\n var c = compareArrays(compareNatural, keysX, keysY);\n if (c !== 0) {\n return c;\n }\n\n // compare values\n for (var i = 0; i < keysX.length; i++) {\n var v = compareNatural(x[keysX[i]], y[keysY[i]]);\n if (v !== 0) {\n return v;\n }\n }\n return 0;\n }\n});\n\n/**\n * Compare two complex numbers, `x` and `y`:\n *\n * - First, compare the real values of `x` and `y`\n * - If equal, compare the imaginary values of `x` and `y`\n *\n * @params {Complex} x\n * @params {Complex} y\n * @returns {number} Returns the comparison result: -1, 0, or 1\n */\nfunction compareComplexNumbers(x, y) {\n if (x.re > y.re) {\n return 1;\n }\n if (x.re < y.re) {\n return -1;\n }\n if (x.im > y.im) {\n return 1;\n }\n if (x.im < y.im) {\n return -1;\n }\n return 0;\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 passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","/**\n * THIS FILE IS AUTO-GENERATED\n * DON'T MAKE CHANGES HERE\n */\nimport { config } from './configReadonly.js';\nimport { createBigNumberClass, createComplexClass, createE, createFalse, createFineStructure, createFractionClass, createI, createInfinity, createLN10, createLOG10E, createMatrixClass, createNaN, createNull, createPhi, createRangeClass, createResultSet, createSQRT1_2,\n// eslint-disable-line camelcase\ncreateSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createSubtractScalar, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCosh, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCoth, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMode, createNumeric, createProd, createReshape, createSize, createSqueeze, createTranspose, createXgcd, createZeros, createAsin, createCbrt, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFlatten, createHasNumericValue, createIdentity, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createNthRoot, createOnes, createQr, createResize, createRightArithShift, createRound, createSmaller, createSubtract, createTo, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitAnd, createBitXor, createCatalan, createCompare, createCompareText, createCumSum, createDeepEqual, createDiff, createDistance, createDot, createEqualText, createFloor, createGcd, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMin, createMod, createMultiply, createNthRoots, createOr, createPartitionSelect, createRightLogShift, createSlu, createSubset, createSum, createTrace, createUsolveAll, createZpk2tf, createBitOr, createCeil, createCompareNatural, createComposition, createCross, createDet, createDotMultiply, createFibonacciHeapClass, createFix, createIndex, createIntersect, createInvmod, createLcm, createLog1p, createMax, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSmallerEq, createSort, createAnd, createRange, createRow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createColumn, createInv, createLup, createPinv, createPow, createSetIntersect, createSetUnion, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCreateUnit, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createInverseConductanceQuantum, createLusolve, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetSize, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createGasConstant, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createVariance, createClassicalElectronRadius, createMedian, createCorr, createFreqz, createMad, createStd, createZeta, createNorm, createRotationMatrix, createKldivergence, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';\nexport var BigNumber = /* #__PURE__ */createBigNumberClass({\n config\n});\nexport var Complex = /* #__PURE__ */createComplexClass({});\nexport var e = /* #__PURE__ */createE({\n BigNumber,\n config\n});\nexport var _false = /* #__PURE__ */createFalse({});\nexport var fineStructure = /* #__PURE__ */createFineStructure({\n BigNumber,\n config\n});\nexport var Fraction = /* #__PURE__ */createFractionClass({});\nexport var i = /* #__PURE__ */createI({\n Complex\n});\nexport var _Infinity = /* #__PURE__ */createInfinity({\n BigNumber,\n config\n});\nexport var LN10 = /* #__PURE__ */createLN10({\n BigNumber,\n config\n});\nexport var LOG10E = /* #__PURE__ */createLOG10E({\n BigNumber,\n config\n});\nexport var Matrix = /* #__PURE__ */createMatrixClass({});\nexport var _NaN = /* #__PURE__ */createNaN({\n BigNumber,\n config\n});\nexport var _null = /* #__PURE__ */createNull({});\nexport var phi = /* #__PURE__ */createPhi({\n BigNumber,\n config\n});\nexport var Range = /* #__PURE__ */createRangeClass({});\nexport var ResultSet = /* #__PURE__ */createResultSet({});\nexport var SQRT1_2 = /* #__PURE__ */createSQRT1_2({\n BigNumber,\n config\n});\nexport var sackurTetrode = /* #__PURE__ */createSackurTetrode({\n BigNumber,\n config\n});\nexport var tau = /* #__PURE__ */createTau({\n BigNumber,\n config\n});\nexport var _true = /* #__PURE__ */createTrue({});\nexport var version = /* #__PURE__ */createVersion({});\nexport var DenseMatrix = /* #__PURE__ */createDenseMatrixClass({\n Matrix\n});\nexport var efimovFactor = /* #__PURE__ */createEfimovFactor({\n BigNumber,\n config\n});\nexport var LN2 = /* #__PURE__ */createLN2({\n BigNumber,\n config\n});\nexport var pi = /* #__PURE__ */createPi({\n BigNumber,\n config\n});\nexport var replacer = /* #__PURE__ */createReplacer({});\nexport var SQRT2 = /* #__PURE__ */createSQRT2({\n BigNumber,\n config\n});\nexport var typed = /* #__PURE__ */createTyped({\n BigNumber,\n Complex,\n DenseMatrix,\n Fraction\n});\nexport var unaryPlus = /* #__PURE__ */createUnaryPlus({\n BigNumber,\n config,\n typed\n});\nexport var weakMixingAngle = /* #__PURE__ */createWeakMixingAngle({\n BigNumber,\n config\n});\nexport var abs = /* #__PURE__ */createAbs({\n typed\n});\nexport var acos = /* #__PURE__ */createAcos({\n Complex,\n config,\n typed\n});\nexport var acot = /* #__PURE__ */createAcot({\n BigNumber,\n typed\n});\nexport var acsc = /* #__PURE__ */createAcsc({\n BigNumber,\n Complex,\n config,\n typed\n});\nexport var addScalar = /* #__PURE__ */createAddScalar({\n typed\n});\nexport var arg = /* #__PURE__ */createArg({\n typed\n});\nexport var asech = /* #__PURE__ */createAsech({\n BigNumber,\n Complex,\n config,\n typed\n});\nexport var asinh = /* #__PURE__ */createAsinh({\n typed\n});\nexport var atan = /* #__PURE__ */createAtan({\n typed\n});\nexport var atanh = /* #__PURE__ */createAtanh({\n Complex,\n config,\n typed\n});\nexport var bignumber = /* #__PURE__ */createBignumber({\n BigNumber,\n typed\n});\nexport var bitNot = /* #__PURE__ */createBitNot({\n typed\n});\nexport var boolean = /* #__PURE__ */createBoolean({\n typed\n});\nexport var clone = /* #__PURE__ */createClone({\n typed\n});\nexport var combinations = /* #__PURE__ */createCombinations({\n typed\n});\nexport var complex = /* #__PURE__ */createComplex({\n Complex,\n typed\n});\nexport var conj = /* #__PURE__ */createConj({\n typed\n});\nexport var cos = /* #__PURE__ */createCos({\n typed\n});\nexport var cot = /* #__PURE__ */createCot({\n BigNumber,\n typed\n});\nexport var csc = /* #__PURE__ */createCsc({\n BigNumber,\n typed\n});\nexport var cube = /* #__PURE__ */createCube({\n typed\n});\nexport var equalScalar = /* #__PURE__ */createEqualScalar({\n config,\n typed\n});\nexport var erf = /* #__PURE__ */createErf({\n typed\n});\nexport var exp = /* #__PURE__ */createExp({\n typed\n});\nexport var expm1 = /* #__PURE__ */createExpm1({\n Complex,\n typed\n});\nexport var filter = /* #__PURE__ */createFilter({\n typed\n});\nexport var forEach = /* #__PURE__ */createForEach({\n typed\n});\nexport var format = /* #__PURE__ */createFormat({\n typed\n});\nexport var getMatrixDataType = /* #__PURE__ */createGetMatrixDataType({\n typed\n});\nexport var hex = /* #__PURE__ */createHex({\n format,\n typed\n});\nexport var im = /* #__PURE__ */createIm({\n typed\n});\nexport var isInteger = /* #__PURE__ */createIsInteger({\n typed\n});\nexport var isNegative = /* #__PURE__ */createIsNegative({\n typed\n});\nexport var isPositive = /* #__PURE__ */createIsPositive({\n typed\n});\nexport var isZero = /* #__PURE__ */createIsZero({\n typed\n});\nexport var LOG2E = /* #__PURE__ */createLOG2E({\n BigNumber,\n config\n});\nexport var lgamma = /* #__PURE__ */createLgamma({\n Complex,\n typed\n});\nexport var log10 = /* #__PURE__ */createLog10({\n Complex,\n config,\n typed\n});\nexport var log2 = /* #__PURE__ */createLog2({\n Complex,\n config,\n typed\n});\nexport var map = /* #__PURE__ */createMap({\n typed\n});\nexport var multiplyScalar = /* #__PURE__ */createMultiplyScalar({\n typed\n});\nexport var not = /* #__PURE__ */createNot({\n typed\n});\nexport var number = /* #__PURE__ */createNumber({\n typed\n});\nexport var oct = /* #__PURE__ */createOct({\n format,\n typed\n});\nexport var pickRandom = /* #__PURE__ */createPickRandom({\n config,\n typed\n});\nexport var print = /* #__PURE__ */createPrint({\n typed\n});\nexport var random = /* #__PURE__ */createRandom({\n config,\n typed\n});\nexport var re = /* #__PURE__ */createRe({\n typed\n});\nexport var sec = /* #__PURE__ */createSec({\n BigNumber,\n typed\n});\nexport var sign = /* #__PURE__ */createSign({\n BigNumber,\n Fraction,\n complex,\n typed\n});\nexport var sin = /* #__PURE__ */createSin({\n typed\n});\nexport var SparseMatrix = /* #__PURE__ */createSparseMatrixClass({\n Matrix,\n equalScalar,\n typed\n});\nexport var splitUnit = /* #__PURE__ */createSplitUnit({\n typed\n});\nexport var square = /* #__PURE__ */createSquare({\n typed\n});\nexport var string = /* #__PURE__ */createString({\n typed\n});\nexport var subtractScalar = /* #__PURE__ */createSubtractScalar({\n typed\n});\nexport var tan = /* #__PURE__ */createTan({\n typed\n});\nexport var typeOf = /* #__PURE__ */createTypeOf({\n typed\n});\nexport var acosh = /* #__PURE__ */createAcosh({\n Complex,\n config,\n typed\n});\nexport var acsch = /* #__PURE__ */createAcsch({\n BigNumber,\n typed\n});\nexport var apply = /* #__PURE__ */createApply({\n isInteger,\n typed\n});\nexport var asec = /* #__PURE__ */createAsec({\n BigNumber,\n Complex,\n config,\n typed\n});\nexport var bin = /* #__PURE__ */createBin({\n format,\n typed\n});\nexport var combinationsWithRep = /* #__PURE__ */createCombinationsWithRep({\n typed\n});\nexport var cosh = /* #__PURE__ */createCosh({\n typed\n});\nexport var csch = /* #__PURE__ */createCsch({\n BigNumber,\n typed\n});\nexport var isNaN = /* #__PURE__ */createIsNaN({\n typed\n});\nexport var isPrime = /* #__PURE__ */createIsPrime({\n typed\n});\nexport var randomInt = /* #__PURE__ */createRandomInt({\n config,\n typed\n});\nexport var sech = /* #__PURE__ */createSech({\n BigNumber,\n typed\n});\nexport var sinh = /* #__PURE__ */createSinh({\n typed\n});\nexport var sparse = /* #__PURE__ */createSparse({\n SparseMatrix,\n typed\n});\nexport var sqrt = /* #__PURE__ */createSqrt({\n Complex,\n config,\n typed\n});\nexport var tanh = /* #__PURE__ */createTanh({\n typed\n});\nexport var unaryMinus = /* #__PURE__ */createUnaryMinus({\n typed\n});\nexport var acoth = /* #__PURE__ */createAcoth({\n BigNumber,\n Complex,\n config,\n typed\n});\nexport var coth = /* #__PURE__ */createCoth({\n BigNumber,\n typed\n});\nexport var fraction = /* #__PURE__ */createFraction({\n Fraction,\n typed\n});\nexport var isNumeric = /* #__PURE__ */createIsNumeric({\n typed\n});\nexport var matrix = /* #__PURE__ */createMatrix({\n DenseMatrix,\n Matrix,\n SparseMatrix,\n typed\n});\nexport var matrixFromFunction = /* #__PURE__ */createMatrixFromFunction({\n isZero,\n matrix,\n typed\n});\nexport var mode = /* #__PURE__ */createMode({\n isNaN,\n isNumeric,\n typed\n});\nexport var numeric = /* #__PURE__ */createNumeric({\n bignumber,\n fraction,\n number\n});\nexport var prod = /* #__PURE__ */createProd({\n config,\n multiplyScalar,\n numeric,\n typed\n});\nexport var reshape = /* #__PURE__ */createReshape({\n isInteger,\n matrix,\n typed\n});\nexport var size = /* #__PURE__ */createSize({\n matrix,\n config,\n typed\n});\nexport var squeeze = /* #__PURE__ */createSqueeze({\n matrix,\n typed\n});\nexport var transpose = /* #__PURE__ */createTranspose({\n matrix,\n typed\n});\nexport var xgcd = /* #__PURE__ */createXgcd({\n BigNumber,\n config,\n matrix,\n typed\n});\nexport var zeros = /* #__PURE__ */createZeros({\n BigNumber,\n config,\n matrix,\n typed\n});\nexport var asin = /* #__PURE__ */createAsin({\n Complex,\n config,\n typed\n});\nexport var cbrt = /* #__PURE__ */createCbrt({\n BigNumber,\n Complex,\n Fraction,\n config,\n isNegative,\n matrix,\n typed,\n unaryMinus\n});\nexport var concat = /* #__PURE__ */createConcat({\n isInteger,\n matrix,\n typed\n});\nexport var count = /* #__PURE__ */createCount({\n prod,\n size,\n typed\n});\nexport var ctranspose = /* #__PURE__ */createCtranspose({\n conj,\n transpose,\n typed\n});\nexport var diag = /* #__PURE__ */createDiag({\n DenseMatrix,\n SparseMatrix,\n matrix,\n typed\n});\nexport var divideScalar = /* #__PURE__ */createDivideScalar({\n numeric,\n typed\n});\nexport var dotDivide = /* #__PURE__ */createDotDivide({\n DenseMatrix,\n concat,\n divideScalar,\n equalScalar,\n matrix,\n typed\n});\nexport var equal = /* #__PURE__ */createEqual({\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n typed\n});\nexport var flatten = /* #__PURE__ */createFlatten({\n matrix,\n typed\n});\nexport var hasNumericValue = /* #__PURE__ */createHasNumericValue({\n isNumeric,\n typed\n});\nexport var identity = /* #__PURE__ */createIdentity({\n BigNumber,\n DenseMatrix,\n SparseMatrix,\n config,\n matrix,\n typed\n});\nexport var kron = /* #__PURE__ */createKron({\n matrix,\n multiplyScalar,\n typed\n});\nexport var largerEq = /* #__PURE__ */createLargerEq({\n DenseMatrix,\n concat,\n config,\n matrix,\n typed\n});\nexport var leftShift = /* #__PURE__ */createLeftShift({\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n typed,\n zeros\n});\nexport var lsolve = /* #__PURE__ */createLsolve({\n DenseMatrix,\n divideScalar,\n equalScalar,\n matrix,\n multiplyScalar,\n subtractScalar,\n typed\n});\nexport var matrixFromColumns = /* #__PURE__ */createMatrixFromColumns({\n flatten,\n matrix,\n size,\n typed\n});\nexport var nthRoot = /* #__PURE__ */createNthRoot({\n BigNumber,\n concat,\n equalScalar,\n matrix,\n typed\n});\nexport var ones = /* #__PURE__ */createOnes({\n BigNumber,\n config,\n matrix,\n typed\n});\nexport var qr = /* #__PURE__ */createQr({\n addScalar,\n complex,\n conj,\n divideScalar,\n equal,\n identity,\n isZero,\n matrix,\n multiplyScalar,\n sign,\n sqrt,\n subtractScalar,\n typed,\n unaryMinus,\n zeros\n});\nexport var resize = /* #__PURE__ */createResize({\n config,\n matrix\n});\nexport var rightArithShift = /* #__PURE__ */createRightArithShift({\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n typed,\n zeros\n});\nexport var round = /* #__PURE__ */createRound({\n BigNumber,\n DenseMatrix,\n equalScalar,\n matrix,\n typed,\n zeros\n});\nexport var smaller = /* #__PURE__ */createSmaller({\n DenseMatrix,\n concat,\n config,\n matrix,\n typed\n});\nexport var subtract = /* #__PURE__ */createSubtract({\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n subtractScalar,\n typed,\n unaryMinus\n});\nexport var to = /* #__PURE__ */createTo({\n concat,\n matrix,\n typed\n});\nexport var unequal = /* #__PURE__ */createUnequal({\n DenseMatrix,\n concat,\n config,\n equalScalar,\n matrix,\n typed\n});\nexport var usolve = /* #__PURE__ */createUsolve({\n DenseMatrix,\n divideScalar,\n equalScalar,\n matrix,\n multiplyScalar,\n subtractScalar,\n typed\n});\nexport var xor = /* #__PURE__ */createXor({\n DenseMatrix,\n concat,\n matrix,\n typed\n});\nexport var add = /* #__PURE__ */createAdd({\n DenseMatrix,\n SparseMatrix,\n addScalar,\n concat,\n equalScalar,\n matrix,\n typed\n});\nexport var atan2 = /* #__PURE__ */createAtan2({\n BigNumber,\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n typed\n});\nexport var bitAnd = /* #__PURE__ */createBitAnd({\n concat,\n equalScalar,\n matrix,\n typed\n});\nexport var bitXor = /* #__PURE__ */createBitXor({\n DenseMatrix,\n concat,\n matrix,\n typed\n});\nexport var catalan = /* #__PURE__ */createCatalan({\n addScalar,\n combinations,\n divideScalar,\n isInteger,\n isNegative,\n multiplyScalar,\n typed\n});\nexport var compare = /* #__PURE__ */createCompare({\n BigNumber,\n DenseMatrix,\n Fraction,\n concat,\n config,\n equalScalar,\n matrix,\n typed\n});\nexport var compareText = /* #__PURE__ */createCompareText({\n concat,\n matrix,\n typed\n});\nexport var cumsum = /* #__PURE__ */createCumSum({\n add,\n typed,\n unaryPlus\n});\nexport var deepEqual = /* #__PURE__ */createDeepEqual({\n equal,\n typed\n});\nexport var diff = /* #__PURE__ */createDiff({\n matrix,\n number,\n subtract,\n typed\n});\nexport var distance = /* #__PURE__ */createDistance({\n abs,\n addScalar,\n deepEqual,\n divideScalar,\n multiplyScalar,\n sqrt,\n subtractScalar,\n typed\n});\nexport var dot = /* #__PURE__ */createDot({\n addScalar,\n conj,\n multiplyScalar,\n size,\n typed\n});\nexport var equalText = /* #__PURE__ */createEqualText({\n compareText,\n isZero,\n typed\n});\nexport var floor = /* #__PURE__ */createFloor({\n DenseMatrix,\n config,\n equalScalar,\n matrix,\n round,\n typed,\n zeros\n});\nexport var gcd = /* #__PURE__ */createGcd({\n BigNumber,\n DenseMatrix,\n concat,\n config,\n equalScalar,\n matrix,\n round,\n typed,\n zeros\n});\nexport var hypot = /* #__PURE__ */createHypot({\n abs,\n addScalar,\n divideScalar,\n isPositive,\n multiplyScalar,\n smaller,\n sqrt,\n typed\n});\nexport var ImmutableDenseMatrix = /* #__PURE__ */createImmutableDenseMatrixClass({\n DenseMatrix,\n smaller\n});\nexport var Index = /* #__PURE__ */createIndexClass({\n ImmutableDenseMatrix,\n getMatrixDataType\n});\nexport var larger = /* #__PURE__ */createLarger({\n DenseMatrix,\n concat,\n config,\n matrix,\n typed\n});\nexport var log = /* #__PURE__ */createLog({\n Complex,\n config,\n divideScalar,\n typed\n});\nexport var lsolveAll = /* #__PURE__ */createLsolveAll({\n DenseMatrix,\n divideScalar,\n equalScalar,\n matrix,\n multiplyScalar,\n subtractScalar,\n typed\n});\nexport var matrixFromRows = /* #__PURE__ */createMatrixFromRows({\n flatten,\n matrix,\n size,\n typed\n});\nexport var min = /* #__PURE__ */createMin({\n config,\n numeric,\n smaller,\n typed\n});\nexport var mod = /* #__PURE__ */createMod({\n DenseMatrix,\n concat,\n config,\n equalScalar,\n matrix,\n round,\n typed,\n zeros\n});\nexport var multiply = /* #__PURE__ */createMultiply({\n addScalar,\n dot,\n equalScalar,\n matrix,\n multiplyScalar,\n typed\n});\nexport var nthRoots = /* #__PURE__ */createNthRoots({\n Complex,\n config,\n divideScalar,\n typed\n});\nexport var or = /* #__PURE__ */createOr({\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n typed\n});\nexport var partitionSelect = /* #__PURE__ */createPartitionSelect({\n compare,\n isNaN,\n isNumeric,\n typed\n});\nexport var rightLogShift = /* #__PURE__ */createRightLogShift({\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n typed,\n zeros\n});\nexport var slu = /* #__PURE__ */createSlu({\n SparseMatrix,\n abs,\n add,\n divideScalar,\n larger,\n largerEq,\n multiply,\n subtract,\n transpose,\n typed\n});\nexport var subset = /* #__PURE__ */createSubset({\n add,\n matrix,\n typed,\n zeros\n});\nexport var sum = /* #__PURE__ */createSum({\n add,\n config,\n numeric,\n typed\n});\nexport var trace = /* #__PURE__ */createTrace({\n add,\n matrix,\n typed\n});\nexport var usolveAll = /* #__PURE__ */createUsolveAll({\n DenseMatrix,\n divideScalar,\n equalScalar,\n matrix,\n multiplyScalar,\n subtractScalar,\n typed\n});\nexport var zpk2tf = /* #__PURE__ */createZpk2tf({\n Complex,\n add,\n multiply,\n number,\n typed\n});\nexport var bitOr = /* #__PURE__ */createBitOr({\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n typed\n});\nexport var ceil = /* #__PURE__ */createCeil({\n DenseMatrix,\n config,\n equalScalar,\n matrix,\n round,\n typed,\n zeros\n});\nexport var compareNatural = /* #__PURE__ */createCompareNatural({\n compare,\n typed\n});\nexport var composition = /* #__PURE__ */createComposition({\n addScalar,\n combinations,\n isInteger,\n isNegative,\n isPositive,\n larger,\n typed\n});\nexport var cross = /* #__PURE__ */createCross({\n matrix,\n multiply,\n subtract,\n typed\n});\nexport var det = /* #__PURE__ */createDet({\n divideScalar,\n isZero,\n matrix,\n multiply,\n subtractScalar,\n typed,\n unaryMinus\n});\nexport var dotMultiply = /* #__PURE__ */createDotMultiply({\n concat,\n equalScalar,\n matrix,\n multiplyScalar,\n typed\n});\nexport var FibonacciHeap = /* #__PURE__ */createFibonacciHeapClass({\n larger,\n smaller\n});\nexport var fix = /* #__PURE__ */createFix({\n Complex,\n DenseMatrix,\n ceil,\n equalScalar,\n floor,\n matrix,\n typed,\n zeros\n});\nexport var index = /* #__PURE__ */createIndex({\n Index,\n typed\n});\nexport var intersect = /* #__PURE__ */createIntersect({\n abs,\n add,\n addScalar,\n config,\n divideScalar,\n equalScalar,\n flatten,\n isNumeric,\n isZero,\n matrix,\n multiply,\n multiplyScalar,\n smaller,\n subtract,\n typed\n});\nexport var invmod = /* #__PURE__ */createInvmod({\n BigNumber,\n add,\n config,\n equal,\n isInteger,\n mod,\n smaller,\n typed,\n xgcd\n});\nexport var lcm = /* #__PURE__ */createLcm({\n concat,\n equalScalar,\n matrix,\n typed\n});\nexport var log1p = /* #__PURE__ */createLog1p({\n Complex,\n config,\n divideScalar,\n log,\n typed\n});\nexport var max = /* #__PURE__ */createMax({\n config,\n larger,\n numeric,\n typed\n});\nexport var setCartesian = /* #__PURE__ */createSetCartesian({\n DenseMatrix,\n Index,\n compareNatural,\n size,\n subset,\n typed\n});\nexport var setDistinct = /* #__PURE__ */createSetDistinct({\n DenseMatrix,\n Index,\n compareNatural,\n size,\n subset,\n typed\n});\nexport var setIsSubset = /* #__PURE__ */createSetIsSubset({\n Index,\n compareNatural,\n size,\n subset,\n typed\n});\nexport var setPowerset = /* #__PURE__ */createSetPowerset({\n Index,\n compareNatural,\n size,\n subset,\n typed\n});\nexport var smallerEq = /* #__PURE__ */createSmallerEq({\n DenseMatrix,\n concat,\n config,\n matrix,\n typed\n});\nexport var sort = /* #__PURE__ */createSort({\n compare,\n compareNatural,\n matrix,\n typed\n});\nexport var and = /* #__PURE__ */createAnd({\n concat,\n equalScalar,\n matrix,\n not,\n typed,\n zeros\n});\nexport var range = /* #__PURE__ */createRange({\n bignumber,\n matrix,\n add,\n config,\n isPositive,\n larger,\n largerEq,\n smaller,\n smallerEq,\n typed\n});\nexport var row = /* #__PURE__ */createRow({\n Index,\n matrix,\n range,\n typed\n});\nexport var setDifference = /* #__PURE__ */createSetDifference({\n DenseMatrix,\n Index,\n compareNatural,\n size,\n subset,\n typed\n});\nexport var setMultiplicity = /* #__PURE__ */createSetMultiplicity({\n Index,\n compareNatural,\n size,\n subset,\n typed\n});\nexport var setSymDifference = /* #__PURE__ */createSetSymDifference({\n Index,\n concat,\n setDifference,\n size,\n subset,\n typed\n});\nexport var Spa = /* #__PURE__ */createSpaClass({\n FibonacciHeap,\n addScalar,\n equalScalar\n});\nexport var column = /* #__PURE__ */createColumn({\n Index,\n matrix,\n range,\n typed\n});\nexport var inv = /* #__PURE__ */createInv({\n abs,\n addScalar,\n det,\n divideScalar,\n identity,\n matrix,\n multiply,\n typed,\n unaryMinus\n});\nexport var lup = /* #__PURE__ */createLup({\n DenseMatrix,\n Spa,\n SparseMatrix,\n abs,\n addScalar,\n divideScalar,\n equalScalar,\n larger,\n matrix,\n multiplyScalar,\n subtractScalar,\n typed,\n unaryMinus\n});\nexport var pinv = /* #__PURE__ */createPinv({\n Complex,\n add,\n ctranspose,\n deepEqual,\n divideScalar,\n dot,\n dotDivide,\n equal,\n inv,\n matrix,\n multiply,\n typed\n});\nexport var pow = /* #__PURE__ */createPow({\n Complex,\n config,\n fraction,\n identity,\n inv,\n matrix,\n multiply,\n number,\n typed\n});\nexport var setIntersect = /* #__PURE__ */createSetIntersect({\n DenseMatrix,\n Index,\n compareNatural,\n size,\n subset,\n typed\n});\nexport var setUnion = /* #__PURE__ */createSetUnion({\n Index,\n concat,\n setIntersect,\n setSymDifference,\n size,\n subset,\n typed\n});\nexport var sqrtm = /* #__PURE__ */createSqrtm({\n abs,\n add,\n identity,\n inv,\n map,\n max,\n multiply,\n size,\n sqrt,\n subtract,\n typed\n});\nexport var Unit = /* #__PURE__ */createUnitClass({\n BigNumber,\n Complex,\n Fraction,\n abs,\n addScalar,\n config,\n divideScalar,\n equal,\n fix,\n format,\n isNumeric,\n multiplyScalar,\n number,\n pow,\n round,\n subtractScalar\n});\nexport var vacuumImpedance = /* #__PURE__ */createVacuumImpedance({\n BigNumber,\n Unit,\n config\n});\nexport var wienDisplacement = /* #__PURE__ */createWienDisplacement({\n BigNumber,\n Unit,\n config\n});\nexport var atomicMass = /* #__PURE__ */createAtomicMass({\n BigNumber,\n Unit,\n config\n});\nexport var bohrMagneton = /* #__PURE__ */createBohrMagneton({\n BigNumber,\n Unit,\n config\n});\nexport var boltzmann = /* #__PURE__ */createBoltzmann({\n BigNumber,\n Unit,\n config\n});\nexport var conductanceQuantum = /* #__PURE__ */createConductanceQuantum({\n BigNumber,\n Unit,\n config\n});\nexport var coulomb = /* #__PURE__ */createCoulomb({\n BigNumber,\n Unit,\n config\n});\nexport var deuteronMass = /* #__PURE__ */createDeuteronMass({\n BigNumber,\n Unit,\n config\n});\nexport var dotPow = /* #__PURE__ */createDotPow({\n DenseMatrix,\n concat,\n equalScalar,\n matrix,\n pow,\n typed\n});\nexport var electricConstant = /* #__PURE__ */createElectricConstant({\n BigNumber,\n Unit,\n config\n});\nexport var elementaryCharge = /* #__PURE__ */createElementaryCharge({\n BigNumber,\n Unit,\n config\n});\nexport var expm = /* #__PURE__ */createExpm({\n abs,\n add,\n identity,\n inv,\n multiply,\n typed\n});\nexport var faraday = /* #__PURE__ */createFaraday({\n BigNumber,\n Unit,\n config\n});\nexport var fft = /* #__PURE__ */createFft({\n addScalar,\n ceil,\n conj,\n divideScalar,\n dotDivide,\n exp,\n i,\n log2,\n matrix,\n multiplyScalar,\n pow,\n tau,\n typed\n});\nexport var gamma = /* #__PURE__ */createGamma({\n BigNumber,\n Complex,\n config,\n multiplyScalar,\n pow,\n typed\n});\nexport var gravitationConstant = /* #__PURE__ */createGravitationConstant({\n BigNumber,\n Unit,\n config\n});\nexport var hartreeEnergy = /* #__PURE__ */createHartreeEnergy({\n BigNumber,\n Unit,\n config\n});\nexport var ifft = /* #__PURE__ */createIfft({\n conj,\n dotDivide,\n fft,\n typed\n});\nexport var klitzing = /* #__PURE__ */createKlitzing({\n BigNumber,\n Unit,\n config\n});\nexport var loschmidt = /* #__PURE__ */createLoschmidt({\n BigNumber,\n Unit,\n config\n});\nexport var magneticConstant = /* #__PURE__ */createMagneticConstant({\n BigNumber,\n Unit,\n config\n});\nexport var molarMass = /* #__PURE__ */createMolarMass({\n BigNumber,\n Unit,\n config\n});\nexport var molarPlanckConstant = /* #__PURE__ */createMolarPlanckConstant({\n BigNumber,\n Unit,\n config\n});\nexport var neutronMass = /* #__PURE__ */createNeutronMass({\n BigNumber,\n Unit,\n config\n});\nexport var nuclearMagneton = /* #__PURE__ */createNuclearMagneton({\n BigNumber,\n Unit,\n config\n});\nexport var planckCharge = /* #__PURE__ */createPlanckCharge({\n BigNumber,\n Unit,\n config\n});\nexport var planckLength = /* #__PURE__ */createPlanckLength({\n BigNumber,\n Unit,\n config\n});\nexport var planckTemperature = /* #__PURE__ */createPlanckTemperature({\n BigNumber,\n Unit,\n config\n});\nexport var protonMass = /* #__PURE__ */createProtonMass({\n BigNumber,\n Unit,\n config\n});\nexport var quantumOfCirculation = /* #__PURE__ */createQuantumOfCirculation({\n BigNumber,\n Unit,\n config\n});\nexport var reducedPlanckConstant = /* #__PURE__ */createReducedPlanckConstant({\n BigNumber,\n Unit,\n config\n});\nexport var rydberg = /* #__PURE__ */createRydberg({\n BigNumber,\n Unit,\n config\n});\nexport var secondRadiation = /* #__PURE__ */createSecondRadiation({\n BigNumber,\n Unit,\n config\n});\nexport var speedOfLight = /* #__PURE__ */createSpeedOfLight({\n BigNumber,\n Unit,\n config\n});\nexport var stefanBoltzmann = /* #__PURE__ */createStefanBoltzmann({\n BigNumber,\n Unit,\n config\n});\nexport var thomsonCrossSection = /* #__PURE__ */createThomsonCrossSection({\n BigNumber,\n Unit,\n config\n});\nexport var avogadro = /* #__PURE__ */createAvogadro({\n BigNumber,\n Unit,\n config\n});\nexport var bohrRadius = /* #__PURE__ */createBohrRadius({\n BigNumber,\n Unit,\n config\n});\nexport var createUnit = /* #__PURE__ */createCreateUnit({\n Unit,\n typed\n});\nexport var divide = /* #__PURE__ */createDivide({\n divideScalar,\n equalScalar,\n inv,\n matrix,\n multiply,\n typed\n});\nexport var electronMass = /* #__PURE__ */createElectronMass({\n BigNumber,\n Unit,\n config\n});\nexport var factorial = /* #__PURE__ */createFactorial({\n gamma,\n typed\n});\nexport var firstRadiation = /* #__PURE__ */createFirstRadiation({\n BigNumber,\n Unit,\n config\n});\nexport var gravity = /* #__PURE__ */createGravity({\n BigNumber,\n Unit,\n config\n});\nexport var inverseConductanceQuantum = /* #__PURE__ */createInverseConductanceQuantum({\n BigNumber,\n Unit,\n config\n});\nexport var lusolve = /* #__PURE__ */createLusolve({\n DenseMatrix,\n lsolve,\n lup,\n matrix,\n slu,\n typed,\n usolve\n});\nexport var magneticFluxQuantum = /* #__PURE__ */createMagneticFluxQuantum({\n BigNumber,\n Unit,\n config\n});\nexport var molarMassC12 = /* #__PURE__ */createMolarMassC12({\n BigNumber,\n Unit,\n config\n});\nexport var multinomial = /* #__PURE__ */createMultinomial({\n add,\n divide,\n factorial,\n isInteger,\n isPositive,\n multiply,\n typed\n});\nexport var permutations = /* #__PURE__ */createPermutations({\n factorial,\n typed\n});\nexport var planckMass = /* #__PURE__ */createPlanckMass({\n BigNumber,\n Unit,\n config\n});\nexport var polynomialRoot = /* #__PURE__ */createPolynomialRoot({\n add,\n cbrt,\n divide,\n equalScalar,\n im,\n isZero,\n multiply,\n re,\n sqrt,\n subtract,\n typeOf,\n typed,\n unaryMinus\n});\nexport var setSize = /* #__PURE__ */createSetSize({\n compareNatural,\n typed\n});\nexport var solveODE = /* #__PURE__ */createSolveODE({\n abs,\n add,\n bignumber,\n divide,\n isNegative,\n isPositive,\n larger,\n map,\n matrix,\n max,\n multiply,\n smaller,\n subtract,\n typed,\n unaryMinus\n});\nexport var stirlingS2 = /* #__PURE__ */createStirlingS2({\n bignumber,\n addScalar,\n combinations,\n divideScalar,\n factorial,\n isInteger,\n isNegative,\n larger,\n multiplyScalar,\n number,\n pow,\n subtractScalar,\n typed\n});\nexport var unit = /* #__PURE__ */createUnitFunction({\n Unit,\n typed\n});\nexport var bellNumbers = /* #__PURE__ */createBellNumbers({\n addScalar,\n isInteger,\n isNegative,\n stirlingS2,\n typed\n});\nexport var eigs = /* #__PURE__ */createEigs({\n abs,\n add,\n addScalar,\n atan,\n bignumber,\n column,\n complex,\n config,\n cos,\n diag,\n divideScalar,\n dot,\n equal,\n flatten,\n im,\n inv,\n larger,\n matrix,\n matrixFromColumns,\n multiply,\n multiplyScalar,\n number,\n qr,\n re,\n sin,\n smaller,\n sqrt,\n subtract,\n typed,\n usolve,\n usolveAll\n});\nexport var fermiCoupling = /* #__PURE__ */createFermiCoupling({\n BigNumber,\n Unit,\n config\n});\nexport var gasConstant = /* #__PURE__ */createGasConstant({\n BigNumber,\n Unit,\n config\n});\nexport var mean = /* #__PURE__ */createMean({\n add,\n divide,\n typed\n});\nexport var molarVolume = /* #__PURE__ */createMolarVolume({\n BigNumber,\n Unit,\n config\n});\nexport var planckConstant = /* #__PURE__ */createPlanckConstant({\n BigNumber,\n Unit,\n config\n});\nexport var quantileSeq = /* #__PURE__ */createQuantileSeq({\n bignumber,\n add,\n compare,\n divide,\n isInteger,\n larger,\n multiply,\n partitionSelect,\n smaller,\n smallerEq,\n subtract,\n typed\n});\nexport var variance = /* #__PURE__ */createVariance({\n add,\n apply,\n divide,\n isNaN,\n multiply,\n subtract,\n typed\n});\nexport var classicalElectronRadius = /* #__PURE__ */createClassicalElectronRadius({\n BigNumber,\n Unit,\n config\n});\nexport var median = /* #__PURE__ */createMedian({\n add,\n compare,\n divide,\n partitionSelect,\n typed\n});\nexport var corr = /* #__PURE__ */createCorr({\n add,\n divide,\n matrix,\n mean,\n multiply,\n pow,\n sqrt,\n subtract,\n sum,\n typed\n});\nexport var freqz = /* #__PURE__ */createFreqz({\n Complex,\n add,\n divide,\n matrix,\n multiply,\n typed\n});\nexport var mad = /* #__PURE__ */createMad({\n abs,\n map,\n median,\n subtract,\n typed\n});\nexport var std = /* #__PURE__ */createStd({\n map,\n sqrt,\n typed,\n variance\n});\nexport var zeta = /* #__PURE__ */createZeta({\n BigNumber,\n Complex,\n add,\n config,\n divide,\n equal,\n factorial,\n gamma,\n isNegative,\n multiply,\n pi,\n pow,\n sin,\n smallerEq,\n subtract,\n typed\n});\nexport var norm = /* #__PURE__ */createNorm({\n abs,\n add,\n conj,\n ctranspose,\n eigs,\n equalScalar,\n larger,\n matrix,\n multiply,\n pow,\n smaller,\n sqrt,\n typed\n});\nexport var rotationMatrix = /* #__PURE__ */createRotationMatrix({\n BigNumber,\n DenseMatrix,\n SparseMatrix,\n addScalar,\n config,\n cos,\n matrix,\n multiplyScalar,\n norm,\n sin,\n typed,\n unaryMinus\n});\nexport var kldivergence = /* #__PURE__ */createKldivergence({\n divide,\n dotDivide,\n isNumeric,\n log,\n map,\n matrix,\n multiply,\n sum,\n typed\n});\nexport var planckTime = /* #__PURE__ */createPlanckTime({\n BigNumber,\n Unit,\n config\n});\nexport var schur = /* #__PURE__ */createSchur({\n identity,\n matrix,\n multiply,\n norm,\n qr,\n subtract,\n typed\n});\nexport var rotate = /* #__PURE__ */createRotate({\n multiply,\n rotationMatrix,\n typed\n});\nexport var sylvester = /* #__PURE__ */createSylvester({\n abs,\n add,\n concat,\n identity,\n index,\n lusolve,\n matrix,\n matrixFromColumns,\n multiply,\n range,\n schur,\n subset,\n subtract,\n transpose,\n typed\n});\nexport var lyap = /* #__PURE__ */createLyap({\n matrix,\n multiply,\n sylvester,\n transpose,\n typed\n});","import { factory } from '../../utils/factory.js';\nvar name = 'composition';\nvar dependencies = ['typed', 'addScalar', 'combinations', 'isNegative', 'isPositive', 'isInteger', 'larger'];\nexport var createComposition = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n addScalar,\n combinations,\n isPositive,\n isNegative,\n isInteger,\n larger\n } = _ref;\n /**\n * The composition counts of n into k parts.\n *\n * composition only takes integer arguments.\n * The following condition must be enforced: k <= n.\n *\n * Syntax:\n *\n * math.composition(n, k)\n *\n * Examples:\n *\n * math.composition(5, 3) // returns 6\n *\n * See also:\n *\n * combinations\n *\n * @param {Number | BigNumber} n Total number of objects in the set\n * @param {Number | BigNumber} k Number of objects in the subset\n * @return {Number | BigNumber} Returns the composition counts of n into k parts.\n */\n return typed(name, {\n 'number | BigNumber, number | BigNumber': function numberBigNumberNumberBigNumber(n, k) {\n if (!isInteger(n) || !isPositive(n) || !isInteger(k) || !isPositive(k)) {\n throw new TypeError('Positive integer value expected in function composition');\n } else if (larger(k, n)) {\n throw new TypeError('k must be less than or equal to n in function composition');\n }\n return combinations(addScalar(n, -1), addScalar(k, -1));\n }\n });\n});","var bufferEqual = require('buffer-equal-constant-time');\nvar Buffer = require('safe-buffer').Buffer;\nvar crypto = require('crypto');\nvar formatEcdsa = require('ecdsa-sig-formatter');\nvar util = require('util');\n\nvar MSG_INVALID_ALGORITHM = '\"%s\" is not a valid algorithm.\\n Supported algorithms are:\\n \"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\" and \"none\".'\nvar MSG_INVALID_SECRET = 'secret must be a string or buffer';\nvar MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer';\nvar MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object';\n\nvar supportsKeyObjects = typeof crypto.createPublicKey === 'function';\nif (supportsKeyObjects) {\n MSG_INVALID_VERIFIER_KEY += ' or a KeyObject';\n MSG_INVALID_SECRET += 'or a KeyObject';\n}\n\nfunction checkIsPublicKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.type !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.asymmetricKeyType !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n};\n\nfunction checkIsPrivateKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (typeof key === 'object') {\n return;\n }\n\n throw typeError(MSG_INVALID_SIGNER_KEY);\n};\n\nfunction checkIsSecretKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return key;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (key.type !== 'secret') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_SECRET);\n }\n}\n\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n\n var padding = 4 - base64url.length % 4;\n if (padding !== 4) {\n for (var i = 0; i < padding; ++i) {\n base64url += '=';\n }\n }\n\n return base64url\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n}\n\nfunction typeError(template) {\n var args = [].slice.call(arguments, 1);\n var errMsg = util.format.bind(util, template).apply(null, args);\n return new TypeError(errMsg);\n}\n\nfunction bufferOrString(obj) {\n return Buffer.isBuffer(obj) || typeof obj === 'string';\n}\n\nfunction normalizeInput(thing) {\n if (!bufferOrString(thing))\n thing = JSON.stringify(thing);\n return thing;\n}\n\nfunction createHmacSigner(bits) {\n return function sign(thing, secret) {\n checkIsSecretKey(secret);\n thing = normalizeInput(thing);\n var hmac = crypto.createHmac('sha' + bits, secret);\n var sig = (hmac.update(thing), hmac.digest('base64'))\n return fromBase64(sig);\n }\n}\n\nfunction createHmacVerifier(bits) {\n return function verify(thing, signature, secret) {\n var computedSig = createHmacSigner(bits)(thing, secret);\n return bufferEqual(Buffer.from(signature), Buffer.from(computedSig));\n }\n}\n\nfunction createKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n // Even though we are specifying \"RSA\" here, this works with ECDSA\n // keys as well.\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign(privateKey, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify(publicKey, signature, 'base64');\n }\n}\n\nfunction createPSSKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign({\n key: privateKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createPSSKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify({\n key: publicKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, signature, 'base64');\n }\n}\n\nfunction createECDSASigner(bits) {\n var inner = createKeySigner(bits);\n return function sign() {\n var signature = inner.apply(null, arguments);\n signature = formatEcdsa.derToJose(signature, 'ES' + bits);\n return signature;\n };\n}\n\nfunction createECDSAVerifer(bits) {\n var inner = createKeyVerifier(bits);\n return function verify(thing, signature, publicKey) {\n signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64');\n var result = inner(thing, signature, publicKey);\n return result;\n };\n}\n\nfunction createNoneSigner() {\n return function sign() {\n return '';\n }\n}\n\nfunction createNoneVerifier() {\n return function verify(thing, signature) {\n return signature === '';\n }\n}\n\nmodule.exports = function jwa(algorithm) {\n var signerFactories = {\n hs: createHmacSigner,\n rs: createKeySigner,\n ps: createPSSKeySigner,\n es: createECDSASigner,\n none: createNoneSigner,\n }\n var verifierFactories = {\n hs: createHmacVerifier,\n rs: createKeyVerifier,\n ps: createPSSKeyVerifier,\n es: createECDSAVerifer,\n none: createNoneVerifier,\n }\n var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/i);\n if (!match)\n throw typeError(MSG_INVALID_ALGORITHM, algorithm);\n var algo = (match[1] || match[3]).toLowerCase();\n var bits = match[2];\n\n return {\n sign: signerFactories[algo](bits),\n verify: verifierFactories[algo](bits),\n }\n};\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","// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n","import { isArray, isMatrix, isString, typeOf } from '../../utils/is.js';\nimport { clone } from '../../utils/object.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'ImmutableDenseMatrix';\nvar dependencies = ['smaller', 'DenseMatrix'];\nexport var createImmutableDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n smaller,\n DenseMatrix\n } = _ref;\n function ImmutableDenseMatrix(data, datatype) {\n if (!(this instanceof ImmutableDenseMatrix)) {\n throw new SyntaxError('Constructor must be called with the new operator');\n }\n if (datatype && !isString(datatype)) {\n throw new Error('Invalid datatype: ' + datatype);\n }\n if (isMatrix(data) || isArray(data)) {\n // use DenseMatrix implementation\n var matrix = new DenseMatrix(data, datatype);\n // internal structures\n this._data = matrix._data;\n this._size = matrix._size;\n this._datatype = matrix._datatype;\n this._min = null;\n this._max = null;\n } else if (data && isArray(data.data) && isArray(data.size)) {\n // initialize fields from JSON representation\n this._data = data.data;\n this._size = data.size;\n this._datatype = data.datatype;\n this._min = typeof data.min !== 'undefined' ? data.min : null;\n this._max = typeof data.max !== 'undefined' ? data.max : null;\n } else if (data) {\n // unsupported type\n throw new TypeError('Unsupported type of data (' + typeOf(data) + ')');\n } else {\n // nothing provided\n this._data = [];\n this._size = [0];\n this._datatype = datatype;\n this._min = null;\n this._max = null;\n }\n }\n ImmutableDenseMatrix.prototype = new DenseMatrix();\n\n /**\n * Attach type information\n */\n ImmutableDenseMatrix.prototype.type = 'ImmutableDenseMatrix';\n ImmutableDenseMatrix.prototype.isImmutableDenseMatrix = true;\n\n /**\n * Get a subset of the matrix, or replace a subset of the matrix.\n *\n * Usage:\n * const subset = matrix.subset(index) // retrieve subset\n * const value = matrix.subset(index, replacement) // replace subset\n *\n * @param {Index} index\n * @param {Array | ImmutableDenseMatrix | *} [replacement]\n * @param {*} [defaultValue=0] Default value, filled in on new entries when\n * the matrix is resized. If not provided,\n * new matrix elements will be filled with zeros.\n */\n ImmutableDenseMatrix.prototype.subset = function (index) {\n switch (arguments.length) {\n case 1:\n {\n // use base implementation\n var m = DenseMatrix.prototype.subset.call(this, index);\n // check result is a matrix\n if (isMatrix(m)) {\n // return immutable matrix\n return new ImmutableDenseMatrix({\n data: m._data,\n size: m._size,\n datatype: m._datatype\n });\n }\n return m;\n }\n // intentional fall through\n case 2:\n case 3:\n throw new Error('Cannot invoke set subset on an Immutable Matrix instance');\n default:\n throw new SyntaxError('Wrong number of arguments');\n }\n };\n\n /**\n * Replace a single element in the matrix.\n * @param {Number[]} index Zero-based index\n * @param {*} value\n * @param {*} [defaultValue] Default value, filled in on new entries when\n * the matrix is resized. If not provided,\n * new matrix elements will be left undefined.\n * @return {ImmutableDenseMatrix} self\n */\n ImmutableDenseMatrix.prototype.set = function () {\n throw new Error('Cannot invoke set on an Immutable Matrix instance');\n };\n\n /**\n * Resize the matrix to the given size. Returns a copy of the matrix when\n * `copy=true`, otherwise return the matrix itself (resize in place).\n *\n * @param {Number[]} size The new size the matrix should have.\n * @param {*} [defaultValue=0] Default value, filled in on new entries.\n * If not provided, the matrix elements will\n * be filled with zeros.\n * @param {boolean} [copy] Return a resized copy of the matrix\n *\n * @return {Matrix} The resized matrix\n */\n ImmutableDenseMatrix.prototype.resize = function () {\n throw new Error('Cannot invoke resize on an Immutable Matrix instance');\n };\n\n /**\n * Disallows reshaping in favor of immutability.\n *\n * @throws {Error} Operation not allowed\n */\n ImmutableDenseMatrix.prototype.reshape = function () {\n throw new Error('Cannot invoke reshape on an Immutable Matrix instance');\n };\n\n /**\n * Create a clone of the matrix\n * @return {ImmutableDenseMatrix} clone\n */\n ImmutableDenseMatrix.prototype.clone = function () {\n return new ImmutableDenseMatrix({\n data: clone(this._data),\n size: clone(this._size),\n datatype: this._datatype\n });\n };\n\n /**\n * Get a JSON representation of the matrix\n * @returns {Object}\n */\n ImmutableDenseMatrix.prototype.toJSON = function () {\n return {\n mathjs: 'ImmutableDenseMatrix',\n data: this._data,\n size: this._size,\n datatype: this._datatype\n };\n };\n\n /**\n * Generate a matrix from a JSON object\n * @param {Object} json An object structured like\n * `{\"mathjs\": \"ImmutableDenseMatrix\", data: [], size: []}`,\n * where mathjs is optional\n * @returns {ImmutableDenseMatrix}\n */\n ImmutableDenseMatrix.fromJSON = function (json) {\n return new ImmutableDenseMatrix(json);\n };\n\n /**\n * Swap rows i and j in Matrix.\n *\n * @param {Number} i Matrix row index 1\n * @param {Number} j Matrix row index 2\n *\n * @return {Matrix} The matrix reference\n */\n ImmutableDenseMatrix.prototype.swapRows = function () {\n throw new Error('Cannot invoke swapRows on an Immutable Matrix instance');\n };\n\n /**\n * Calculate the minimum value in the set\n * @return {Number | undefined} min\n */\n ImmutableDenseMatrix.prototype.min = function () {\n // check min has been calculated before\n if (this._min === null) {\n // minimum\n var m = null;\n // compute min\n this.forEach(function (v) {\n if (m === null || smaller(v, m)) {\n m = v;\n }\n });\n this._min = m !== null ? m : undefined;\n }\n return this._min;\n };\n\n /**\n * Calculate the maximum value in the set\n * @return {Number | undefined} max\n */\n ImmutableDenseMatrix.prototype.max = function () {\n // check max has been calculated before\n if (this._max === null) {\n // maximum\n var m = null;\n // compute max\n this.forEach(function (v) {\n if (m === null || smaller(m, v)) {\n m = v;\n }\n });\n this._max = m !== null ? m : undefined;\n }\n return this._max;\n };\n return ImmutableDenseMatrix;\n}, {\n isClass: true\n});","// String encode/decode helpers\n'use strict';\n\n\nvar utils = require('./common');\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new utils.Buf8(256);\nfor (var q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function (buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function (str) {\n var buf = new utils.Buf8(str.length);\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function (buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n","import { factory } from '../../utils/factory.js';\nimport { asechNumber } from '../../plain/number/index.js';\nvar name = 'asech';\nvar dependencies = ['typed', 'config', 'Complex', 'BigNumber'];\nexport var createAsech = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n Complex,\n BigNumber: _BigNumber\n } = _ref;\n /**\n * Calculate the hyperbolic arcsecant of a value,\n * defined as `asech(x) = acosh(1/x) = ln(sqrt(1/x^2 - 1) + 1/x)`.\n *\n * To avoid confusion with the matrix hyperbolic arcsecant, this function\n * does not apply to matrices.\n *\n * Syntax:\n *\n * math.asech(x)\n *\n * Examples:\n *\n * math.asech(0.5) // returns 1.3169578969248166\n *\n * See also:\n *\n * acsch, acoth\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} Hyperbolic arcsecant of x\n */\n return typed(name, {\n number: function number(x) {\n if (x <= 1 && x >= -1 || config.predictable) {\n var xInv = 1 / x;\n if (xInv > 0 || config.predictable) {\n return asechNumber(x);\n }\n var ret = Math.sqrt(xInv * xInv - 1);\n return new Complex(Math.log(ret - xInv), Math.PI);\n }\n return new Complex(x, 0).asech();\n },\n Complex: function Complex(x) {\n return x.asech();\n },\n BigNumber: function BigNumber(x) {\n return new _BigNumber(1).div(x).acosh();\n }\n });\n});","'use strict';\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\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","import { deepForEach, reduce, containsCollections } from '../../utils/collection.js';\nimport { factory } from '../../utils/factory.js';\nimport { improveErrorMessage } from './utils/improveErrorMessage.js';\nvar name = 'max';\nvar dependencies = ['typed', 'config', 'numeric', 'larger'];\nexport var createMax = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n numeric,\n larger\n } = _ref;\n /**\n * Compute the maximum value of a matrix or a list with values.\n * In case of a multidimensional array, the maximum of the flattened array\n * will be calculated. When `dim` is provided, the maximum over the selected\n * dimension will be calculated. Parameter `dim` is zero-based.\n *\n * Syntax:\n *\n * math.max(a, b, c, ...)\n * math.max(A)\n * math.max(A, dimension)\n *\n * Examples:\n *\n * math.max(2, 1, 4, 3) // returns 4\n * math.max([2, 1, 4, 3]) // returns 4\n *\n * // maximum over a specified dimension (zero-based)\n * math.max([[2, 5], [4, 3], [1, 7]], 0) // returns [4, 7]\n * math.max([[2, 5], [4, 3], [1, 7]], 1) // returns [5, 4, 7]\n *\n * math.max(2.7, 7.1, -4.5, 2.0, 4.1) // returns 7.1\n * math.min(2.7, 7.1, -4.5, 2.0, 4.1) // returns -4.5\n *\n * See also:\n *\n * mean, median, min, prod, std, sum, variance\n *\n * @param {... *} args A single matrix or or multiple scalar values\n * @return {*} The maximum value\n */\n return typed(name, {\n // max([a, b, c, d, ...])\n 'Array | Matrix': _max,\n // max([a, b, c, d, ...], dim)\n 'Array | Matrix, number | BigNumber': function ArrayMatrixNumberBigNumber(array, dim) {\n return reduce(array, dim.valueOf(), _largest);\n },\n // max(a, b, c, d, ...)\n '...': function _(args) {\n if (containsCollections(args)) {\n throw new TypeError('Scalar values expected in function max');\n }\n return _max(args);\n }\n });\n\n /**\n * Return the largest of two values\n * @param {*} x\n * @param {*} y\n * @returns {*} Returns x when x is largest, or y when y is largest\n * @private\n */\n function _largest(x, y) {\n try {\n return larger(x, y) ? x : y;\n } catch (err) {\n throw improveErrorMessage(err, 'max', y);\n }\n }\n\n /**\n * Recursively calculate the maximum value in an n-dimensional array\n * @param {Array} array\n * @return {number} max\n * @private\n */\n function _max(array) {\n var res;\n deepForEach(array, function (value) {\n try {\n if (isNaN(value) && typeof value === 'number') {\n res = NaN;\n } else if (res === undefined || larger(value, res)) {\n res = value;\n }\n } catch (err) {\n throw improveErrorMessage(err, 'max', value);\n }\n });\n if (res === undefined) {\n throw new Error('Cannot calculate max of an empty array');\n }\n\n // make sure returning numeric value: parse a string into a numeric value\n if (typeof res === 'string') {\n res = numeric(res, config.number);\n }\n return res;\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}","import { isBigNumber, isMatrix, isNumber } from '../../utils/is.js';\nimport { clone } from '../../utils/object.js';\nimport { arraySize, concat as _concat } from '../../utils/array.js';\nimport { IndexError } from '../../error/IndexError.js';\nimport { DimensionError } from '../../error/DimensionError.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'concat';\nvar dependencies = ['typed', 'matrix', 'isInteger'];\nexport var createConcat = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n isInteger\n } = _ref;\n /**\n * Concatenate two or more matrices.\n *\n * Syntax:\n *\n * math.concat(A, B, C, ...)\n * math.concat(A, B, C, ..., dim)\n *\n * Where:\n *\n * - `dim: number` is a zero-based dimension over which to concatenate the matrices.\n * By default the last dimension of the matrices.\n *\n * Examples:\n *\n * const A = [[1, 2], [5, 6]]\n * const B = [[3, 4], [7, 8]]\n *\n * math.concat(A, B) // returns [[1, 2, 3, 4], [5, 6, 7, 8]]\n * math.concat(A, B, 0) // returns [[1, 2], [5, 6], [3, 4], [7, 8]]\n * math.concat('hello', ' ', 'world') // returns 'hello world'\n *\n * See also:\n *\n * size, squeeze, subset, transpose\n *\n * @param {... Array | Matrix} args Two or more matrices\n * @return {Array | Matrix} Concatenated matrix\n */\n return typed(name, {\n // TODO: change signature to '...Array | Matrix, dim?' when supported\n '...Array | Matrix | number | BigNumber': function ArrayMatrixNumberBigNumber(args) {\n var i;\n var len = args.length;\n var dim = -1; // zero-based dimension\n var prevDim;\n var asMatrix = false;\n var matrices = []; // contains multi dimensional arrays\n\n for (i = 0; i < len; i++) {\n var arg = args[i];\n\n // test whether we need to return a Matrix (if not we return an Array)\n if (isMatrix(arg)) {\n asMatrix = true;\n }\n if (isNumber(arg) || isBigNumber(arg)) {\n if (i !== len - 1) {\n throw new Error('Dimension must be specified as last argument');\n }\n\n // last argument contains the dimension on which to concatenate\n prevDim = dim;\n dim = arg.valueOf(); // change BigNumber to number\n\n if (!isInteger(dim)) {\n throw new TypeError('Integer number expected for dimension');\n }\n if (dim < 0 || i > 0 && dim > prevDim) {\n // TODO: would be more clear when throwing a DimensionError here\n throw new IndexError(dim, prevDim + 1);\n }\n } else {\n // this is a matrix or array\n var m = clone(arg).valueOf();\n var size = arraySize(m);\n matrices[i] = m;\n prevDim = dim;\n dim = size.length - 1;\n\n // verify whether each of the matrices has the same number of dimensions\n if (i > 0 && dim !== prevDim) {\n throw new DimensionError(prevDim + 1, dim + 1);\n }\n }\n }\n if (matrices.length === 0) {\n throw new SyntaxError('At least one matrix expected');\n }\n var res = matrices.shift();\n while (matrices.length) {\n res = _concat(res, matrices.shift(), dim);\n }\n return asMatrix ? matrix(res) : res;\n },\n '...string': function string(args) {\n return args.join('');\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","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","import { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nimport { log2Number } from '../../plain/number/index.js';\nvar name = 'log2';\nvar dependencies = ['typed', 'config', 'Complex'];\nexport var createLog2 = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n Complex\n } = _ref;\n /**\n * Calculate the 2-base of a value. This is the same as calculating `log(x, 2)`.\n *\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.log2(x)\n *\n * Examples:\n *\n * math.log2(0.03125) // returns -5\n * math.log2(16) // returns 4\n * math.log2(16) / math.log2(2) // returns 4\n * math.pow(2, 4) // returns 16\n *\n * See also:\n *\n * exp, log, log1p, log10\n *\n * @param {number | BigNumber | Complex | Array | Matrix} x\n * Value for which to calculate the logarithm.\n * @return {number | BigNumber | Complex | Array | Matrix}\n * Returns the 2-base logarithm of `x`\n */\n return typed(name, {\n number: function number(x) {\n if (x >= 0 || config.predictable) {\n return log2Number(x);\n } else {\n // negative value -> complex value computation\n return _log2Complex(new Complex(x, 0));\n }\n },\n Complex: _log2Complex,\n BigNumber: function BigNumber(x) {\n if (!x.isNegative() || config.predictable) {\n return x.log(2);\n } else {\n // downgrade to number, return Complex valued result\n return _log2Complex(new Complex(x.toNumber(), 0));\n }\n },\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))\n });\n\n /**\n * Calculate log2 for a complex value\n * @param {Complex} x\n * @returns {Complex}\n * @private\n */\n function _log2Complex(x) {\n var newX = Math.sqrt(x.re * x.re + x.im * x.im);\n return new Complex(Math.log2 ? Math.log2(newX) : Math.log(newX) / Math.LN2, Math.atan2(x.im, x.re) / Math.LN2);\n }\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","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.ImageCompressor=e():t.ImageCompressor=e()}(window,(function(){return function(t){var e={};function s(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,s),a.l=!0,a.exports}return s.m=t,s.c=e,s.d=function(t,e,i){s.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},s.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var a in t)s.d(i,a,function(e){return t[e]}.bind(null,a));return i},s.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(e,\"a\",e),e},s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s.p=\"\",s(s.s=0)}([function(t,e,s){\"use strict\";s.r(e),s.d(e,\"ImageCompressor\",(function(){return a}));const i={toWidth:null,toHeight:null,mimeType:\"image/png\",speed:\"low\",mode:\"strict\",grayScale:!1,sepia:!1,threshold:!1,vReverse:!1,hReverse:!1,quality:1};class a{constructor(){this.settings=JSON.parse(JSON.stringify(i)),this.canvas=document.createElement(\"canvas\"),this.image=document.createElement(\"img\"),this.context=this.canvas.getContext(\"2d\"),this.listenEvents()}listenEvents(){this.image.addEventListener(\"load\",this.imageLoaded.bind(this),!1),this.image.addEventListener(\"error\",this.imageFault,!1)}imageLoaded(){this.checkSizes(),this.compress()}imageFault(){throw new Error(\"Source can not be loaded\")}run(t,e,s){this.settings=JSON.parse(JSON.stringify(i)),this.settings.toWidth=e.toWidth,this.settings.toHeight=e.toHeight,this.settings.mimeType=e.mimeType||this.settings.mimeType,this.settings.mode=\"strict\"===e.mode||\"stretch\"===e.mode?e.mode:this.settings.mode,this.settings.speed=e.speed||this.settings.speed,this.settings.grayScale=e.hasOwnProperty(\"grayScale\")?e.grayScale:this.settings.grayScale,this.settings.sepia=e.hasOwnProperty(\"sepia\")?e.sepia:this.settings.sepia,this.settings.threshold=e.hasOwnProperty(\"threshold\")?e.threshold:this.settings.threshold,this.settings.hReverse=e.hasOwnProperty(\"hReverse\")?e.hReverse:this.settings.hReverse,this.settings.vReverse=e.hasOwnProperty(\"vReverse\")?e.vReverse:this.settings.vReverse,this.imageReceiver=s,this.image.src=t}compress(){\"high\"!==this.settings.speed&&this.compressWithQuality(),this.compressAddOn()}compressAddOn(){this.naturalAR=this.image.naturalWidth/this.image.naturalHeight,this.compressedAR=this.settings.toWidth/this.settings.toHeight,this.canvas.width=this.settings.toWidth,this.canvas.height=this.settings.toHeight,this.context.fillStyle=\"image/png\"===this.settings.mimeType?\"rgba(255, 255, 255, 0)\":\"#FFFFFF\",this.context.fillRect(0,0,this.settings.toWidth,this.settings.toHeight),\"strict\"===this.settings.mode&&this.strictResize(),\"stretch\"===this.settings.mode&&this.stretchResize(),this.imageFilters(),this.imageReverse(),this.imageReceiver(this.canvas.toDataURL(this.settings.mimeType,this.settings.quality)),this.compressedCanv=null}compressWithQuality(){this.image.naturalWidth<=this.settings.toWidth&&this.image.naturalHeight<=this.settings.toHeight?this.compressAddOn():this.firstCompress()}firstCompress(){const t=document.createElement(\"canvas\"),e=t.getContext(\"2d\");let s=this.image.naturalWidth/2,i=this.image.naturalHeight/2,a=this.settings.toWidth,h=this.settings.toHeight;if(!(sa&&i>h;)e.drawImage(t,0,0,2*s,2*i,0,0,s,i),s/=2,i/=2;this.compressedCanv=t,this.compressedW=2*s,this.compressedH=2*i}}strictResize(){this.naturalAR>=this.compressedAR?this.fitWidth():this.fitHeight()}stretchResize(){this.compressedCanv?this.context.drawImage(this.compressedCanv,0,0,this.compressedW,this.compressedH,0,0,this.settings.toWidth,this.settings.toHeight):this.context.drawImage(this.image,0,0,this.settings.toWidth,this.settings.toHeight)}fitWidth(){const t=this.settings.toWidth/this.naturalAR,e=(this.settings.toHeight-t)/2;this.compressedCanv?this.context.drawImage(this.compressedCanv,0,0,this.compressedW,this.compressedH,0,e,this.settings.toWidth,t):this.context.drawImage(this.image,0,e,this.settings.toWidth,t)}fitHeight(){const t=this.settings.toHeight*this.naturalAR,e=(this.settings.toWidth-t)/2;this.compressedCanv?this.context.drawImage(this.compressedCanv,0,0,this.compressedW,this.compressedH,e,0,t,this.settings.toHeight):this.context.drawImage(this.image,e,0,t,this.settings.toHeight)}checkSizes(){const t=this.image.naturalWidth/this.image.naturalHeight;if(!this.settings.toWidth&&!this.settings.toHeight)return this.settings.toWidth=this.image.naturalWidth,void(this.settings.toHeight=this.image.naturalHeight);this.settings.toWidth?this.settings.toHeight||(this.settings.toHeight=this.settings.toWidth/t):this.settings.toWidth=this.settings.toHeight*t}grayScale(){const t=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);let e;for(let s=0,i=t.data.length;sthis.settings.threshold?255:0,t.data[i]=s,t.data[i+1]=s,t.data[i+2]=s);this.context.putImageData(t,0,0)}imageFilters(){this.settings.grayScale?this.grayScale():this.settings.sepia?this.sepia():this.settings.threshold&&this.threshold()}imageReverse(){this.settings.vReverse&&this.vReverse(),this.settings.hReverse&&this.hReverse()}vReverse(){const t=this.context.getImageData(0,0,this.canvas.width,this.canvas.height).data,e=this.context.createImageData(this.canvas.width,this.canvas.height),s=this.canvas.height;let i=0,a=0;const h=4*this.canvas.width;for(var n=s-1;n>=0;n--){i=n*h;for(var r=0;r0;r-=4)for(let o=0;o {\n var {\n typed\n } = _ref;\n /**\n * Calculate the hyperbolic arcsine of a value,\n * defined as `asinh(x) = ln(x + sqrt(x^2 + 1))`.\n *\n * To avoid confusion with the matrix hyperbolic arcsine, this function\n * does not apply to matrices.\n *\n * Syntax:\n *\n * math.asinh(x)\n *\n * Examples:\n *\n * math.asinh(0.5) // returns 0.48121182505960347\n *\n * See also:\n *\n * acosh, atanh\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} Hyperbolic arcsine of x\n */\n return typed('asinh', {\n number: asinhNumber,\n Complex: function Complex(x) {\n return x.asinh();\n },\n BigNumber: function BigNumber(x) {\n return x.asinh();\n }\n });\n});","import { factory } from '../../utils/factory.js';\nimport { subtractNumber } from '../../plain/number/index.js';\nvar name = 'subtractScalar';\nvar dependencies = ['typed'];\nexport var createSubtractScalar = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Subtract two scalar values, `x - y`.\n * This function is meant for internal use: it is used by the public function\n * `subtract`\n *\n * This function does not support collections (Array or Matrix).\n *\n * @param {number | BigNumber | Fraction | Complex | Unit} x First value\n * @param {number | BigNumber | Fraction | Complex} y Second value to be subtracted from `x`\n * @return {number | BigNumber | Fraction | Complex | Unit} Difference of `x` and `y`\n * @private\n */\n return typed(name, {\n 'number, number': subtractNumber,\n 'Complex, Complex': function ComplexComplex(x, y) {\n return x.sub(y);\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n return x.minus(y);\n },\n 'Fraction, Fraction': function FractionFraction(x, y) {\n return x.sub(y);\n },\n 'Unit, Unit': typed.referToSelf(self => (x, y) => {\n if (x.value === null || x.value === undefined) {\n throw new Error('Parameter x contains a unit with undefined value');\n }\n if (y.value === null || y.value === undefined) {\n throw new Error('Parameter y contains a unit with undefined value');\n }\n if (!x.equalBase(y)) throw new Error('Units do not match');\n var res = x.clone();\n res.value = typed.find(self, [res.valueType(), y.valueType()])(res.value, y.value);\n res.fixPrefix = false;\n return res;\n })\n });\n});","import { factory } from '../../utils/factory.js';\nimport { acscNumber } from '../../plain/number/index.js';\nvar name = 'acsc';\nvar dependencies = ['typed', 'config', 'Complex', 'BigNumber'];\nexport var createAcsc = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n Complex,\n BigNumber: _BigNumber\n } = _ref;\n /**\n * Calculate the inverse cosecant of a value, defined as `acsc(x) = asin(1/x)`.\n *\n * To avoid confusion with the matrix arccosecant, this function does not\n * apply to matrices.\n *\n * Syntax:\n *\n * math.acsc(x)\n *\n * Examples:\n *\n * math.acsc(2) // returns 0.5235987755982989\n * math.acsc(0.5) // returns Complex 1.5707963267948966 -1.3169578969248166i\n * math.acsc(math.csc(1.5)) // returns number ~1.5\n *\n * See also:\n *\n * csc, asin, asec\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} The arc cosecant of x\n */\n return typed(name, {\n number: function number(x) {\n if (x <= -1 || x >= 1 || config.predictable) {\n return acscNumber(x);\n }\n return new Complex(x, 0).acsc();\n },\n Complex: function Complex(x) {\n return x.acsc();\n },\n BigNumber: function BigNumber(x) {\n return new _BigNumber(1).div(x).asin();\n }\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","import { __extends } from \"tslib\";\nimport PDFObject from \"./PDFObject\";\nimport CharCodes from \"../syntax/CharCodes\";\nimport { copyStringIntoBuffer, padStart, utf16Decode, pdfDocEncodingDecode, toCharCode, parseDate, hasUtf16BOM, } from \"../../utils\";\nimport { InvalidPDFDateStringError } from \"../errors\";\nvar PDFString = /** @class */ (function (_super) {\n __extends(PDFString, _super);\n function PDFString(value) {\n var _this = _super.call(this) || this;\n _this.value = value;\n return _this;\n }\n PDFString.prototype.asBytes = function () {\n var bytes = [];\n var octal = '';\n var escaped = false;\n var pushByte = function (byte) {\n if (byte !== undefined)\n bytes.push(byte);\n escaped = false;\n };\n for (var idx = 0, len = this.value.length; idx < len; idx++) {\n var char = this.value[idx];\n var byte = toCharCode(char);\n var nextChar = this.value[idx + 1];\n if (!escaped) {\n if (byte === CharCodes.BackSlash)\n escaped = true;\n else\n pushByte(byte);\n }\n else {\n if (byte === CharCodes.Newline)\n pushByte();\n else if (byte === CharCodes.CarriageReturn)\n pushByte();\n else if (byte === CharCodes.n)\n pushByte(CharCodes.Newline);\n else if (byte === CharCodes.r)\n pushByte(CharCodes.CarriageReturn);\n else if (byte === CharCodes.t)\n pushByte(CharCodes.Tab);\n else if (byte === CharCodes.b)\n pushByte(CharCodes.Backspace);\n else if (byte === CharCodes.f)\n pushByte(CharCodes.FormFeed);\n else if (byte === CharCodes.LeftParen)\n pushByte(CharCodes.LeftParen);\n else if (byte === CharCodes.RightParen)\n pushByte(CharCodes.RightParen);\n else if (byte === CharCodes.Backspace)\n pushByte(CharCodes.BackSlash);\n else if (byte >= CharCodes.Zero && byte <= CharCodes.Seven) {\n octal += char;\n if (octal.length === 3 || !(nextChar >= '0' && nextChar <= '7')) {\n pushByte(parseInt(octal, 8));\n octal = '';\n }\n }\n else {\n pushByte(byte);\n }\n }\n }\n return new Uint8Array(bytes);\n };\n PDFString.prototype.decodeText = function () {\n var bytes = this.asBytes();\n if (hasUtf16BOM(bytes))\n return utf16Decode(bytes);\n return pdfDocEncodingDecode(bytes);\n };\n PDFString.prototype.decodeDate = function () {\n var text = this.decodeText();\n var date = parseDate(text);\n if (!date)\n throw new InvalidPDFDateStringError(text);\n return date;\n };\n PDFString.prototype.asString = function () {\n return this.value;\n };\n PDFString.prototype.clone = function () {\n return PDFString.of(this.value);\n };\n PDFString.prototype.toString = function () {\n return \"(\" + this.value + \")\";\n };\n PDFString.prototype.sizeInBytes = function () {\n return this.value.length + 2;\n };\n PDFString.prototype.copyBytesInto = function (buffer, offset) {\n buffer[offset++] = CharCodes.LeftParen;\n offset += copyStringIntoBuffer(this.value, buffer, offset);\n buffer[offset++] = CharCodes.RightParen;\n return this.value.length + 2;\n };\n // The PDF spec allows newlines and parens to appear directly within a literal\n // string. These character _may_ be escaped. But they do not _have_ to be. So\n // for simplicity, we will not bother escaping them.\n PDFString.of = function (value) { return new PDFString(value); };\n PDFString.fromDate = function (date) {\n var year = padStart(String(date.getUTCFullYear()), 4, '0');\n var month = padStart(String(date.getUTCMonth() + 1), 2, '0');\n var day = padStart(String(date.getUTCDate()), 2, '0');\n var hours = padStart(String(date.getUTCHours()), 2, '0');\n var mins = padStart(String(date.getUTCMinutes()), 2, '0');\n var secs = padStart(String(date.getUTCSeconds()), 2, '0');\n return new PDFString(\"D:\" + year + month + day + hours + mins + secs + \"Z\");\n };\n return PDFString;\n}(PDFObject));\nexport default PDFString;\n//# sourceMappingURL=PDFString.js.map","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\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';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar c2i = require('../internals/base64-map').c2i;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]{1,2}$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar BASIC = !!$atob && !fails(function () {\n return $atob('aGk=') !== 'hi';\n});\n\nvar NO_SPACES_IGNORE = BASIC && fails(function () {\n return $atob(' ') !== '';\n});\n\nvar NO_ENCODING_CHECK = BASIC && !fails(function () {\n $atob('a');\n});\n\nvar NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () {\n $atob();\n});\n\nvar WRONG_ARITY = BASIC && $atob.length !== 1;\n\nvar FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY;\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n atob: function atob(data) {\n validateArgumentsLength(arguments.length, 1);\n // `webpack` dev server bug on IE global methods - use call(fn, global, ...)\n if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, global, data);\n var string = replace(toString(data), whitespaces, '');\n var output = '';\n var position = 0;\n var bc = 0;\n var length, chr, bs;\n if (string.length % 4 === 0) {\n string = replace(string, finalEq, '');\n }\n length = string.length;\n if (length % 4 === 1 || exec(disallowed, string)) {\n throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n }\n while (position < length) {\n chr = charAt(string, position++);\n bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr];\n if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n } return output;\n }\n});\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","import { factory } from '../../utils/factory.js';\nvar name = 'atan';\nvar dependencies = ['typed'];\nexport var createAtan = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Calculate the inverse tangent of a value.\n *\n * To avoid confusion with matrix arctangent, this function does not apply\n * to matrices.\n *\n * Syntax:\n *\n * math.atan(x)\n *\n * Examples:\n *\n * math.atan(0.5) // returns number 0.4636476090008061\n * math.atan(2) // returns number 1.1071487177940904\n * math.atan(math.tan(1.5)) // returns number 1.5\n *\n * See also:\n *\n * tan, asin, acos\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} The arc tangent of x\n */\n return typed('atan', {\n number: function number(x) {\n return Math.atan(x);\n },\n Complex: function Complex(x) {\n return x.atan();\n },\n BigNumber: function BigNumber(x) {\n return x.atan();\n }\n });\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","/**\n * @since 2.0.0\n */\nexport var tailRec = function (startWith, f) {\n var ab = f(startWith);\n while (ab._tag === 'Left') {\n ab = f(ab.left);\n }\n return ab.right;\n};\n","import { flatten } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'setUnion';\nvar dependencies = ['typed', 'size', 'concat', 'subset', 'setIntersect', 'setSymDifference', 'Index'];\nexport var createSetUnion = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n size,\n concat,\n subset,\n setIntersect,\n setSymDifference,\n Index\n } = _ref;\n /**\n * Create the union of two (multi)sets.\n * Multi-dimension arrays will be converted to single-dimension arrays before the operation.\n *\n * Syntax:\n *\n * math.setUnion(set1, set2)\n *\n * Examples:\n *\n * math.setUnion([1, 2, 3, 4], [3, 4, 5, 6]) // returns [1, 2, 3, 4, 5, 6]\n * math.setUnion([[1, 2], [3, 4]], [[3, 4], [5, 6]]) // returns [1, 2, 3, 4, 5, 6]\n *\n * See also:\n *\n * setIntersect, setDifference\n *\n * @param {Array | Matrix} a1 A (multi)set\n * @param {Array | Matrix} a2 A (multi)set\n * @return {Array | Matrix} The union of two (multi)sets\n */\n return typed(name, {\n 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {\n if (subset(size(a1), new Index(0)) === 0) {\n // if any of them is empty, return the other one\n return flatten(a2);\n } else if (subset(size(a2), new Index(0)) === 0) {\n return flatten(a1);\n }\n var b1 = flatten(a1);\n var b2 = flatten(a2);\n return concat(setSymDifference(b1, b2), setIntersect(b1, b2));\n }\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","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","import { factory } from '../../utils/factory.js';\nvar name = 'catalan';\nvar dependencies = ['typed', 'addScalar', 'divideScalar', 'multiplyScalar', 'combinations', 'isNegative', 'isInteger'];\nexport var createCatalan = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n addScalar,\n divideScalar,\n multiplyScalar,\n combinations,\n isNegative,\n isInteger\n } = _ref;\n /**\n * The Catalan Numbers enumerate combinatorial structures of many different types.\n * catalan only takes integer arguments.\n * The following condition must be enforced: n >= 0\n *\n * Syntax:\n *\n * math.catalan(n)\n *\n * Examples:\n *\n * math.catalan(3) // returns 5\n * math.catalan(8) // returns 1430\n *\n * See also:\n *\n * bellNumbers\n *\n * @param {Number | BigNumber} n nth Catalan number\n * @return {Number | BigNumber} Cn(n)\n */\n return typed(name, {\n 'number | BigNumber': function numberBigNumber(n) {\n if (!isInteger(n) || isNegative(n)) {\n throw new TypeError('Non-negative integer value expected in function catalan');\n }\n return divideScalar(combinations(multiplyScalar(n, 2), n), addScalar(n, 1));\n }\n });\n});","import { isMatrix } from '../../utils/is.js';\nimport { isInteger } from '../../utils/number.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'partitionSelect';\nvar dependencies = ['typed', 'isNumeric', 'isNaN', 'compare'];\nexport var createPartitionSelect = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n isNumeric,\n isNaN,\n compare\n } = _ref;\n var asc = compare;\n var desc = (a, b) => -compare(a, b);\n\n /**\n * Partition-based selection of an array or 1D matrix.\n * Will find the kth smallest value, and mutates the input array.\n * Uses Quickselect.\n *\n * Syntax:\n *\n * math.partitionSelect(x, k)\n * math.partitionSelect(x, k, compare)\n *\n * Examples:\n *\n * math.partitionSelect([5, 10, 1], 2) // returns 10\n * math.partitionSelect(['C', 'B', 'A', 'D'], 1, math.compareText) // returns 'B'\n *\n * function sortByLength (a, b) {\n * return a.length - b.length\n * }\n * math.partitionSelect(['Langdon', 'Tom', 'Sara'], 2, sortByLength) // returns 'Langdon'\n *\n * // the input array is mutated\n * arr = [5, 2, 1]\n * math.partitionSelect(arr, 0) // returns 1, arr is now: [1, 2, 5]\n * math.partitionSelect(arr, 1, 'desc') // returns 2, arr is now: [5, 2, 1]\n *\n * See also:\n *\n * sort\n *\n * @param {Matrix | Array} x A one dimensional matrix or array to sort\n * @param {Number} k The kth smallest value to be retrieved zero-based index\n * @param {Function | 'asc' | 'desc'} [compare='asc']\n * An optional comparator function. The function is called as\n * `compare(a, b)`, and must return 1 when a > b, -1 when a < b,\n * and 0 when a == b.\n * @return {*} Returns the kth lowest value.\n */\n return typed(name, {\n 'Array | Matrix, number': function ArrayMatrixNumber(x, k) {\n return _partitionSelect(x, k, asc);\n },\n 'Array | Matrix, number, string': function ArrayMatrixNumberString(x, k, compare) {\n if (compare === 'asc') {\n return _partitionSelect(x, k, asc);\n } else if (compare === 'desc') {\n return _partitionSelect(x, k, desc);\n } else {\n throw new Error('Compare string must be \"asc\" or \"desc\"');\n }\n },\n 'Array | Matrix, number, function': _partitionSelect\n });\n function _partitionSelect(x, k, compare) {\n if (!isInteger(k) || k < 0) {\n throw new Error('k must be a non-negative integer');\n }\n if (isMatrix(x)) {\n var size = x.size();\n if (size.length > 1) {\n throw new Error('Only one dimensional matrices supported');\n }\n return quickSelect(x.valueOf(), k, compare);\n }\n if (Array.isArray(x)) {\n return quickSelect(x, k, compare);\n }\n }\n\n /**\n * Quickselect algorithm.\n * Code adapted from:\n * https://blog.teamleadnet.com/2012/07/quick-select-algorithm-find-kth-element.html\n *\n * @param {Array} arr\n * @param {Number} k\n * @param {Function} compare\n * @private\n */\n function quickSelect(arr, k, compare) {\n if (k >= arr.length) {\n throw new Error('k out of bounds');\n }\n\n // check for NaN values since these can cause an infinite while loop\n for (var i = 0; i < arr.length; i++) {\n if (isNumeric(arr[i]) && isNaN(arr[i])) {\n return arr[i]; // return NaN\n }\n }\n\n var from = 0;\n var to = arr.length - 1;\n\n // if from == to we reached the kth element\n while (from < to) {\n var r = from;\n var w = to;\n var pivot = arr[Math.floor(Math.random() * (to - from + 1)) + from];\n\n // stop if the reader and writer meets\n while (r < w) {\n // arr[r] >= pivot\n if (compare(arr[r], pivot) >= 0) {\n // put the large values at the end\n var tmp = arr[w];\n arr[w] = arr[r];\n arr[r] = tmp;\n --w;\n } else {\n // the value is smaller than the pivot, skip\n ++r;\n }\n }\n\n // if we stepped up (r++) we need to step one down (arr[r] > pivot)\n if (compare(arr[r], pivot) > 0) {\n --r;\n }\n\n // the r pointer is on the end of the first k elements\n if (k <= r) {\n to = r;\n } else {\n from = r + 1;\n }\n }\n return arr[k];\n }\n});","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","import { isArray, isBigNumber, isCollection, isIndex, isMatrix, isNumber, isString, typeOf } from '../../utils/is.js';\nimport { arraySize, getArrayDataType, processSizesWildcard, reshape, resize, unsqueeze, validate, validateIndex, broadcastTo } from '../../utils/array.js';\nimport { format } from '../../utils/string.js';\nimport { isInteger } from '../../utils/number.js';\nimport { clone, deepStrictEqual } from '../../utils/object.js';\nimport { DimensionError } from '../../error/DimensionError.js';\nimport { factory } from '../../utils/factory.js';\nimport { maxArgumentCount } from '../../utils/function.js';\nvar name = 'DenseMatrix';\nvar dependencies = ['Matrix'];\nexport var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n Matrix\n } = _ref;\n /**\n * Dense Matrix implementation. A regular, dense matrix, supporting multi-dimensional matrices. This is the default matrix type.\n * @class DenseMatrix\n * @enum {{ value, index: number[] }}\n */\n function DenseMatrix(data, datatype) {\n if (!(this instanceof DenseMatrix)) {\n throw new SyntaxError('Constructor must be called with the new operator');\n }\n if (datatype && !isString(datatype)) {\n throw new Error('Invalid datatype: ' + datatype);\n }\n if (isMatrix(data)) {\n // check data is a DenseMatrix\n if (data.type === 'DenseMatrix') {\n // clone data & size\n this._data = clone(data._data);\n this._size = clone(data._size);\n this._datatype = datatype || data._datatype;\n } else {\n // build data from existing matrix\n this._data = data.toArray();\n this._size = data.size();\n this._datatype = datatype || data._datatype;\n }\n } else if (data && isArray(data.data) && isArray(data.size)) {\n // initialize fields from JSON representation\n this._data = data.data;\n this._size = data.size;\n // verify the dimensions of the array\n validate(this._data, this._size);\n this._datatype = datatype || data.datatype;\n } else if (isArray(data)) {\n // replace nested Matrices with Arrays\n this._data = preprocess(data);\n // get the dimensions of the array\n this._size = arraySize(this._data);\n // verify the dimensions of the array, TODO: compute size while processing array\n validate(this._data, this._size);\n // data type unknown\n this._datatype = datatype;\n } else if (data) {\n // unsupported type\n throw new TypeError('Unsupported type of data (' + typeOf(data) + ')');\n } else {\n // nothing provided\n this._data = [];\n this._size = [0];\n this._datatype = datatype;\n }\n }\n DenseMatrix.prototype = new Matrix();\n\n /**\n * Create a new DenseMatrix\n */\n DenseMatrix.prototype.createDenseMatrix = function (data, datatype) {\n return new DenseMatrix(data, datatype);\n };\n\n /**\n * Attach type information\n */\n Object.defineProperty(DenseMatrix, 'name', {\n value: 'DenseMatrix'\n });\n DenseMatrix.prototype.constructor = DenseMatrix;\n DenseMatrix.prototype.type = 'DenseMatrix';\n DenseMatrix.prototype.isDenseMatrix = true;\n\n /**\n * Get the matrix type\n *\n * Usage:\n * const matrixType = matrix.getDataType() // retrieves the matrix type\n *\n * @memberOf DenseMatrix\n * @return {string} type information; if multiple types are found from the Matrix, it will return \"mixed\"\n */\n DenseMatrix.prototype.getDataType = function () {\n return getArrayDataType(this._data, typeOf);\n };\n\n /**\n * Get the storage format used by the matrix.\n *\n * Usage:\n * const format = matrix.storage() // retrieve storage format\n *\n * @memberof DenseMatrix\n * @return {string} The storage format.\n */\n DenseMatrix.prototype.storage = function () {\n return 'dense';\n };\n\n /**\n * Get the datatype of the data stored in the matrix.\n *\n * Usage:\n * const format = matrix.datatype() // retrieve matrix datatype\n *\n * @memberof DenseMatrix\n * @return {string} The datatype.\n */\n DenseMatrix.prototype.datatype = function () {\n return this._datatype;\n };\n\n /**\n * Create a new DenseMatrix\n * @memberof DenseMatrix\n * @param {Array} data\n * @param {string} [datatype]\n */\n DenseMatrix.prototype.create = function (data, datatype) {\n return new DenseMatrix(data, datatype);\n };\n\n /**\n * Get a subset of the matrix, or replace a subset of the matrix.\n *\n * Usage:\n * const subset = matrix.subset(index) // retrieve subset\n * const value = matrix.subset(index, replacement) // replace subset\n *\n * @memberof DenseMatrix\n * @param {Index} index\n * @param {Array | Matrix | *} [replacement]\n * @param {*} [defaultValue=0] Default value, filled in on new entries when\n * the matrix is resized. If not provided,\n * new matrix elements will be filled with zeros.\n */\n DenseMatrix.prototype.subset = function (index, replacement, defaultValue) {\n switch (arguments.length) {\n case 1:\n return _get(this, index);\n\n // intentional fall through\n case 2:\n case 3:\n return _set(this, index, replacement, defaultValue);\n default:\n throw new SyntaxError('Wrong number of arguments');\n }\n };\n\n /**\n * Get a single element from the matrix.\n * @memberof DenseMatrix\n * @param {number[]} index Zero-based index\n * @return {*} value\n */\n DenseMatrix.prototype.get = function (index) {\n if (!isArray(index)) {\n throw new TypeError('Array expected');\n }\n if (index.length !== this._size.length) {\n throw new DimensionError(index.length, this._size.length);\n }\n\n // check index\n for (var x = 0; x < index.length; x++) {\n validateIndex(index[x], this._size[x]);\n }\n var data = this._data;\n for (var i = 0, ii = index.length; i < ii; i++) {\n var indexI = index[i];\n validateIndex(indexI, data.length);\n data = data[indexI];\n }\n return data;\n };\n\n /**\n * Replace a single element in the matrix.\n * @memberof DenseMatrix\n * @param {number[]} index Zero-based index\n * @param {*} value\n * @param {*} [defaultValue] Default value, filled in on new entries when\n * the matrix is resized. If not provided,\n * new matrix elements will be left undefined.\n * @return {DenseMatrix} self\n */\n DenseMatrix.prototype.set = function (index, value, defaultValue) {\n if (!isArray(index)) {\n throw new TypeError('Array expected');\n }\n if (index.length < this._size.length) {\n throw new DimensionError(index.length, this._size.length, '<');\n }\n var i, ii, indexI;\n\n // enlarge matrix when needed\n var size = index.map(function (i) {\n return i + 1;\n });\n _fit(this, size, defaultValue);\n\n // traverse over the dimensions\n var data = this._data;\n for (i = 0, ii = index.length - 1; i < ii; i++) {\n indexI = index[i];\n validateIndex(indexI, data.length);\n data = data[indexI];\n }\n\n // set new value\n indexI = index[index.length - 1];\n validateIndex(indexI, data.length);\n data[indexI] = value;\n return this;\n };\n\n /**\n * Get a submatrix of this matrix\n * @memberof DenseMatrix\n * @param {DenseMatrix} matrix\n * @param {Index} index Zero-based index\n * @private\n */\n function _get(matrix, index) {\n if (!isIndex(index)) {\n throw new TypeError('Invalid index');\n }\n var isScalar = index.isScalar();\n if (isScalar) {\n // return a scalar\n return matrix.get(index.min());\n } else {\n // validate dimensions\n var size = index.size();\n if (size.length !== matrix._size.length) {\n throw new DimensionError(size.length, matrix._size.length);\n }\n\n // validate if any of the ranges in the index is out of range\n var min = index.min();\n var max = index.max();\n for (var i = 0, ii = matrix._size.length; i < ii; i++) {\n validateIndex(min[i], matrix._size[i]);\n validateIndex(max[i], matrix._size[i]);\n }\n\n // retrieve submatrix\n // TODO: more efficient when creating an empty matrix and setting _data and _size manually\n return new DenseMatrix(_getSubmatrix(matrix._data, index, size.length, 0), matrix._datatype);\n }\n }\n\n /**\n * Recursively get a submatrix of a multi dimensional matrix.\n * Index is not checked for correct number or length of dimensions.\n * @memberof DenseMatrix\n * @param {Array} data\n * @param {Index} index\n * @param {number} dims Total number of dimensions\n * @param {number} dim Current dimension\n * @return {Array} submatrix\n * @private\n */\n function _getSubmatrix(data, index, dims, dim) {\n var last = dim === dims - 1;\n var range = index.dimension(dim);\n if (last) {\n return range.map(function (i) {\n validateIndex(i, data.length);\n return data[i];\n }).valueOf();\n } else {\n return range.map(function (i) {\n validateIndex(i, data.length);\n var child = data[i];\n return _getSubmatrix(child, index, dims, dim + 1);\n }).valueOf();\n }\n }\n\n /**\n * Replace a submatrix in this matrix\n * Indexes are zero-based.\n * @memberof DenseMatrix\n * @param {DenseMatrix} matrix\n * @param {Index} index\n * @param {DenseMatrix | Array | *} submatrix\n * @param {*} defaultValue Default value, filled in on new entries when\n * the matrix is resized.\n * @return {DenseMatrix} matrix\n * @private\n */\n function _set(matrix, index, submatrix, defaultValue) {\n if (!index || index.isIndex !== true) {\n throw new TypeError('Invalid index');\n }\n\n // get index size and check whether the index contains a single value\n var iSize = index.size();\n var isScalar = index.isScalar();\n\n // calculate the size of the submatrix, and convert it into an Array if needed\n var sSize;\n if (isMatrix(submatrix)) {\n sSize = submatrix.size();\n submatrix = submatrix.valueOf();\n } else {\n sSize = arraySize(submatrix);\n }\n if (isScalar) {\n // set a scalar\n\n // check whether submatrix is a scalar\n if (sSize.length !== 0) {\n throw new TypeError('Scalar expected');\n }\n matrix.set(index.min(), submatrix, defaultValue);\n } else {\n // set a submatrix\n\n // broadcast submatrix\n if (!deepStrictEqual(sSize, iSize)) {\n try {\n if (sSize.length === 0) {\n submatrix = broadcastTo([submatrix], iSize);\n } else {\n submatrix = broadcastTo(submatrix, iSize);\n }\n sSize = arraySize(submatrix);\n } catch (_unused) {}\n }\n\n // validate dimensions\n if (iSize.length < matrix._size.length) {\n throw new DimensionError(iSize.length, matrix._size.length, '<');\n }\n if (sSize.length < iSize.length) {\n // calculate number of missing outer dimensions\n var i = 0;\n var outer = 0;\n while (iSize[i] === 1 && sSize[i] === 1) {\n i++;\n }\n while (iSize[i] === 1) {\n outer++;\n i++;\n }\n\n // unsqueeze both outer and inner dimensions\n submatrix = unsqueeze(submatrix, iSize.length, outer, sSize);\n }\n\n // check whether the size of the submatrix matches the index size\n if (!deepStrictEqual(iSize, sSize)) {\n throw new DimensionError(iSize, sSize, '>');\n }\n\n // enlarge matrix when needed\n var size = index.max().map(function (i) {\n return i + 1;\n });\n _fit(matrix, size, defaultValue);\n\n // insert the sub matrix\n var dims = iSize.length;\n var dim = 0;\n _setSubmatrix(matrix._data, index, submatrix, dims, dim);\n }\n return matrix;\n }\n\n /**\n * Replace a submatrix of a multi dimensional matrix.\n * @memberof DenseMatrix\n * @param {Array} data\n * @param {Index} index\n * @param {Array} submatrix\n * @param {number} dims Total number of dimensions\n * @param {number} dim\n * @private\n */\n function _setSubmatrix(data, index, submatrix, dims, dim) {\n var last = dim === dims - 1;\n var range = index.dimension(dim);\n if (last) {\n range.forEach(function (dataIndex, subIndex) {\n validateIndex(dataIndex);\n data[dataIndex] = submatrix[subIndex[0]];\n });\n } else {\n range.forEach(function (dataIndex, subIndex) {\n validateIndex(dataIndex);\n _setSubmatrix(data[dataIndex], index, submatrix[subIndex[0]], dims, dim + 1);\n });\n }\n }\n\n /**\n * Resize the matrix to the given size. Returns a copy of the matrix when\n * `copy=true`, otherwise return the matrix itself (resize in place).\n *\n * @memberof DenseMatrix\n * @param {number[] || Matrix} size The new size the matrix should have.\n * @param {*} [defaultValue=0] Default value, filled in on new entries.\n * If not provided, the matrix elements will\n * be filled with zeros.\n * @param {boolean} [copy] Return a resized copy of the matrix\n *\n * @return {Matrix} The resized matrix\n */\n DenseMatrix.prototype.resize = function (size, defaultValue, copy) {\n // validate arguments\n if (!isCollection(size)) {\n throw new TypeError('Array or Matrix expected');\n }\n\n // SparseMatrix input is always 2d, flatten this into 1d if it's indeed a vector\n var sizeArray = size.valueOf().map(value => {\n return Array.isArray(value) && value.length === 1 ? value[0] : value;\n });\n\n // matrix to resize\n var m = copy ? this.clone() : this;\n // resize matrix\n return _resize(m, sizeArray, defaultValue);\n };\n function _resize(matrix, size, defaultValue) {\n // check size\n if (size.length === 0) {\n // first value in matrix\n var v = matrix._data;\n // go deep\n while (isArray(v)) {\n v = v[0];\n }\n return v;\n }\n // resize matrix\n matrix._size = size.slice(0); // copy the array\n matrix._data = resize(matrix._data, matrix._size, defaultValue);\n // return matrix\n return matrix;\n }\n\n /**\n * Reshape the matrix to the given size. Returns a copy of the matrix when\n * `copy=true`, otherwise return the matrix itself (reshape in place).\n *\n * NOTE: This might be better suited to copy by default, instead of modifying\n * in place. For now, it operates in place to remain consistent with\n * resize().\n *\n * @memberof DenseMatrix\n * @param {number[]} size The new size the matrix should have.\n * @param {boolean} [copy] Return a reshaped copy of the matrix\n *\n * @return {Matrix} The reshaped matrix\n */\n DenseMatrix.prototype.reshape = function (size, copy) {\n var m = copy ? this.clone() : this;\n m._data = reshape(m._data, size);\n var currentLength = m._size.reduce((length, size) => length * size);\n m._size = processSizesWildcard(size, currentLength);\n return m;\n };\n\n /**\n * Enlarge the matrix when it is smaller than given size.\n * If the matrix is larger or equal sized, nothing is done.\n * @memberof DenseMatrix\n * @param {DenseMatrix} matrix The matrix to be resized\n * @param {number[]} size\n * @param {*} defaultValue Default value, filled in on new entries.\n * @private\n */\n function _fit(matrix, size, defaultValue) {\n var\n // copy the array\n newSize = matrix._size.slice(0);\n var changed = false;\n\n // add dimensions when needed\n while (newSize.length < size.length) {\n newSize.push(0);\n changed = true;\n }\n\n // enlarge size when needed\n for (var i = 0, ii = size.length; i < ii; i++) {\n if (size[i] > newSize[i]) {\n newSize[i] = size[i];\n changed = true;\n }\n }\n if (changed) {\n // resize only when size is changed\n _resize(matrix, newSize, defaultValue);\n }\n }\n\n /**\n * Create a clone of the matrix\n * @memberof DenseMatrix\n * @return {DenseMatrix} clone\n */\n DenseMatrix.prototype.clone = function () {\n var m = new DenseMatrix({\n data: clone(this._data),\n size: clone(this._size),\n datatype: this._datatype\n });\n return m;\n };\n\n /**\n * Retrieve the size of the matrix.\n * @memberof DenseMatrix\n * @returns {number[]} size\n */\n DenseMatrix.prototype.size = function () {\n return this._size.slice(0); // return a clone of _size\n };\n\n /**\n * Create a new matrix with the results of the callback function executed on\n * each entry of the matrix.\n * @memberof DenseMatrix\n * @param {Function} callback The callback function is invoked with three\n * parameters: the value of the element, the index\n * of the element, and the Matrix being traversed.\n *\n * @return {DenseMatrix} matrix\n */\n DenseMatrix.prototype.map = function (callback) {\n // matrix instance\n var me = this;\n var args = maxArgumentCount(callback);\n var recurse = function recurse(value, index) {\n if (isArray(value)) {\n return value.map(function (child, i) {\n return recurse(child, index.concat(i));\n });\n } else {\n // invoke the callback function with the right number of arguments\n if (args === 1) {\n return callback(value);\n } else if (args === 2) {\n return callback(value, index);\n } else {\n // 3 or -1\n return callback(value, index, me);\n }\n }\n };\n\n // determine the new datatype when the original matrix has datatype defined\n // TODO: should be done in matrix constructor instead\n var data = recurse(this._data, []);\n var datatype = this._datatype !== undefined ? getArrayDataType(data, typeOf) : undefined;\n return new DenseMatrix(data, datatype);\n };\n\n /**\n * Execute a callback function on each entry of the matrix.\n * @memberof DenseMatrix\n * @param {Function} callback The callback function is invoked with three\n * parameters: the value of the element, the index\n * of the element, and the Matrix being traversed.\n */\n DenseMatrix.prototype.forEach = function (callback) {\n // matrix instance\n var me = this;\n var recurse = function recurse(value, index) {\n if (isArray(value)) {\n value.forEach(function (child, i) {\n recurse(child, index.concat(i));\n });\n } else {\n callback(value, index, me);\n }\n };\n recurse(this._data, []);\n };\n\n /**\n * Iterate over the matrix elements\n * @return {Iterable<{ value, index: number[] }>}\n */\n DenseMatrix.prototype[Symbol.iterator] = function* () {\n var recurse = function* recurse(value, index) {\n if (isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n yield* recurse(value[i], index.concat(i));\n }\n } else {\n yield {\n value,\n index\n };\n }\n };\n yield* recurse(this._data, []);\n };\n\n /**\n * Returns an array containing the rows of a 2D matrix\n * @returns {Array}\n */\n DenseMatrix.prototype.rows = function () {\n var result = [];\n var s = this.size();\n if (s.length !== 2) {\n throw new TypeError('Rows can only be returned for a 2D matrix.');\n }\n var data = this._data;\n for (var row of data) {\n result.push(new DenseMatrix([row], this._datatype));\n }\n return result;\n };\n\n /**\n * Returns an array containing the columns of a 2D matrix\n * @returns {Array}\n */\n DenseMatrix.prototype.columns = function () {\n var _this = this;\n var result = [];\n var s = this.size();\n if (s.length !== 2) {\n throw new TypeError('Rows can only be returned for a 2D matrix.');\n }\n var data = this._data;\n var _loop = function _loop(i) {\n var col = data.map(row => [row[i]]);\n result.push(new DenseMatrix(col, _this._datatype));\n };\n for (var i = 0; i < s[1]; i++) {\n _loop(i);\n }\n return result;\n };\n\n /**\n * Create an Array with a copy of the data of the DenseMatrix\n * @memberof DenseMatrix\n * @returns {Array} array\n */\n DenseMatrix.prototype.toArray = function () {\n return clone(this._data);\n };\n\n /**\n * Get the primitive value of the DenseMatrix: a multidimensional array\n * @memberof DenseMatrix\n * @returns {Array} array\n */\n DenseMatrix.prototype.valueOf = function () {\n return this._data;\n };\n\n /**\n * Get a string representation of the matrix, with optional formatting options.\n * @memberof DenseMatrix\n * @param {Object | number | Function} [options] Formatting options. See\n * lib/utils/number:format for a\n * description of the available\n * options.\n * @returns {string} str\n */\n DenseMatrix.prototype.format = function (options) {\n return format(this._data, options);\n };\n\n /**\n * Get a string representation of the matrix\n * @memberof DenseMatrix\n * @returns {string} str\n */\n DenseMatrix.prototype.toString = function () {\n return format(this._data);\n };\n\n /**\n * Get a JSON representation of the matrix\n * @memberof DenseMatrix\n * @returns {Object}\n */\n DenseMatrix.prototype.toJSON = function () {\n return {\n mathjs: 'DenseMatrix',\n data: this._data,\n size: this._size,\n datatype: this._datatype\n };\n };\n\n /**\n * Get the kth Matrix diagonal.\n *\n * @memberof DenseMatrix\n * @param {number | BigNumber} [k=0] The kth diagonal where the vector will retrieved.\n *\n * @returns {Matrix} The matrix with the diagonal values.\n */\n DenseMatrix.prototype.diagonal = function (k) {\n // validate k if any\n if (k) {\n // convert BigNumber to a number\n if (isBigNumber(k)) {\n k = k.toNumber();\n }\n // is must be an integer\n if (!isNumber(k) || !isInteger(k)) {\n throw new TypeError('The parameter k must be an integer number');\n }\n } else {\n // default value\n k = 0;\n }\n var kSuper = k > 0 ? k : 0;\n var kSub = k < 0 ? -k : 0;\n\n // rows & columns\n var rows = this._size[0];\n var columns = this._size[1];\n\n // number diagonal values\n var n = Math.min(rows - kSub, columns - kSuper);\n\n // x is a matrix get diagonal from matrix\n var data = [];\n\n // loop rows\n for (var i = 0; i < n; i++) {\n data[i] = this._data[i + kSub][i + kSuper];\n }\n\n // create DenseMatrix\n return new DenseMatrix({\n data,\n size: [n],\n datatype: this._datatype\n });\n };\n\n /**\n * Create a diagonal matrix.\n *\n * @memberof DenseMatrix\n * @param {Array} size The matrix size.\n * @param {number | Matrix | Array } value The values for the diagonal.\n * @param {number | BigNumber} [k=0] The kth diagonal where the vector will be filled in.\n * @param {number} [defaultValue] The default value for non-diagonal\n * @param {string} [datatype] The datatype for the diagonal\n *\n * @returns {DenseMatrix}\n */\n DenseMatrix.diagonal = function (size, value, k, defaultValue) {\n if (!isArray(size)) {\n throw new TypeError('Array expected, size parameter');\n }\n if (size.length !== 2) {\n throw new Error('Only two dimensions matrix are supported');\n }\n\n // map size & validate\n size = size.map(function (s) {\n // check it is a big number\n if (isBigNumber(s)) {\n // convert it\n s = s.toNumber();\n }\n // validate arguments\n if (!isNumber(s) || !isInteger(s) || s < 1) {\n throw new Error('Size values must be positive integers');\n }\n return s;\n });\n\n // validate k if any\n if (k) {\n // convert BigNumber to a number\n if (isBigNumber(k)) {\n k = k.toNumber();\n }\n // is must be an integer\n if (!isNumber(k) || !isInteger(k)) {\n throw new TypeError('The parameter k must be an integer number');\n }\n } else {\n // default value\n k = 0;\n }\n var kSuper = k > 0 ? k : 0;\n var kSub = k < 0 ? -k : 0;\n\n // rows and columns\n var rows = size[0];\n var columns = size[1];\n\n // number of non-zero items\n var n = Math.min(rows - kSub, columns - kSuper);\n\n // value extraction function\n var _value;\n\n // check value\n if (isArray(value)) {\n // validate array\n if (value.length !== n) {\n // number of values in array must be n\n throw new Error('Invalid value array length');\n }\n // define function\n _value = function _value(i) {\n // return value @ i\n return value[i];\n };\n } else if (isMatrix(value)) {\n // matrix size\n var ms = value.size();\n // validate matrix\n if (ms.length !== 1 || ms[0] !== n) {\n // number of values in array must be n\n throw new Error('Invalid matrix length');\n }\n // define function\n _value = function _value(i) {\n // return value @ i\n return value.get([i]);\n };\n } else {\n // define function\n _value = function _value() {\n // return value\n return value;\n };\n }\n\n // discover default value if needed\n if (!defaultValue) {\n // check first value in array\n defaultValue = isBigNumber(_value(0)) ? _value(0).mul(0) // trick to create a BigNumber with value zero\n : 0;\n }\n\n // empty array\n var data = [];\n\n // check we need to resize array\n if (size.length > 0) {\n // resize array\n data = resize(data, size, defaultValue);\n // fill diagonal\n for (var d = 0; d < n; d++) {\n data[d + kSub][d + kSuper] = _value(d);\n }\n }\n\n // create DenseMatrix\n return new DenseMatrix({\n data,\n size: [rows, columns]\n });\n };\n\n /**\n * Generate a matrix from a JSON object\n * @memberof DenseMatrix\n * @param {Object} json An object structured like\n * `{\"mathjs\": \"DenseMatrix\", data: [], size: []}`,\n * where mathjs is optional\n * @returns {DenseMatrix}\n */\n DenseMatrix.fromJSON = function (json) {\n return new DenseMatrix(json);\n };\n\n /**\n * Swap rows i and j in Matrix.\n *\n * @memberof DenseMatrix\n * @param {number} i Matrix row index 1\n * @param {number} j Matrix row index 2\n *\n * @return {Matrix} The matrix reference\n */\n DenseMatrix.prototype.swapRows = function (i, j) {\n // check index\n if (!isNumber(i) || !isInteger(i) || !isNumber(j) || !isInteger(j)) {\n throw new Error('Row index must be positive integers');\n }\n // check dimensions\n if (this._size.length !== 2) {\n throw new Error('Only two dimensional matrix is supported');\n }\n // validate index\n validateIndex(i, this._size[0]);\n validateIndex(j, this._size[0]);\n\n // swap rows\n DenseMatrix._swapRows(i, j, this._data);\n // return current instance\n return this;\n };\n\n /**\n * Swap rows i and j in Dense Matrix data structure.\n *\n * @param {number} i Matrix row index 1\n * @param {number} j Matrix row index 2\n * @param {Array} data Matrix data\n */\n DenseMatrix._swapRows = function (i, j, data) {\n // swap values i <-> j\n var vi = data[i];\n data[i] = data[j];\n data[j] = vi;\n };\n\n /**\n * Preprocess data, which can be an Array or DenseMatrix with nested Arrays and\n * Matrices. Clones all (nested) Arrays, and replaces all nested Matrices with Arrays\n * @memberof DenseMatrix\n * @param {Array | Matrix} data\n * @return {Array} data\n */\n function preprocess(data) {\n if (isMatrix(data)) {\n return preprocess(data.valueOf());\n }\n if (isArray(data)) {\n return data.map(preprocess);\n }\n return data;\n }\n return DenseMatrix;\n}, {\n isClass: true\n});","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","import { factory } from '../../utils/factory.js';\nimport { expNumber } from '../../plain/number/index.js';\nvar name = 'exp';\nvar dependencies = ['typed'];\nexport var createExp = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed\n } = _ref;\n /**\n * Calculate the exponential of a value.\n * For matrices, if you want the matrix exponential of square matrix, use\n * the `expm` function; if you want to take the exponential of each element,\n * see the examples.\n *\n * Syntax:\n *\n * math.exp(x)\n *\n * Examples:\n *\n * math.exp(2) // returns number 7.3890560989306495\n * math.pow(math.e, 2) // returns number 7.3890560989306495\n * math.log(math.exp(2)) // returns number 2\n *\n * math.map([1, 2, 3], math.exp)\n * // returns Array [\n * // 2.718281828459045,\n * // 7.3890560989306495,\n * // 20.085536923187668\n * // ]\n *\n * See also:\n *\n * expm1, expm, log, pow\n *\n * @param {number | BigNumber | Complex} x A number to exponentiate\n * @return {number | BigNumber | Complex} Exponential of `x`\n */\n return typed(name, {\n number: expNumber,\n Complex: function Complex(x) {\n return x.exp();\n },\n BigNumber: function BigNumber(x) {\n return x.exp();\n }\n });\n});","import lottie from 'lottie-web';\n\n//\n\nvar script = {\n props: {\n animationData: { type: [Object, String], required: true },\n loop: { type: [Boolean, Number], default: false },\n autoPlay: { type: Boolean, default: true },\n renderer: { type: String, default: 'svg' },\n speed: { type: Number, default: 1 },\n }, \n data: function data() {\n return {\n anim: null\n }\n },\n mounted: function mounted() {\n this.init();\n },\n beforeDestroy: function beforeDestroy() {\n if (this.anim) \n { this.anim.destroy(); }\n },\n methods: {\n init: function init() {\n var this$1 = this;\n\n var settings = {\n container: this.$refs.animation,\n renderer: this.renderer,\n loop: this.loop,\n autoplay: this.autoPlay,\n animationData: this.animationData\n };\n\n this.anim = lottie.loadAnimation(settings);\n\n this.anim.addEventListener('loopComplete', function () {\n this$1.$emit('loopComplete', this$1.anim);\n });\n this.anim.addEventListener('complete', function () {\n this$1.$emit('complete', this$1.anim);\n });\n this.anim.addEventListener('enterFrame', function () {\n this$1.$emit('enterFrame', this$1.anim);\n });\n },\n play: function play() {\n if(this.anim)\n { this.anim.play(); }\n },\n stop: function stop() {\n if(this.anim)\n { this.anim.stop(); }\n },\n pause: function pause() {\n if(this.anim)\n { this.anim.pause(); }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n var options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n var hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n var originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n var existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { ref: \"animation\" })\n};\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n\n /* style */\n var __vue_inject_styles__ = undefined;\n /* scoped */\n var __vue_scope_id__ = undefined;\n /* module identifier */\n var __vue_module_identifier__ = undefined;\n /* functional template */\n var __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__ = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\n// Declare install function executed by Vue.use()\nfunction install(Vue) {\n\tif (install.installed) { return; }\n\tinstall.installed = true;\n\tVue.component('LottieWebVue', __vue_component__);\n}\n\n// Create module definition for Vue.use()\nvar plugin = {\n\tinstall: install,\n};\n\n// Auto-install when vue is found (eg. in browser via \r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banco.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Banco.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Banco.vue?vue&type=template&id=2996c4f4\"\nimport script from \"./Banco.vue?vue&type=script&lang=js\"\nexport * from \"./Banco.vue?vue&type=script&lang=js\"\nimport style0 from \"./Banco.vue?vue&type=style&index=0&id=2996c4f4&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { ap as ap_ } from './Apply';\nimport * as E from './Either';\nimport { flow, pipe } from './function';\nimport { map as map_ } from './Functor';\nexport function right(F) {\n return flow(E.right, F.of);\n}\nexport function left(F) {\n return flow(E.left, F.of);\n}\nexport function rightF(F) {\n return function (fa) { return F.map(fa, E.right); };\n}\nexport function leftF(F) {\n return function (fe) { return F.map(fe, E.left); };\n}\nexport function fromNullable(F) {\n return function (e) { return flow(E.fromNullable(e), F.of); };\n}\nexport function fromNullableK(F) {\n var fromNullableF = fromNullable(F);\n return function (e) {\n var fromNullableFE = fromNullableF(e);\n return function (f) { return flow(f, fromNullableFE); };\n };\n}\nexport function chainNullableK(M) {\n var chainM = chain(M);\n var fromNullableKM = fromNullableK(M);\n return function (e) {\n var fromNullableKMe = fromNullableKM(e);\n return function (f) { return chainM(fromNullableKMe(f)); };\n };\n}\nexport function map(F) {\n return map_(F, E.Functor);\n}\nexport function ap(F) {\n return ap_(F, E.Apply);\n}\nexport function chain(M) {\n var flatMapM = flatMap(M);\n return function (f) { return function (ma) { return flatMapM(ma, f); }; };\n}\n/** @internal */\nexport function flatMap(M) {\n return function (ma, f) { return M.chain(ma, function (e) { return (E.isLeft(e) ? M.of(e) : f(e.right)); }); };\n}\nexport function alt(M) {\n return function (second) { return function (first) { return M.chain(first, function (e) { return (E.isLeft(e) ? second() : M.of(e)); }); }; };\n}\nexport function bimap(F) {\n var mapBothF = mapBoth(F);\n return function (f, g) { return function (self) { return mapBothF(self, f, g); }; };\n}\n/** @internal */\nexport function mapBoth(F) {\n return function (self, f, g) { return F.map(self, E.bimap(f, g)); };\n}\nexport function mapLeft(F) {\n var mapErrorF = mapError(F);\n return function (f) { return function (self) { return mapErrorF(self, f); }; };\n}\n/** @internal */\nexport function mapError(F) {\n return function (self, f) { return F.map(self, E.mapLeft(f)); };\n}\nexport function altValidation(M, S) {\n return function (second) { return function (first) {\n return M.chain(first, E.match(function (e1) {\n return M.map(second(), E.mapLeft(function (e2) { return S.concat(e1, e2); }));\n }, right(M)));\n }; };\n}\nexport function match(F) {\n return function (onLeft, onRight) { return function (ma) { return F.map(ma, E.match(onLeft, onRight)); }; };\n}\nexport function matchE(M) {\n return function (onLeft, onRight) { return function (ma) { return M.chain(ma, E.match(onLeft, onRight)); }; };\n}\nexport function getOrElse(M) {\n return function (onLeft) { return function (ma) { return M.chain(ma, E.match(onLeft, M.of)); }; };\n}\nexport function orElse(M) {\n return function (onLeft) { return function (ma) { return M.chain(ma, function (e) { return (E.isLeft(e) ? onLeft(e.left) : M.of(e)); }); }; };\n}\nexport function orElseFirst(M) {\n var tapErrorM = tapError(M);\n return function (onLeft) { return function (ma) { return tapErrorM(ma, onLeft); }; };\n}\n/** @internal */\nexport function tapError(M) {\n var orElseM = orElse(M);\n return function (ma, onLeft) {\n return pipe(ma, orElseM(function (e) { return M.map(onLeft(e), function (eb) { return (E.isLeft(eb) ? eb : E.left(e)); }); }));\n };\n}\nexport function orLeft(M) {\n return function (onLeft) { return function (ma) {\n return M.chain(ma, E.match(function (e) { return M.map(onLeft(e), E.left); }, function (a) { return M.of(E.right(a)); }));\n }; };\n}\nexport function swap(F) {\n return function (ma) { return F.map(ma, E.swap); };\n}\nexport function toUnion(F) {\n return function (fa) { return F.map(fa, E.toUnion); };\n}\n/** @deprecated */\n/* istanbul ignore next */\nexport function getEitherM(M) {\n var _ap = ap(M);\n var _map = map(M);\n var _chain = chain(M);\n var _alt = alt(M);\n var _bimap = bimap(M);\n var _mapLeft = mapLeft(M);\n var _fold = matchE(M);\n var _getOrElse = getOrElse(M);\n var _orElse = orElse(M);\n return {\n map: function (fa, f) { return pipe(fa, _map(f)); },\n ap: function (fab, fa) { return pipe(fab, _ap(fa)); },\n of: right(M),\n chain: function (ma, f) { return pipe(ma, _chain(f)); },\n alt: function (fa, that) { return pipe(fa, _alt(that)); },\n bimap: function (fea, f, g) { return pipe(fea, _bimap(f, g)); },\n mapLeft: function (fea, f) { return pipe(fea, _mapLeft(f)); },\n fold: function (fa, onLeft, onRight) { return pipe(fa, _fold(onLeft, onRight)); },\n getOrElse: function (fa, onLeft) { return pipe(fa, _getOrElse(onLeft)); },\n orElse: function (fa, f) { return pipe(fa, _orElse(f)); },\n swap: swap(M),\n rightM: rightF(M),\n leftM: leftF(M),\n left: left(M)\n };\n}\n","import { factory } from '../../utils/factory.js';\nimport { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nvar name = 'dotPow';\nvar dependencies = ['typed', 'equalScalar', 'matrix', 'pow', 'DenseMatrix', 'concat'];\nexport var createDotPow = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n equalScalar,\n matrix,\n pow,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo07xSSf = createMatAlgo07xSSf({\n typed,\n DenseMatrix\n });\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n var powScalarSignatures = {};\n for (var signature in pow.signatures) {\n if (Object.prototype.hasOwnProperty.call(pow.signatures, signature)) {\n if (!signature.includes('Matrix') && !signature.includes('Array')) {\n powScalarSignatures[signature] = pow.signatures[signature];\n }\n }\n }\n var powScalar = typed(powScalarSignatures);\n\n /**\n * Calculates the power of x to y element wise.\n *\n * Syntax:\n *\n * math.dotPow(x, y)\n *\n * Examples:\n *\n * math.dotPow(2, 3) // returns number 8\n *\n * const a = [[1, 2], [4, 3]]\n * math.dotPow(a, 2) // returns Array [[1, 4], [16, 9]]\n * math.pow(a, 2) // returns Array [[9, 8], [16, 17]]\n *\n * See also:\n *\n * pow, sqrt, multiply\n *\n * @param {number | BigNumber | Complex | Unit | Array | Matrix} x The base\n * @param {number | BigNumber | Complex | Unit | Array | Matrix} y The exponent\n * @return {number | BigNumber | Complex | Unit | Array | Matrix} The value of `x` to the power `y`\n */\n return typed(name, matrixAlgorithmSuite({\n elop: powScalar,\n SS: matAlgo07xSSf,\n DS: matAlgo03xDSf,\n Ss: matAlgo11xS0s,\n sS: matAlgo12xSfs\n }));\n});","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar NotBeforeError = function (message, date) {\n JsonWebTokenError.call(this, message);\n this.name = 'NotBeforeError';\n this.date = date;\n};\n\nNotBeforeError.prototype = Object.create(JsonWebTokenError.prototype);\n\nNotBeforeError.prototype.constructor = NotBeforeError;\n\nmodule.exports = NotBeforeError;","'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","import { factory } from '../../utils/factory.js';\nvar name = 'norm';\nvar dependencies = ['typed', 'abs', 'add', 'pow', 'conj', 'sqrt', 'multiply', 'equalScalar', 'larger', 'smaller', 'matrix', 'ctranspose', 'eigs'];\nexport var createNorm = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n abs,\n add,\n pow,\n conj,\n sqrt,\n multiply,\n equalScalar,\n larger,\n smaller,\n matrix,\n ctranspose,\n eigs\n } = _ref;\n /**\n * Calculate the norm of a number, vector or matrix.\n *\n * The second parameter p is optional. If not provided, it defaults to 2.\n *\n * Syntax:\n *\n * math.norm(x)\n * math.norm(x, p)\n *\n * Examples:\n *\n * math.abs(-3.5) // returns 3.5\n * math.norm(-3.5) // returns 3.5\n *\n * math.norm(math.complex(3, -4)) // returns 5\n *\n * math.norm([1, 2, -3], Infinity) // returns 3\n * math.norm([1, 2, -3], -Infinity) // returns 1\n *\n * math.norm([3, 4], 2) // returns 5\n *\n * math.norm([[1, 2], [3, 4]], 1) // returns 6\n * math.norm([[1, 2], [3, 4]], 'inf') // returns 7\n * math.norm([[1, 2], [3, 4]], 'fro') // returns 5.477225575051661\n *\n * See also:\n *\n * abs, hypot\n *\n * @param {number | BigNumber | Complex | Array | Matrix} x\n * Value for which to calculate the norm\n * @param {number | BigNumber | string} [p=2]\n * Vector space.\n * Supported numbers include Infinity and -Infinity.\n * Supported strings are: 'inf', '-inf', and 'fro' (The Frobenius norm)\n * @return {number | BigNumber} the p-norm\n */\n return typed(name, {\n number: Math.abs,\n Complex: function Complex(x) {\n return x.abs();\n },\n BigNumber: function BigNumber(x) {\n // norm(x) = abs(x)\n return x.abs();\n },\n boolean: function boolean(x) {\n // norm(x) = abs(x)\n return Math.abs(x);\n },\n Array: function Array(x) {\n return _norm(matrix(x), 2);\n },\n Matrix: function Matrix(x) {\n return _norm(x, 2);\n },\n 'Array, number | BigNumber | string': function ArrayNumberBigNumberString(x, p) {\n return _norm(matrix(x), p);\n },\n 'Matrix, number | BigNumber | string': function MatrixNumberBigNumberString(x, p) {\n return _norm(x, p);\n }\n });\n\n /**\n * Calculate the plus infinity norm for a vector\n * @param {Matrix} x\n * @returns {number} Returns the norm\n * @private\n */\n function _vectorNormPlusInfinity(x) {\n // norm(x, Infinity) = max(abs(x))\n var pinf = 0;\n // skip zeros since abs(0) === 0\n x.forEach(function (value) {\n var v = abs(value);\n if (larger(v, pinf)) {\n pinf = v;\n }\n }, true);\n return pinf;\n }\n\n /**\n * Calculate the minus infinity norm for a vector\n * @param {Matrix} x\n * @returns {number} Returns the norm\n * @private\n */\n function _vectorNormMinusInfinity(x) {\n // norm(x, -Infinity) = min(abs(x))\n var ninf;\n // skip zeros since abs(0) === 0\n x.forEach(function (value) {\n var v = abs(value);\n if (!ninf || smaller(v, ninf)) {\n ninf = v;\n }\n }, true);\n return ninf || 0;\n }\n\n /**\n * Calculate the norm for a vector\n * @param {Matrix} x\n * @param {number | string} p\n * @returns {number} Returns the norm\n * @private\n */\n function _vectorNorm(x, p) {\n // check p\n if (p === Number.POSITIVE_INFINITY || p === 'inf') {\n return _vectorNormPlusInfinity(x);\n }\n if (p === Number.NEGATIVE_INFINITY || p === '-inf') {\n return _vectorNormMinusInfinity(x);\n }\n if (p === 'fro') {\n return _norm(x, 2);\n }\n if (typeof p === 'number' && !isNaN(p)) {\n // check p != 0\n if (!equalScalar(p, 0)) {\n // norm(x, p) = sum(abs(xi) ^ p) ^ 1/p\n var n = 0;\n // skip zeros since abs(0) === 0\n x.forEach(function (value) {\n n = add(pow(abs(value), p), n);\n }, true);\n return pow(n, 1 / p);\n }\n return Number.POSITIVE_INFINITY;\n }\n // invalid parameter value\n throw new Error('Unsupported parameter value');\n }\n\n /**\n * Calculate the Frobenius norm for a matrix\n * @param {Matrix} x\n * @returns {number} Returns the norm\n * @private\n */\n function _matrixNormFrobenius(x) {\n // norm(x) = sqrt(sum(diag(x'x)))\n var fro = 0;\n x.forEach(function (value, index) {\n fro = add(fro, multiply(value, conj(value)));\n });\n return abs(sqrt(fro));\n }\n\n /**\n * Calculate the norm L1 for a matrix\n * @param {Matrix} x\n * @returns {number} Returns the norm\n * @private\n */\n function _matrixNormOne(x) {\n // norm(x) = the largest column sum\n var c = [];\n // result\n var maxc = 0;\n // skip zeros since abs(0) == 0\n x.forEach(function (value, index) {\n var j = index[1];\n var cj = add(c[j] || 0, abs(value));\n if (larger(cj, maxc)) {\n maxc = cj;\n }\n c[j] = cj;\n }, true);\n return maxc;\n }\n\n /**\n * Calculate the norm L2 for a matrix\n * @param {Matrix} x\n * @returns {number} Returns the norm\n * @private\n */\n function _matrixNormTwo(x) {\n // norm(x) = sqrt( max eigenvalue of A*.A)\n var sizeX = x.size();\n if (sizeX[0] !== sizeX[1]) {\n throw new RangeError('Invalid matrix dimensions');\n }\n var tx = ctranspose(x);\n var squaredX = multiply(tx, x);\n var eigenVals = eigs(squaredX).values.toArray();\n var rho = eigenVals[eigenVals.length - 1];\n return abs(sqrt(rho));\n }\n\n /**\n * Calculate the infinity norm for a matrix\n * @param {Matrix} x\n * @returns {number} Returns the norm\n * @private\n */\n function _matrixNormInfinity(x) {\n // norm(x) = the largest row sum\n var r = [];\n // result\n var maxr = 0;\n // skip zeros since abs(0) == 0\n x.forEach(function (value, index) {\n var i = index[0];\n var ri = add(r[i] || 0, abs(value));\n if (larger(ri, maxr)) {\n maxr = ri;\n }\n r[i] = ri;\n }, true);\n return maxr;\n }\n\n /**\n * Calculate the norm for a 2D Matrix (M*N)\n * @param {Matrix} x\n * @param {number | string} p\n * @returns {number} Returns the norm\n * @private\n */\n function _matrixNorm(x, p) {\n // check p\n if (p === 1) {\n return _matrixNormOne(x);\n }\n if (p === Number.POSITIVE_INFINITY || p === 'inf') {\n return _matrixNormInfinity(x);\n }\n if (p === 'fro') {\n return _matrixNormFrobenius(x);\n }\n if (p === 2) {\n return _matrixNormTwo(x);\n } // invalid parameter value\n\n throw new Error('Unsupported parameter value ' + p);\n }\n\n /**\n * Calculate the norm for an array\n * @param {Matrix} x\n * @param {number | string} p\n * @returns {number} Returns the norm\n * @private\n */\n function _norm(x, p) {\n // size\n var sizeX = x.size();\n\n // check if it is a vector\n if (sizeX.length === 1) {\n return _vectorNorm(x, p);\n }\n // MxN matrix\n if (sizeX.length === 2) {\n if (sizeX[0] && sizeX[1]) {\n return _matrixNorm(x, p);\n } else {\n throw new RangeError('Invalid matrix dimensions');\n }\n }\n }\n});","export function chainFirst(M) {\n var tapM = tap(M);\n return function (f) { return function (first) { return tapM(first, f); }; };\n}\n/** @internal */\nexport function tap(M) {\n return function (first, f) { return M.chain(first, function (a) { return M.map(f(a), function () { return a; }); }); };\n}\nexport function bind(M) {\n return function (name, f) { return function (ma) { return M.chain(ma, function (a) { return M.map(f(a), function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }); }); }; };\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","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight');\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var ms = require('ms');\n\nmodule.exports = function (time, iat) {\n var timestamp = iat || Math.floor(Date.now() / 1000);\n\n if (typeof time === 'string') {\n var milliseconds = ms(time);\n if (typeof milliseconds === 'undefined') {\n return;\n }\n return Math.floor(timestamp + milliseconds / 1000);\n } else if (typeof time === 'number') {\n return timestamp + time;\n } else {\n return;\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","import { factory } from '../../utils/factory.js';\nimport { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';\nimport { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';\nimport { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nvar name = 'dotDivide';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'divideScalar', 'DenseMatrix', 'concat'];\nexport var createDotDivide = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n divideScalar,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo02xDS0 = createMatAlgo02xDS0({\n typed,\n equalScalar\n });\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo07xSSf = createMatAlgo07xSSf({\n typed,\n DenseMatrix\n });\n var matAlgo11xS0s = createMatAlgo11xS0s({\n typed,\n equalScalar\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Divide two matrices element wise. The function accepts both matrices and\n * scalar values.\n *\n * Syntax:\n *\n * math.dotDivide(x, y)\n *\n * Examples:\n *\n * math.dotDivide(2, 4) // returns 0.5\n *\n * a = [[9, 5], [6, 1]]\n * b = [[3, 2], [5, 2]]\n *\n * math.dotDivide(a, b) // returns [[3, 2.5], [1.2, 0.5]]\n * math.divide(a, b) // returns [[1.75, 0.75], [-1.75, 2.25]]\n *\n * See also:\n *\n * divide, multiply, dotMultiply\n *\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x Numerator\n * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} y Denominator\n * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Quotient, `x ./ y`\n */\n return typed(name, matrixAlgorithmSuite({\n elop: divideScalar,\n SS: matAlgo07xSSf,\n DS: matAlgo03xDSf,\n SD: matAlgo02xDS0,\n Ss: matAlgo11xS0s,\n sS: matAlgo12xSfs\n }));\n});","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { isUnit, isNumber, isBigNumber } from '../../utils/is.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'solveODE';\nvar dependencies = ['typed', 'add', 'subtract', 'multiply', 'divide', 'max', 'map', 'abs', 'isPositive', 'isNegative', 'larger', 'smaller', 'matrix', 'bignumber', 'unaryMinus'];\nexport var createSolveODE = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n add,\n subtract,\n multiply,\n divide,\n max,\n map,\n abs,\n isPositive,\n isNegative,\n larger,\n smaller,\n matrix,\n bignumber,\n unaryMinus\n } = _ref;\n /**\n * Numerical Integration of Ordinary Differential Equations\n *\n * Two variable step methods are provided:\n * - \"RK23\": Bogacki–Shampine method\n * - \"RK45\": Dormand-Prince method RK5(4)7M (default)\n *\n * The arguments are expected as follows.\n *\n * - `func` should be the forcing function `f(t, y)`\n * - `tspan` should be a vector of two numbers or units `[tStart, tEnd]`\n * - `y0` the initial state values, should be a scalar or a flat array\n * - `options` should be an object with the following information:\n * - `method` ('RK45'): ['RK23', 'RK45']\n * - `tol` (1e-3): Numeric tolerance of the method, the solver keeps the error estimates less than this value\n * - `firstStep`: Initial step size\n * - `minStep`: minimum step size of the method\n * - `maxStep`: maximum step size of the method\n * - `minDelta` (0.2): minimum ratio of change for the step\n * - `maxDelta` (5): maximum ratio of change for the step\n * - `maxIter` (1e4): maximum number of iterations\n *\n * The returned value is an object with `{t, y}` please note that even though `t` means time, it can represent any other independant variable like `x`:\n * - `t` an array of size `[n]`\n * - `y` the states array can be in two ways\n * - **if `y0` is a scalar:** returns an array-like of size `[n]`\n * - **if `y0` is a flat array-like of size [m]:** returns an array like of size `[n, m]`\n *\n * Syntax:\n *\n * math.solveODE(func, tspan, y0)\n * math.solveODE(func, tspan, y0, options)\n *\n * Examples:\n *\n * function func(t, y) {return y}\n * const tspan = [0, 4]\n * const y0 = 1\n * math.solveODE(func, tspan, y0)\n * math.solveODE(func, tspan, [1, 2])\n * math.solveODE(func, tspan, y0, { method:\"RK23\", maxStep:0.1 })\n *\n * See also:\n *\n * derivative, simplifyCore\n *\n * @param {function} func The forcing function f(t,y)\n * @param {Array | Matrix} tspan The time span\n * @param {number | BigNumber | Unit | Array | Matrix} y0 The initial value\n * @param {Object} [options] Optional configuration options\n * @return {Object} Return an object with t and y values as arrays\n */\n\n function _rk(butcherTableau) {\n // generates an adaptive runge kutta method from it's butcher tableau\n\n return function (f, tspan, y0, options) {\n // adaptive runge kutta methods\n var wrongTSpan = !(tspan.length === 2 && (tspan.every(isNumOrBig) || tspan.every(isUnit)));\n if (wrongTSpan) {\n throw new Error('\"tspan\" must be an Array of two numeric values or two units [tStart, tEnd]');\n }\n var t0 = tspan[0]; // initial time\n var tf = tspan[1]; // final time\n var isForwards = larger(tf, t0);\n var firstStep = options.firstStep;\n if (firstStep !== undefined && !isPositive(firstStep)) {\n throw new Error('\"firstStep\" must be positive');\n }\n var maxStep = options.maxStep;\n if (maxStep !== undefined && !isPositive(maxStep)) {\n throw new Error('\"maxStep\" must be positive');\n }\n var minStep = options.minStep;\n if (minStep && isNegative(minStep)) {\n throw new Error('\"minStep\" must be positive or zero');\n }\n var timeVars = [t0, tf, firstStep, minStep, maxStep].filter(x => x !== undefined);\n if (!(timeVars.every(isNumOrBig) || timeVars.every(isUnit))) {\n throw new Error('Inconsistent type of \"t\" dependant variables');\n }\n var steps = 1; // divide time in this number of steps\n var tol = options.tol ? options.tol : 1e-4; // define a tolerance (must be an option)\n var minDelta = options.minDelta ? options.minDelta : 0.2;\n var maxDelta = options.maxDelta ? options.maxDelta : 5;\n var maxIter = options.maxIter ? options.maxIter : 10000; // stop inifite evaluation if something goes wrong\n var hasBigNumbers = [t0, tf, ...y0, maxStep, minStep].some(isBigNumber);\n var [a, c, b, bp] = hasBigNumbers ? [bignumber(butcherTableau.a), bignumber(butcherTableau.c), bignumber(butcherTableau.b), bignumber(butcherTableau.bp)] : [butcherTableau.a, butcherTableau.c, butcherTableau.b, butcherTableau.bp];\n var h = firstStep ? isForwards ? firstStep : unaryMinus(firstStep) : divide(subtract(tf, t0), steps); // define the first step size\n var t = [t0]; // start the time array\n var y = [y0]; // start the solution array\n\n var deltaB = subtract(b, bp); // b - bp\n\n var n = 0;\n var iter = 0;\n var ongoing = _createOngoing(isForwards);\n var trimStep = _createTrimStep(isForwards);\n // iterate unitil it reaches either the final time or maximum iterations\n while (ongoing(t[n], tf)) {\n var k = [];\n\n // trim the time step so that it doesn't overshoot\n h = trimStep(t[n], tf, h);\n\n // calculate the first value of k\n k.push(f(t[n], y[n]));\n\n // calculate the rest of the values of k\n for (var i = 1; i < c.length; ++i) {\n k.push(f(add(t[n], multiply(c[i], h)), add(y[n], multiply(h, a[i], k))));\n }\n\n // estimate the error by comparing solutions of different orders\n var TE = max(abs(map(multiply(deltaB, k), X => isUnit(X) ? X.value : X)));\n if (TE < tol && tol / TE > 1 / 4) {\n // push solution if within tol\n t.push(add(t[n], h));\n y.push(add(y[n], multiply(h, b, k)));\n n++;\n }\n\n // estimate the delta value that will affect the step size\n var delta = 0.84 * (tol / TE) ** (1 / 5);\n if (smaller(delta, minDelta)) {\n delta = minDelta;\n } else if (larger(delta, maxDelta)) {\n delta = maxDelta;\n }\n delta = hasBigNumbers ? bignumber(delta) : delta;\n h = multiply(h, delta);\n if (maxStep && larger(abs(h), maxStep)) {\n h = isForwards ? maxStep : unaryMinus(maxStep);\n } else if (minStep && smaller(abs(h), minStep)) {\n h = isForwards ? minStep : unaryMinus(minStep);\n }\n iter++;\n if (iter > maxIter) {\n throw new Error('Maximum number of iterations reached, try changing options');\n }\n }\n return {\n t,\n y\n };\n };\n }\n function _rk23(f, tspan, y0, options) {\n // Bogacki–Shampine method\n\n // Define the butcher table\n var a = [[], [1 / 2], [0, 3 / 4], [2 / 9, 1 / 3, 4 / 9]];\n var c = [null, 1 / 2, 3 / 4, 1];\n var b = [2 / 9, 1 / 3, 4 / 9, 0];\n var bp = [7 / 24, 1 / 4, 1 / 3, 1 / 8];\n var butcherTableau = {\n a,\n c,\n b,\n bp\n };\n\n // Solve an adaptive step size rk method\n return _rk(butcherTableau)(f, tspan, y0, options);\n }\n function _rk45(f, tspan, y0, options) {\n // Dormand Prince method\n\n // Define the butcher tableau\n var a = [[], [1 / 5], [3 / 40, 9 / 40], [44 / 45, -56 / 15, 32 / 9], [19372 / 6561, -25360 / 2187, 64448 / 6561, -212 / 729], [9017 / 3168, -355 / 33, 46732 / 5247, 49 / 176, -5103 / 18656], [35 / 384, 0, 500 / 1113, 125 / 192, -2187 / 6784, 11 / 84]];\n var c = [null, 1 / 5, 3 / 10, 4 / 5, 8 / 9, 1, 1];\n var b = [35 / 384, 0, 500 / 1113, 125 / 192, -2187 / 6784, 11 / 84, 0];\n var bp = [5179 / 57600, 0, 7571 / 16695, 393 / 640, -92097 / 339200, 187 / 2100, 1 / 40];\n var butcherTableau = {\n a,\n c,\n b,\n bp\n };\n\n // Solve an adaptive step size rk method\n return _rk(butcherTableau)(f, tspan, y0, options);\n }\n function _solveODE(f, tspan, y0, opt) {\n var method = opt.method ? opt.method : 'RK45';\n var methods = {\n RK23: _rk23,\n RK45: _rk45\n };\n if (method.toUpperCase() in methods) {\n var methodOptions = _objectSpread({}, opt); // clone the options object\n delete methodOptions.method; // delete the method as it won't be needed\n return methods[method.toUpperCase()](f, tspan, y0, methodOptions);\n } else {\n // throw an error indicating there is no such method\n var methodsWithQuotes = Object.keys(methods).map(x => \"\\\"\".concat(x, \"\\\"\"));\n // generates a string of methods like: \"BDF\", \"RK23\" and \"RK45\"\n var availableMethodsString = \"\".concat(methodsWithQuotes.slice(0, -1).join(', '), \" and \").concat(methodsWithQuotes.slice(-1));\n throw new Error(\"Unavailable method \\\"\".concat(method, \"\\\". Available methods are \").concat(availableMethodsString));\n }\n }\n function _createOngoing(isForwards) {\n // returns the correct function to test if it's still iterating\n return isForwards ? smaller : larger;\n }\n function _createTrimStep(isForwards) {\n var outOfBounds = isForwards ? larger : smaller;\n return function (t, tf, h) {\n var next = add(t, h);\n return outOfBounds(next, tf) ? subtract(tf, t) : h;\n };\n }\n function isNumOrBig(x) {\n // checks if it's a number or bignumber\n return isBigNumber(x) || isNumber(x);\n }\n function _matrixSolveODE(f, T, y0, options) {\n // receives matrices and returns matrices\n var sol = _solveODE(f, T.toArray(), y0.toArray(), options);\n return {\n t: matrix(sol.t),\n y: matrix(sol.y)\n };\n }\n return typed('solveODE', {\n 'function, Array, Array, Object': _solveODE,\n 'function, Matrix, Matrix, Object': _matrixSolveODE,\n 'function, Array, Array': (f, T, y0) => _solveODE(f, T, y0, {}),\n 'function, Matrix, Matrix': (f, T, y0) => _matrixSolveODE(f, T, y0, {}),\n 'function, Array, number | BigNumber | Unit': (f, T, y0) => {\n var sol = _solveODE(f, T, [y0], {});\n return {\n t: sol.t,\n y: sol.y.map(Y => Y[0])\n };\n },\n 'function, Matrix, number | BigNumber | Unit': (f, T, y0) => {\n var sol = _solveODE(f, T.toArray(), [y0], {});\n return {\n t: matrix(sol.t),\n y: matrix(sol.y.map(Y => Y[0]))\n };\n },\n 'function, Array, number | BigNumber | Unit, Object': (f, T, y0, options) => {\n var sol = _solveODE(f, T, [y0], options);\n return {\n t: sol.t,\n y: sol.y.map(Y => Y[0])\n };\n },\n 'function, Matrix, number | BigNumber | Unit, Object': (f, T, y0, options) => {\n var sol = _solveODE(f, T.toArray(), [y0], options);\n return {\n t: matrix(sol.t),\n y: matrix(sol.y.map(Y => Y[0]))\n };\n }\n });\n});","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","import { isInteger } from '../number.js';\n\n/**\n * Formats a BigNumber in a given base\n * @param {BigNumber} n\n * @param {number} base\n * @param {number} size\n * @returns {string}\n */\nfunction formatBigNumberToBase(n, base, size) {\n var BigNumberCtor = n.constructor;\n var big2 = new BigNumberCtor(2);\n var suffix = '';\n if (size) {\n if (size < 1) {\n throw new Error('size must be in greater than 0');\n }\n if (!isInteger(size)) {\n throw new Error('size must be an integer');\n }\n if (n.greaterThan(big2.pow(size - 1).sub(1)) || n.lessThan(big2.pow(size - 1).mul(-1))) {\n throw new Error(\"Value must be in range [-2^\".concat(size - 1, \", 2^\").concat(size - 1, \"-1]\"));\n }\n if (!n.isInteger()) {\n throw new Error('Value must be an integer');\n }\n if (n.lessThan(0)) {\n n = n.add(big2.pow(size));\n }\n suffix = \"i\".concat(size);\n }\n switch (base) {\n case 2:\n return \"\".concat(n.toBinary()).concat(suffix);\n case 8:\n return \"\".concat(n.toOctal()).concat(suffix);\n case 16:\n return \"\".concat(n.toHexadecimal()).concat(suffix);\n default:\n throw new Error(\"Base \".concat(base, \" not supported \"));\n }\n}\n\n/**\n * Convert a BigNumber to a formatted string representation.\n *\n * Syntax:\n *\n * format(value)\n * format(value, options)\n * format(value, precision)\n * format(value, fn)\n *\n * Where:\n *\n * {number} value The value to be formatted\n * {Object} options An object with formatting options. Available options:\n * {string} notation\n * Number notation. Choose from:\n * 'fixed' Always use regular number notation.\n * For example '123.40' and '14000000'\n * 'exponential' Always use exponential notation.\n * For example '1.234e+2' and '1.4e+7'\n * 'auto' (default) Regular number notation for numbers\n * having an absolute value between\n * `lower` and `upper` bounds, and uses\n * exponential notation elsewhere.\n * Lower bound is included, upper bound\n * is excluded.\n * For example '123.4' and '1.4e7'.\n * 'bin', 'oct, or\n * 'hex' Format the number using binary, octal,\n * or hexadecimal notation.\n * For example '0b1101' and '0x10fe'.\n * {number} wordSize The word size in bits to use for formatting\n * in binary, octal, or hexadecimal notation.\n * To be used only with 'bin', 'oct', or 'hex'\n * values for 'notation' option. When this option\n * is defined the value is formatted as a signed\n * twos complement integer of the given word size\n * and the size suffix is appended to the output.\n * For example\n * format(-1, {notation: 'hex', wordSize: 8}) === '0xffi8'.\n * Default value is undefined.\n * {number} precision A number between 0 and 16 to round\n * the digits of the number.\n * In case of notations 'exponential',\n * 'engineering', and 'auto',\n * `precision` defines the total\n * number of significant digits returned.\n * In case of notation 'fixed',\n * `precision` defines the number of\n * significant digits after the decimal\n * point.\n * `precision` is undefined by default.\n * {number} lowerExp Exponent determining the lower boundary\n * for formatting a value with an exponent\n * when `notation='auto`.\n * Default value is `-3`.\n * {number} upperExp Exponent determining the upper boundary\n * for formatting a value with an exponent\n * when `notation='auto`.\n * Default value is `5`.\n * {Function} fn A custom formatting function. Can be used to override the\n * built-in notations. Function `fn` is called with `value` as\n * parameter and must return a string. Is useful for example to\n * format all values inside a matrix in a particular way.\n *\n * Examples:\n *\n * format(6.4) // '6.4'\n * format(1240000) // '1.24e6'\n * format(1/3) // '0.3333333333333333'\n * format(1/3, 3) // '0.333'\n * format(21385, 2) // '21000'\n * format(12e8, {notation: 'fixed'}) // returns '1200000000'\n * format(2.3, {notation: 'fixed', precision: 4}) // returns '2.3000'\n * format(52.8, {notation: 'exponential'}) // returns '5.28e+1'\n * format(12400, {notation: 'engineering'}) // returns '12.400e+3'\n *\n * @param {BigNumber} value\n * @param {Object | Function | number} [options]\n * @return {string} str The formatted value\n */\nexport function format(value, options) {\n if (typeof options === 'function') {\n // handle format(value, fn)\n return options(value);\n }\n\n // handle special cases\n if (!value.isFinite()) {\n return value.isNaN() ? 'NaN' : value.gt(0) ? 'Infinity' : '-Infinity';\n }\n\n // default values for options\n var notation = 'auto';\n var precision;\n var wordSize;\n if (options !== undefined) {\n // determine notation from options\n if (options.notation) {\n notation = options.notation;\n }\n\n // determine precision from options\n if (typeof options === 'number') {\n precision = options;\n } else if (options.precision !== undefined) {\n precision = options.precision;\n }\n if (options.wordSize) {\n wordSize = options.wordSize;\n if (typeof wordSize !== 'number') {\n throw new Error('Option \"wordSize\" must be a number');\n }\n }\n }\n\n // handle the various notations\n switch (notation) {\n case 'fixed':\n return toFixed(value, precision);\n case 'exponential':\n return toExponential(value, precision);\n case 'engineering':\n return toEngineering(value, precision);\n case 'bin':\n return formatBigNumberToBase(value, 2, wordSize);\n case 'oct':\n return formatBigNumberToBase(value, 8, wordSize);\n case 'hex':\n return formatBigNumberToBase(value, 16, wordSize);\n case 'auto':\n {\n // determine lower and upper bound for exponential notation.\n // TODO: implement support for upper and lower to be BigNumbers themselves\n var lowerExp = options && options.lowerExp !== undefined ? options.lowerExp : -3;\n var upperExp = options && options.upperExp !== undefined ? options.upperExp : 5;\n\n // handle special case zero\n if (value.isZero()) return '0';\n\n // determine whether or not to output exponential notation\n var str;\n var rounded = value.toSignificantDigits(precision);\n var exp = rounded.e;\n if (exp >= lowerExp && exp < upperExp) {\n // normal number notation\n str = rounded.toFixed();\n } else {\n // exponential notation\n str = toExponential(value, precision);\n }\n\n // remove trailing zeros after the decimal point\n return str.replace(/((\\.\\d*?)(0+))($|e)/, function () {\n var digits = arguments[2];\n var e = arguments[4];\n return digits !== '.' ? digits + e : e;\n });\n }\n default:\n throw new Error('Unknown notation \"' + notation + '\". ' + 'Choose \"auto\", \"exponential\", \"fixed\", \"bin\", \"oct\", or \"hex.');\n }\n}\n\n/**\n * Format a BigNumber in engineering notation. Like '1.23e+6', '2.3e+0', '3.500e-3'\n * @param {BigNumber} value\n * @param {number} [precision] Optional number of significant figures to return.\n */\nexport function toEngineering(value, precision) {\n // find nearest lower multiple of 3 for exponent\n var e = value.e;\n var newExp = e % 3 === 0 ? e : e < 0 ? e - 3 - e % 3 : e - e % 3;\n\n // find difference in exponents, and calculate the value without exponent\n var valueWithoutExp = value.mul(Math.pow(10, -newExp));\n var valueStr = valueWithoutExp.toPrecision(precision);\n if (valueStr.indexOf('e') !== -1) {\n var BigNumber = value.constructor;\n valueStr = new BigNumber(valueStr).toFixed();\n }\n return valueStr + 'e' + (e >= 0 ? '+' : '') + newExp.toString();\n}\n\n/**\n * Format a number in exponential notation. Like '1.23e+5', '2.3e+0', '3.500e-3'\n * @param {BigNumber} value\n * @param {number} [precision] Number of digits in formatted output.\n * If not provided, the maximum available digits\n * is used.\n * @returns {string} str\n */\nexport function toExponential(value, precision) {\n if (precision !== undefined) {\n return value.toExponential(precision - 1); // Note the offset of one\n } else {\n return value.toExponential();\n }\n}\n\n/**\n * Format a number with fixed notation.\n * @param {BigNumber} value\n * @param {number} [precision=undefined] Optional number of decimals after the\n * decimal point. Undefined by default.\n */\nexport function toFixed(value, precision) {\n return value.toFixed(precision);\n}","import { isBigNumber, isString, typeOf } from './is.js';\nimport { format as formatNumber } from './number.js';\nimport { format as formatBigNumber } from './bignumber/formatter.js';\n\n/**\n * Check if a text ends with a certain string.\n * @param {string} text\n * @param {string} search\n */\nexport function endsWith(text, search) {\n var start = text.length - search.length;\n var end = text.length;\n return text.substring(start, end) === search;\n}\n\n/**\n * Format a value of any type into a string.\n *\n * Usage:\n * math.format(value)\n * math.format(value, precision)\n * math.format(value, options)\n *\n * When value is a function:\n *\n * - When the function has a property `syntax`, it returns this\n * syntax description.\n * - In other cases, a string `'function'` is returned.\n *\n * When `value` is an Object:\n *\n * - When the object contains a property `format` being a function, this\n * function is invoked as `value.format(options)` and the result is returned.\n * - When the object has its own `toString` method, this method is invoked\n * and the result is returned.\n * - In other cases the function will loop over all object properties and\n * return JSON object notation like '{\"a\": 2, \"b\": 3}'.\n *\n * Example usage:\n * math.format(2/7) // '0.2857142857142857'\n * math.format(math.pi, 3) // '3.14'\n * math.format(new Complex(2, 3)) // '2 + 3i'\n * math.format('hello') // '\"hello\"'\n *\n * @param {*} value Value to be stringified\n * @param {Object | number | Function} [options]\n * Formatting options. See src/utils/number.js:format for a\n * description of the available options controlling number output.\n * This generic \"format\" also supports the option property `truncate: NN`\n * giving the maximum number NN of characters to return (if there would\n * have been more, they are deleted and replaced by an ellipsis).\n * @return {string} str\n */\nexport function format(value, options) {\n var result = _format(value, options);\n if (options && typeof options === 'object' && 'truncate' in options && result.length > options.truncate) {\n return result.substring(0, options.truncate - 3) + '...';\n }\n return result;\n}\nfunction _format(value, options) {\n if (typeof value === 'number') {\n return formatNumber(value, options);\n }\n if (isBigNumber(value)) {\n return formatBigNumber(value, options);\n }\n\n // note: we use unsafe duck-typing here to check for Fractions, this is\n // ok here since we're only invoking toString or concatenating its values\n if (looksLikeFraction(value)) {\n if (!options || options.fraction !== 'decimal') {\n // output as ratio, like '1/3'\n return value.s * value.n + '/' + value.d;\n } else {\n // output as decimal, like '0.(3)'\n return value.toString();\n }\n }\n if (Array.isArray(value)) {\n return formatArray(value, options);\n }\n if (isString(value)) {\n return stringify(value);\n }\n if (typeof value === 'function') {\n return value.syntax ? String(value.syntax) : 'function';\n }\n if (value && typeof value === 'object') {\n if (typeof value.format === 'function') {\n return value.format(options);\n } else if (value && value.toString(options) !== {}.toString()) {\n // this object has a non-native toString method, use that one\n return value.toString(options);\n } else {\n var entries = Object.keys(value).map(key => {\n return stringify(key) + ': ' + format(value[key], options);\n });\n return '{' + entries.join(', ') + '}';\n }\n }\n return String(value);\n}\n\n/**\n * Stringify a value into a string enclosed in double quotes.\n * Unescaped double quotes and backslashes inside the value are escaped.\n * @param {*} value\n * @return {string}\n */\nexport function stringify(value) {\n var text = String(value);\n var escaped = '';\n var i = 0;\n while (i < text.length) {\n var c = text.charAt(i);\n escaped += c in controlCharacters ? controlCharacters[c] : c;\n i++;\n }\n return '\"' + escaped + '\"';\n}\nvar controlCharacters = {\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t'\n};\n\n/**\n * Escape special HTML characters\n * @param {*} value\n * @return {string}\n */\nexport function escape(value) {\n var text = String(value);\n text = text.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n return text;\n}\n\n/**\n * Recursively format an n-dimensional matrix\n * Example output: \"[[1, 2], [3, 4]]\"\n * @param {Array} array\n * @param {Object | number | Function} [options] Formatting options. See\n * lib/utils/number:format for a\n * description of the available\n * options.\n * @returns {string} str\n */\nfunction formatArray(array, options) {\n if (Array.isArray(array)) {\n var str = '[';\n var len = array.length;\n for (var i = 0; i < len; i++) {\n if (i !== 0) {\n str += ', ';\n }\n str += formatArray(array[i], options);\n }\n str += ']';\n return str;\n } else {\n return format(array, options);\n }\n}\n\n/**\n * Check whether a value looks like a Fraction (unsafe duck-type check)\n * @param {*} value\n * @return {boolean}\n */\nfunction looksLikeFraction(value) {\n return value && typeof value === 'object' && typeof value.s === 'number' && typeof value.n === 'number' && typeof value.d === 'number' || false;\n}\n\n/**\n * Compare two strings\n * @param {string} x\n * @param {string} y\n * @returns {number}\n */\nexport function compareText(x, y) {\n // we don't want to convert numbers to string, only accept string input\n if (!isString(x)) {\n throw new TypeError('Unexpected type of argument in function compareText ' + '(expected: string or Array or Matrix, actual: ' + typeOf(x) + ', index: 0)');\n }\n if (!isString(y)) {\n throw new TypeError('Unexpected type of argument in function compareText ' + '(expected: string or Array or Matrix, actual: ' + typeOf(y) + ', index: 1)');\n }\n return x === y ? 0 : x > y ? 1 : -1;\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport { isInteger } from './number.js';\nimport { isNumber, isBigNumber, isArray, isString } from './is.js';\nimport { format } from './string.js';\nimport { DimensionError } from '../error/DimensionError.js';\nimport { IndexError } from '../error/IndexError.js';\nimport { deepStrictEqual } from './object.js';\n\n/**\n * Calculate the size of a multi dimensional array.\n * This function checks the size of the first entry, it does not validate\n * whether all dimensions match. (use function `validate` for that)\n * @param {Array} x\n * @Return {Number[]} size\n */\nexport function arraySize(x) {\n var s = [];\n while (Array.isArray(x)) {\n s.push(x.length);\n x = x[0];\n }\n return s;\n}\n\n/**\n * Recursively validate whether each element in a multi dimensional array\n * has a size corresponding to the provided size array.\n * @param {Array} array Array to be validated\n * @param {number[]} size Array with the size of each dimension\n * @param {number} dim Current dimension\n * @throws DimensionError\n * @private\n */\nfunction _validate(array, size, dim) {\n var i;\n var len = array.length;\n if (len !== size[dim]) {\n throw new DimensionError(len, size[dim]);\n }\n if (dim < size.length - 1) {\n // recursively validate each child array\n var dimNext = dim + 1;\n for (i = 0; i < len; i++) {\n var child = array[i];\n if (!Array.isArray(child)) {\n throw new DimensionError(size.length - 1, size.length, '<');\n }\n _validate(array[i], size, dimNext);\n }\n } else {\n // last dimension. none of the childs may be an array\n for (i = 0; i < len; i++) {\n if (Array.isArray(array[i])) {\n throw new DimensionError(size.length + 1, size.length, '>');\n }\n }\n }\n}\n\n/**\n * Validate whether each element in a multi dimensional array has\n * a size corresponding to the provided size array.\n * @param {Array} array Array to be validated\n * @param {number[]} size Array with the size of each dimension\n * @throws DimensionError\n */\nexport function validate(array, size) {\n var isScalar = size.length === 0;\n if (isScalar) {\n // scalar\n if (Array.isArray(array)) {\n throw new DimensionError(array.length, 0);\n }\n } else {\n // array\n _validate(array, size, 0);\n }\n}\n\n/**\n * Validate whether the source of the index matches the size of the Array\n * @param {Array | Matrix} array Array to be validated\n * @param {Index} index Index with the source information to validate\n * @throws DimensionError\n */\nexport function validateIndexSourceSize(value, index) {\n var valueSize = value.isMatrix ? value._size : arraySize(value);\n var sourceSize = index._sourceSize;\n // checks if the source size is not null and matches the valueSize\n sourceSize.forEach((sourceDim, i) => {\n if (sourceDim !== null && sourceDim !== valueSize[i]) {\n throw new DimensionError(sourceDim, valueSize[i]);\n }\n });\n}\n\n/**\n * Test whether index is an integer number with index >= 0 and index < length\n * when length is provided\n * @param {number} index Zero-based index\n * @param {number} [length] Length of the array\n */\nexport function validateIndex(index, length) {\n if (index !== undefined) {\n if (!isNumber(index) || !isInteger(index)) {\n throw new TypeError('Index must be an integer (value: ' + index + ')');\n }\n if (index < 0 || typeof length === 'number' && index >= length) {\n throw new IndexError(index, length);\n }\n }\n}\n\n/**\n * Test if and index has empty values\n * @param {number} index Zero-based index\n */\nexport function isEmptyIndex(index) {\n for (var i = 0; i < index._dimensions.length; ++i) {\n var dimension = index._dimensions[i];\n if (dimension._data && isArray(dimension._data)) {\n if (dimension._size[0] === 0) {\n return true;\n }\n } else if (dimension.isRange) {\n if (dimension.start === dimension.end) {\n return true;\n }\n } else if (isString(dimension)) {\n if (dimension.length === 0) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Resize a multi dimensional array. The resized array is returned.\n * @param {Array | number} array Array to be resized\n * @param {number[]} size Array with the size of each dimension\n * @param {*} [defaultValue=0] Value to be filled in in new entries,\n * zero by default. Specify for example `null`,\n * to clearly see entries that are not explicitly\n * set.\n * @return {Array} array The resized array\n */\nexport function resize(array, size, defaultValue) {\n // check the type of the arguments\n if (!Array.isArray(size)) {\n throw new TypeError('Array expected');\n }\n if (size.length === 0) {\n throw new Error('Resizing to scalar is not supported');\n }\n\n // check whether size contains positive integers\n size.forEach(function (value) {\n if (!isNumber(value) || !isInteger(value) || value < 0) {\n throw new TypeError('Invalid size, must contain positive integers ' + '(size: ' + format(size) + ')');\n }\n });\n\n // convert number to an array\n if (isNumber(array) || isBigNumber(array)) {\n array = [array];\n }\n\n // recursively resize the array\n var _defaultValue = defaultValue !== undefined ? defaultValue : 0;\n _resize(array, size, 0, _defaultValue);\n return array;\n}\n\n/**\n * Recursively resize a multi dimensional array\n * @param {Array} array Array to be resized\n * @param {number[]} size Array with the size of each dimension\n * @param {number} dim Current dimension\n * @param {*} [defaultValue] Value to be filled in in new entries,\n * undefined by default.\n * @private\n */\nfunction _resize(array, size, dim, defaultValue) {\n var i;\n var elem;\n var oldLen = array.length;\n var newLen = size[dim];\n var minLen = Math.min(oldLen, newLen);\n\n // apply new length\n array.length = newLen;\n if (dim < size.length - 1) {\n // non-last dimension\n var dimNext = dim + 1;\n\n // resize existing child arrays\n for (i = 0; i < minLen; i++) {\n // resize child array\n elem = array[i];\n if (!Array.isArray(elem)) {\n elem = [elem]; // add a dimension\n array[i] = elem;\n }\n _resize(elem, size, dimNext, defaultValue);\n }\n\n // create new child arrays\n for (i = minLen; i < newLen; i++) {\n // get child array\n elem = [];\n array[i] = elem;\n\n // resize new child array\n _resize(elem, size, dimNext, defaultValue);\n }\n } else {\n // last dimension\n\n // remove dimensions of existing values\n for (i = 0; i < minLen; i++) {\n while (Array.isArray(array[i])) {\n array[i] = array[i][0];\n }\n }\n\n // fill new elements with the default value\n for (i = minLen; i < newLen; i++) {\n array[i] = defaultValue;\n }\n }\n}\n\n/**\n * Re-shape a multi dimensional array to fit the specified dimensions\n * @param {Array} array Array to be reshaped\n * @param {number[]} sizes List of sizes for each dimension\n * @returns {Array} Array whose data has been formatted to fit the\n * specified dimensions\n *\n * @throws {DimensionError} If the product of the new dimension sizes does\n * not equal that of the old ones\n */\nexport function reshape(array, sizes) {\n var flatArray = flatten(array);\n var currentLength = flatArray.length;\n if (!Array.isArray(array) || !Array.isArray(sizes)) {\n throw new TypeError('Array expected');\n }\n if (sizes.length === 0) {\n throw new DimensionError(0, currentLength, '!=');\n }\n sizes = processSizesWildcard(sizes, currentLength);\n var newLength = product(sizes);\n if (currentLength !== newLength) {\n throw new DimensionError(newLength, currentLength, '!=');\n }\n try {\n return _reshape(flatArray, sizes);\n } catch (e) {\n if (e instanceof DimensionError) {\n throw new DimensionError(newLength, currentLength, '!=');\n }\n throw e;\n }\n}\n\n/**\n * Replaces the wildcard -1 in the sizes array.\n * @param {number[]} sizes List of sizes for each dimension. At most on wildcard.\n * @param {number} currentLength Number of elements in the array.\n * @throws {Error} If more than one wildcard or unable to replace it.\n * @returns {number[]} The sizes array with wildcard replaced.\n */\nexport function processSizesWildcard(sizes, currentLength) {\n var newLength = product(sizes);\n var processedSizes = sizes.slice();\n var WILDCARD = -1;\n var wildCardIndex = sizes.indexOf(WILDCARD);\n var isMoreThanOneWildcard = sizes.indexOf(WILDCARD, wildCardIndex + 1) >= 0;\n if (isMoreThanOneWildcard) {\n throw new Error('More than one wildcard in sizes');\n }\n var hasWildcard = wildCardIndex >= 0;\n var canReplaceWildcard = currentLength % newLength === 0;\n if (hasWildcard) {\n if (canReplaceWildcard) {\n processedSizes[wildCardIndex] = -currentLength / newLength;\n } else {\n throw new Error('Could not replace wildcard, since ' + currentLength + ' is no multiple of ' + -newLength);\n }\n }\n return processedSizes;\n}\n\n/**\n * Computes the product of all array elements.\n * @param {number[]} array Array of factors\n * @returns {number} Product of all elements\n */\nfunction product(array) {\n return array.reduce((prev, curr) => prev * curr, 1);\n}\n\n/**\n * Iteratively re-shape a multi dimensional array to fit the specified dimensions\n * @param {Array} array Array to be reshaped\n * @param {number[]} sizes List of sizes for each dimension\n * @returns {Array} Array whose data has been formatted to fit the\n * specified dimensions\n */\n\nfunction _reshape(array, sizes) {\n // testing if there are enough elements for the requested shape\n var tmpArray = array;\n var tmpArray2;\n // for each dimensions starting by the last one and ignoring the first one\n for (var sizeIndex = sizes.length - 1; sizeIndex > 0; sizeIndex--) {\n var size = sizes[sizeIndex];\n tmpArray2 = [];\n\n // aggregate the elements of the current tmpArray in elements of the requested size\n var length = tmpArray.length / size;\n for (var i = 0; i < length; i++) {\n tmpArray2.push(tmpArray.slice(i * size, (i + 1) * size));\n }\n // set it as the new tmpArray for the next loop turn or for return\n tmpArray = tmpArray2;\n }\n return tmpArray;\n}\n\n/**\n * Squeeze a multi dimensional array\n * @param {Array} array\n * @param {Array} [size]\n * @returns {Array} returns the array itself\n */\nexport function squeeze(array, size) {\n var s = size || arraySize(array);\n\n // squeeze outer dimensions\n while (Array.isArray(array) && array.length === 1) {\n array = array[0];\n s.shift();\n }\n\n // find the first dimension to be squeezed\n var dims = s.length;\n while (s[dims - 1] === 1) {\n dims--;\n }\n\n // squeeze inner dimensions\n if (dims < s.length) {\n array = _squeeze(array, dims, 0);\n s.length = dims;\n }\n return array;\n}\n\n/**\n * Recursively squeeze a multi dimensional array\n * @param {Array} array\n * @param {number} dims Required number of dimensions\n * @param {number} dim Current dimension\n * @returns {Array | *} Returns the squeezed array\n * @private\n */\nfunction _squeeze(array, dims, dim) {\n var i, ii;\n if (dim < dims) {\n var next = dim + 1;\n for (i = 0, ii = array.length; i < ii; i++) {\n array[i] = _squeeze(array[i], dims, next);\n }\n } else {\n while (Array.isArray(array)) {\n array = array[0];\n }\n }\n return array;\n}\n\n/**\n * Unsqueeze a multi dimensional array: add dimensions when missing\n *\n * Paramter `size` will be mutated to match the new, unqueezed matrix size.\n *\n * @param {Array} array\n * @param {number} dims Desired number of dimensions of the array\n * @param {number} [outer] Number of outer dimensions to be added\n * @param {Array} [size] Current size of array.\n * @returns {Array} returns the array itself\n * @private\n */\nexport function unsqueeze(array, dims, outer, size) {\n var s = size || arraySize(array);\n\n // unsqueeze outer dimensions\n if (outer) {\n for (var i = 0; i < outer; i++) {\n array = [array];\n s.unshift(1);\n }\n }\n\n // unsqueeze inner dimensions\n array = _unsqueeze(array, dims, 0);\n while (s.length < dims) {\n s.push(1);\n }\n return array;\n}\n\n/**\n * Recursively unsqueeze a multi dimensional array\n * @param {Array} array\n * @param {number} dims Required number of dimensions\n * @param {number} dim Current dimension\n * @returns {Array | *} Returns the squeezed array\n * @private\n */\nfunction _unsqueeze(array, dims, dim) {\n var i, ii;\n if (Array.isArray(array)) {\n var next = dim + 1;\n for (i = 0, ii = array.length; i < ii; i++) {\n array[i] = _unsqueeze(array[i], dims, next);\n }\n } else {\n for (var d = dim; d < dims; d++) {\n array = [array];\n }\n }\n return array;\n}\n/**\n * Flatten a multi dimensional array, put all elements in a one dimensional\n * array\n * @param {Array} array A multi dimensional array\n * @return {Array} The flattened array (1 dimensional)\n */\nexport function flatten(array) {\n if (!Array.isArray(array)) {\n // if not an array, return as is\n return array;\n }\n var flat = [];\n array.forEach(function callback(value) {\n if (Array.isArray(value)) {\n value.forEach(callback); // traverse through sub-arrays recursively\n } else {\n flat.push(value);\n }\n });\n return flat;\n}\n\n/**\n * A safe map\n * @param {Array} array\n * @param {function} callback\n */\nexport function map(array, callback) {\n return Array.prototype.map.call(array, callback);\n}\n\n/**\n * A safe forEach\n * @param {Array} array\n * @param {function} callback\n */\nexport function forEach(array, callback) {\n Array.prototype.forEach.call(array, callback);\n}\n\n/**\n * A safe filter\n * @param {Array} array\n * @param {function} callback\n */\nexport function filter(array, callback) {\n if (arraySize(array).length !== 1) {\n throw new Error('Only one dimensional matrices supported');\n }\n return Array.prototype.filter.call(array, callback);\n}\n\n/**\n * Filter values in a callback given a regular expression\n * @param {Array} array\n * @param {RegExp} regexp\n * @return {Array} Returns the filtered array\n * @private\n */\nexport function filterRegExp(array, regexp) {\n if (arraySize(array).length !== 1) {\n throw new Error('Only one dimensional matrices supported');\n }\n return Array.prototype.filter.call(array, entry => regexp.test(entry));\n}\n\n/**\n * A safe join\n * @param {Array} array\n * @param {string} separator\n */\nexport function join(array, separator) {\n return Array.prototype.join.call(array, separator);\n}\n\n/**\n * Assign a numeric identifier to every element of a sorted array\n * @param {Array} a An array\n * @return {Array} An array of objects containing the original value and its identifier\n */\nexport function identify(a) {\n if (!Array.isArray(a)) {\n throw new TypeError('Array input expected');\n }\n if (a.length === 0) {\n return a;\n }\n var b = [];\n var count = 0;\n b[0] = {\n value: a[0],\n identifier: 0\n };\n for (var i = 1; i < a.length; i++) {\n if (a[i] === a[i - 1]) {\n count++;\n } else {\n count = 0;\n }\n b.push({\n value: a[i],\n identifier: count\n });\n }\n return b;\n}\n\n/**\n * Remove the numeric identifier from the elements\n * @param {array} a An array\n * @return {array} An array of values without identifiers\n */\nexport function generalize(a) {\n if (!Array.isArray(a)) {\n throw new TypeError('Array input expected');\n }\n if (a.length === 0) {\n return a;\n }\n var b = [];\n for (var i = 0; i < a.length; i++) {\n b.push(a[i].value);\n }\n return b;\n}\n\n/**\n * Check the datatype of a given object\n * This is a low level implementation that should only be used by\n * parent Matrix classes such as SparseMatrix or DenseMatrix\n * This method does not validate Array Matrix shape\n * @param {Array} array\n * @param {function} typeOf Callback function to use to determine the type of a value\n * @return {string}\n */\nexport function getArrayDataType(array, typeOf) {\n var type; // to hold type info\n var length = 0; // to hold length value to ensure it has consistent sizes\n\n for (var i = 0; i < array.length; i++) {\n var item = array[i];\n var _isArray = Array.isArray(item);\n\n // Saving the target matrix row size\n if (i === 0 && _isArray) {\n length = item.length;\n }\n\n // If the current item is an array but the length does not equal the targetVectorSize\n if (_isArray && item.length !== length) {\n return undefined;\n }\n var itemType = _isArray ? getArrayDataType(item, typeOf) // recurse into a nested array\n : typeOf(item);\n if (type === undefined) {\n type = itemType; // first item\n } else if (type !== itemType) {\n return 'mixed';\n } else {\n // we're good, everything has the same type so far\n }\n }\n return type;\n}\n\n/**\n * Return the last item from an array\n * @param {array}\n * @returns {*}\n */\nexport function last(array) {\n return array[array.length - 1];\n}\n\n/**\n * Get all but the last element of array.\n * @param {array}\n * @returns {*}\n */\nexport function initial(array) {\n return array.slice(0, array.length - 1);\n}\n\n/**\n * Test whether an array or string contains an item\n * @param {Array | string} array\n * @param {*} item\n * @return {boolean}\n */\nexport function contains(array, item) {\n return array.indexOf(item) !== -1;\n}\n\n/**\n * Recursively concatenate two matrices.\n * The contents of the matrices is not cloned.\n * @param {Array} a Multi dimensional array\n * @param {Array} b Multi dimensional array\n * @param {number} concatDim The dimension on which to concatenate (zero-based)\n * @param {number} dim The current dim (zero-based)\n * @return {Array} c The concatenated matrix\n * @private\n */\nfunction concatRecursive(a, b, concatDim, dim) {\n if (dim < concatDim) {\n // recurse into next dimension\n if (a.length !== b.length) {\n throw new DimensionError(a.length, b.length);\n }\n var c = [];\n for (var i = 0; i < a.length; i++) {\n c[i] = concatRecursive(a[i], b[i], concatDim, dim + 1);\n }\n return c;\n } else {\n // concatenate this dimension\n return a.concat(b);\n }\n}\n\n/**\n * Concatenates many arrays in the specified direction\n * @param {...Array} arrays All the arrays to concatenate\n * @param {number} concatDim The dimension on which to concatenate (zero-based)\n * @returns\n*/\nexport function concat() {\n var arrays = Array.prototype.slice.call(arguments, 0, -1);\n var concatDim = Array.prototype.slice.call(arguments, -1);\n if (arrays.length === 1) {\n return arrays[0];\n }\n if (arrays.length > 1) {\n return arrays.slice(1).reduce(function (A, B) {\n return concatRecursive(A, B, concatDim, 0);\n }, arrays[0]);\n } else {\n throw new Error('Wrong number of arguments in function concat');\n }\n}\n\n/**\n * Receives two or more sizes and get's the broadcasted size for both.\n * @param {...number[]} sizes Sizes to broadcast together\n * @returns\n */\nexport function broadcastSizes() {\n for (var _len = arguments.length, sizes = new Array(_len), _key = 0; _key < _len; _key++) {\n sizes[_key] = arguments[_key];\n }\n var dimensions = sizes.map(s => s.length);\n var N = Math.max(...dimensions);\n var sizeMax = new Array(N).fill(null);\n // check for every size\n for (var i = 0; i < sizes.length; i++) {\n var size = sizes[i];\n var dim = dimensions[i];\n for (var j = 0; j < dim; j++) {\n var n = N - dim + j;\n if (size[j] > sizeMax[n]) {\n sizeMax[n] = size[j];\n }\n }\n }\n for (var _i = 0; _i < sizes.length; _i++) {\n checkBroadcastingRules(sizes[_i], sizeMax);\n }\n return sizeMax;\n}\n\n/**\n * Checks if it's possible to broadcast a size to another size\n * @param {number[]} size The size of the array to check\n * @param {number[]} toSize The size of the array to validate if it can be broadcasted to\n */\nexport function checkBroadcastingRules(size, toSize) {\n var N = toSize.length;\n var dim = size.length;\n for (var j = 0; j < dim; j++) {\n var n = N - dim + j;\n if (size[j] < toSize[n] && size[j] > 1 || size[j] > toSize[n]) {\n throw new Error(\"shape missmatch: missmatch is found in arg with shape (\".concat(size, \") not possible to broadcast dimension \").concat(dim, \" with size \").concat(size[j], \" to size \").concat(toSize[n]));\n }\n }\n}\n\n/**\n * Broadcasts a single array to a certain size\n * @param {array} array Array to be broadcasted\n * @param {number[]} toSize Size to broadcast the array\n * @returns The broadcasted array\n */\nexport function broadcastTo(array, toSize) {\n var Asize = arraySize(array);\n if (deepStrictEqual(Asize, toSize)) {\n return array;\n }\n checkBroadcastingRules(Asize, toSize);\n var broadcastedSize = broadcastSizes(Asize, toSize);\n var N = broadcastedSize.length;\n var paddedSize = [...Array(N - Asize.length).fill(1), ...Asize];\n var A = clone(array);\n // reshape A if needed to make it ready for concat\n if (Asize.length < N) {\n A = reshape(A, paddedSize);\n Asize = arraySize(A);\n }\n\n // stretches the array on each dimension to make it the same size as index\n for (var dim = 0; dim < N; dim++) {\n if (Asize[dim] < broadcastedSize[dim]) {\n A = stretch(A, broadcastedSize[dim], dim);\n Asize = arraySize(A);\n }\n }\n return A;\n}\n\n/**\n * Broadcasts arrays and returns the broadcasted arrays in an array\n * @param {...Array | any} arrays\n * @returns\n */\nexport function broadcastArrays() {\n for (var _len2 = arguments.length, arrays = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n arrays[_key2] = arguments[_key2];\n }\n if (arrays.length === 0) {\n throw new Error('Insuficient number of argumnets in function broadcastArrays');\n }\n if (arrays.length === 1) {\n return arrays[0];\n }\n var sizes = arrays.map(function (array) {\n return arraySize(array);\n });\n var broadcastedSize = broadcastSizes(...sizes);\n var broadcastedArrays = [];\n arrays.forEach(function (array) {\n broadcastedArrays.push(broadcastTo(array, broadcastedSize));\n });\n return broadcastedArrays;\n}\n\n/**\n * stretches a matrix up to a certain size in a certain dimension\n * @param {Array} arrayToStretch\n * @param {number[]} sizeToStretch\n * @param {number} dimToStretch\n * @returns\n */\nexport function stretch(arrayToStretch, sizeToStretch, dimToStretch) {\n return concat(...Array(sizeToStretch).fill(arrayToStretch), dimToStretch);\n}\n\n/**\n * Deep clones a multidimensional array\n * @param {Array} array\n * @returns cloned array\n */\nexport function clone(array) {\n return _extends([], array);\n}","import { isCollection, isMatrix } from './is.js';\nimport { IndexError } from '../error/IndexError.js';\nimport { arraySize } from './array.js';\nimport { _switch } from './switch.js';\n\n/**\n * Test whether an array contains collections\n * @param {Array} array\n * @returns {boolean} Returns true when the array contains one or multiple\n * collections (Arrays or Matrices). Returns false otherwise.\n */\nexport function containsCollections(array) {\n for (var i = 0; i < array.length; i++) {\n if (isCollection(array[i])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Recursively loop over all elements in a given multi dimensional array\n * and invoke the callback on each of the elements.\n * @param {Array | Matrix} array\n * @param {Function} callback The callback method is invoked with one\n * parameter: the current element in the array\n */\nexport function deepForEach(array, callback) {\n if (isMatrix(array)) {\n array = array.valueOf();\n }\n for (var i = 0, ii = array.length; i < ii; i++) {\n var value = array[i];\n if (Array.isArray(value)) {\n deepForEach(value, callback);\n } else {\n callback(value);\n }\n }\n}\n\n/**\n * Execute the callback function element wise for each element in array and any\n * nested array\n * Returns an array with the results\n * @param {Array | Matrix} array\n * @param {Function} callback The callback is called with two parameters:\n * value1 and value2, which contain the current\n * element of both arrays.\n * @param {boolean} [skipZeros] Invoke callback function for non-zero values only.\n *\n * @return {Array | Matrix} res\n */\nexport function deepMap(array, callback, skipZeros) {\n if (array && typeof array.map === 'function') {\n // TODO: replace array.map with a for loop to improve performance\n return array.map(function (x) {\n return deepMap(x, callback, skipZeros);\n });\n } else {\n return callback(array);\n }\n}\n\n/**\n * Reduce a given matrix or array to a new matrix or\n * array with one less dimension, applying the given\n * callback in the selected dimension.\n * @param {Array | Matrix} mat\n * @param {number} dim\n * @param {Function} callback\n * @return {Array | Matrix} res\n */\nexport function reduce(mat, dim, callback) {\n var size = Array.isArray(mat) ? arraySize(mat) : mat.size();\n if (dim < 0 || dim >= size.length) {\n // TODO: would be more clear when throwing a DimensionError here\n throw new IndexError(dim, size.length);\n }\n if (isMatrix(mat)) {\n return mat.create(_reduce(mat.valueOf(), dim, callback));\n } else {\n return _reduce(mat, dim, callback);\n }\n}\n\n/**\n * Recursively reduce a matrix\n * @param {Array} mat\n * @param {number} dim\n * @param {Function} callback\n * @returns {Array} ret\n * @private\n */\nfunction _reduce(mat, dim, callback) {\n var i, ret, val, tran;\n if (dim <= 0) {\n if (!Array.isArray(mat[0])) {\n val = mat[0];\n for (i = 1; i < mat.length; i++) {\n val = callback(val, mat[i]);\n }\n return val;\n } else {\n tran = _switch(mat);\n ret = [];\n for (i = 0; i < tran.length; i++) {\n ret[i] = _reduce(tran[i], dim - 1, callback);\n }\n return ret;\n }\n } else {\n ret = [];\n for (i = 0; i < mat.length; i++) {\n ret[i] = _reduce(mat[i], dim - 1, callback);\n }\n return ret;\n }\n}\n\n// TODO: document function scatter\nexport function scatter(a, j, w, x, u, mark, cindex, f, inverse, update, value) {\n // a arrays\n var avalues = a._values;\n var aindex = a._index;\n var aptr = a._ptr;\n\n // vars\n var k, k0, k1, i;\n\n // check we need to process values (pattern matrix)\n if (x) {\n // values in j\n for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {\n // row\n i = aindex[k];\n // check value exists in current j\n if (w[i] !== mark) {\n // i is new entry in j\n w[i] = mark;\n // add i to pattern of C\n cindex.push(i);\n // x(i) = A, check we need to call function this time\n if (update) {\n // copy value to workspace calling callback function\n x[i] = inverse ? f(avalues[k], value) : f(value, avalues[k]);\n // function was called on current row\n u[i] = mark;\n } else {\n // copy value to workspace\n x[i] = avalues[k];\n }\n } else {\n // i exists in C already\n x[i] = inverse ? f(avalues[k], x[i]) : f(x[i], avalues[k]);\n // function was called on current row\n u[i] = mark;\n }\n }\n } else {\n // values in j\n for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {\n // row\n i = aindex[k];\n // check value exists in current j\n if (w[i] !== mark) {\n // i is new entry in j\n w[i] = mark;\n // add i to pattern of C\n cindex.push(i);\n } else {\n // indicate function was called on current row\n u[i] = mark;\n }\n }\n }\n}","import Decimal from 'decimal.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'BigNumber';\nvar dependencies = ['?on', 'config'];\nexport var createBigNumberClass = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n on,\n config\n } = _ref;\n var BigNumber = Decimal.clone({\n precision: config.precision,\n modulo: Decimal.EUCLID\n });\n BigNumber.prototype = Object.create(BigNumber.prototype);\n\n /**\n * Attach type information\n */\n BigNumber.prototype.type = 'BigNumber';\n BigNumber.prototype.isBigNumber = true;\n\n /**\n * Get a JSON representation of a BigNumber containing\n * type information\n * @returns {Object} Returns a JSON object structured as:\n * `{\"mathjs\": \"BigNumber\", \"value\": \"0.2\"}`\n */\n BigNumber.prototype.toJSON = function () {\n return {\n mathjs: 'BigNumber',\n value: this.toString()\n };\n };\n\n /**\n * Instantiate a BigNumber from a JSON object\n * @param {Object} json a JSON object structured as:\n * `{\"mathjs\": \"BigNumber\", \"value\": \"0.2\"}`\n * @return {BigNumber}\n */\n BigNumber.fromJSON = function (json) {\n return new BigNumber(json.value);\n };\n if (on) {\n // listen for changed in the configuration, automatically apply changed precision\n on('config', function (curr, prev) {\n if (curr.precision !== prev.precision) {\n BigNumber.config({\n precision: curr.precision\n });\n }\n });\n }\n return BigNumber;\n}, {\n isClass: true\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","import { flatten } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'setMultiplicity';\nvar dependencies = ['typed', 'size', 'subset', 'compareNatural', 'Index'];\nexport var createSetMultiplicity = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n size,\n subset,\n compareNatural,\n Index\n } = _ref;\n /**\n * Count the multiplicity of an element in a multiset.\n * A multi-dimension array will be converted to a single-dimension array before the operation.\n *\n * Syntax:\n *\n * math.setMultiplicity(element, set)\n *\n * Examples:\n *\n * math.setMultiplicity(1, [1, 2, 2, 4]) // returns 1\n * math.setMultiplicity(2, [1, 2, 2, 4]) // returns 2\n *\n * See also:\n *\n * setDistinct, setSize\n *\n * @param {number | BigNumber | Fraction | Complex} e An element in the multiset\n * @param {Array | Matrix} a A multiset\n * @return {number} The number of how many times the multiset contains the element\n */\n return typed(name, {\n 'number | BigNumber | Fraction | Complex, Array | Matrix': function numberBigNumberFractionComplexArrayMatrix(e, a) {\n if (subset(size(a), new Index(0)) === 0) {\n // if empty, return 0\n return 0;\n }\n var b = flatten(Array.isArray(a) ? a : a.toArray());\n var count = 0;\n for (var i = 0; i < b.length; i++) {\n if (compareNatural(b[i], e) === 0) {\n count++;\n }\n }\n return count;\n }\n });\n});","'use strict';\nvar createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","import { flatten } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nimport { improveErrorMessage } from './utils/improveErrorMessage.js';\nvar name = 'mad';\nvar dependencies = ['typed', 'abs', 'map', 'median', 'subtract'];\nexport var createMad = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n abs,\n map,\n median,\n subtract\n } = _ref;\n /**\n * Compute the median absolute deviation of a matrix or a list with values.\n * The median absolute deviation is defined as the median of the absolute\n * deviations from the median.\n *\n * Syntax:\n *\n * math.mad(a, b, c, ...)\n * math.mad(A)\n *\n * Examples:\n *\n * math.mad(10, 20, 30) // returns 10\n * math.mad([1, 2, 3]) // returns 1\n * math.mad([[1, 2, 3], [4, 5, 6]]) // returns 1.5\n *\n * See also:\n *\n * median, mean, std, abs\n *\n * @param {Array | Matrix} array\n * A single matrix or multiple scalar values.\n * @return {*} The median absolute deviation.\n */\n return typed(name, {\n // mad([a, b, c, d, ...])\n 'Array | Matrix': _mad,\n // mad(a, b, c, d, ...)\n '...': function _(args) {\n return _mad(args);\n }\n });\n function _mad(array) {\n array = flatten(array.valueOf());\n if (array.length === 0) {\n throw new Error('Cannot calculate median absolute deviation (mad) of an empty array');\n }\n try {\n var med = median(array);\n return median(map(array, function (value) {\n return abs(subtract(value, med));\n }));\n } catch (err) {\n if (err instanceof TypeError && err.message.indexOf('median') !== -1) {\n throw new TypeError(err.message.replace('median', 'mad'));\n } else {\n throw improveErrorMessage(err, 'mad');\n }\n }\n }\n});","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modalDetectaRosto.vue?vue&type=style&index=0&id=3085bf1d&prod&lang=css\"","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\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}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\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;\n\n // request.destroy just do .end - .abort is what we want\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}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\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}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\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}\nmodule.exports = pipeline;","import { flatten, identify } from '../../utils/array.js';\nimport { factory } from '../../utils/factory.js';\nvar name = 'setIsSubset';\nvar dependencies = ['typed', 'size', 'subset', 'compareNatural', 'Index'];\nexport var createSetIsSubset = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n size,\n subset,\n compareNatural,\n Index\n } = _ref;\n /**\n * Check whether a (multi)set is a subset of another (multi)set. (Every element of set1 is the element of set2.)\n * Multi-dimension arrays will be converted to single-dimension arrays before the operation.\n *\n * Syntax:\n *\n * math.setIsSubset(set1, set2)\n *\n * Examples:\n *\n * math.setIsSubset([1, 2], [3, 4, 5, 6]) // returns false\n * math.setIsSubset([3, 4], [3, 4, 5, 6]) // returns true\n *\n * See also:\n *\n * setUnion, setIntersect, setDifference\n *\n * @param {Array | Matrix} a1 A (multi)set\n * @param {Array | Matrix} a2 A (multi)set\n * @return {boolean} Returns true when a1 is a subset of a2, returns false otherwise\n */\n return typed(name, {\n 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {\n if (subset(size(a1), new Index(0)) === 0) {\n // empty is a subset of anything\n return true;\n } else if (subset(size(a2), new Index(0)) === 0) {\n // anything is not a subset of empty\n return false;\n }\n var b1 = identify(flatten(Array.isArray(a1) ? a1 : a1.toArray()).sort(compareNatural));\n var b2 = identify(flatten(Array.isArray(a2) ? a2 : a2.toArray()).sort(compareNatural));\n var inb2;\n for (var i = 0; i < b1.length; i++) {\n inb2 = false;\n for (var j = 0; j < b2.length; j++) {\n if (compareNatural(b1[i].value, b2[j].value) === 0 && b1[i].identifier === b2[j].identifier) {\n // the identifier is always a decimal int\n inb2 = true;\n break;\n }\n }\n if (inb2 === false) {\n return false;\n }\n }\n return true;\n }\n });\n});","import { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';\nimport { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';\nimport { createMatAlgo05xSfSf } from '../../type/matrix/utils/matAlgo05xSfSf.js';\nimport { factory } from '../../utils/factory.js';\nimport { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';\nimport { orNumber } from '../../plain/number/index.js';\nvar name = 'or';\nvar dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix', 'concat'];\nexport var createOr = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n matrix,\n equalScalar,\n DenseMatrix,\n concat\n } = _ref;\n var matAlgo03xDSf = createMatAlgo03xDSf({\n typed\n });\n var matAlgo05xSfSf = createMatAlgo05xSfSf({\n typed,\n equalScalar\n });\n var matAlgo12xSfs = createMatAlgo12xSfs({\n typed,\n DenseMatrix\n });\n var matrixAlgorithmSuite = createMatrixAlgorithmSuite({\n typed,\n matrix,\n concat\n });\n\n /**\n * Logical `or`. Test if at least one value is defined with a nonzero/nonempty value.\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.or(x, y)\n *\n * Examples:\n *\n * math.or(2, 4) // returns true\n *\n * a = [2, 5, 0]\n * b = [0, 22, 0]\n * c = 0\n *\n * math.or(a, b) // returns [true, true, false]\n * math.or(b, c) // returns [false, true, false]\n *\n * See also:\n *\n * and, not, xor\n *\n * @param {number | BigNumber | Complex | Unit | Array | Matrix} x First value to check\n * @param {number | BigNumber | Complex | Unit | Array | Matrix} y Second value to check\n * @return {boolean | Array | Matrix}\n * Returns true when one of the inputs is defined with a nonzero/nonempty value.\n */\n return typed(name, {\n 'number, number': orNumber,\n 'Complex, Complex': function ComplexComplex(x, y) {\n return x.re !== 0 || x.im !== 0 || y.re !== 0 || y.im !== 0;\n },\n 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {\n return !x.isZero() && !x.isNaN() || !y.isZero() && !y.isNaN();\n },\n 'Unit, Unit': typed.referToSelf(self => (x, y) => self(x.value || 0, y.value || 0))\n }, matrixAlgorithmSuite({\n SS: matAlgo05xSfSf,\n DS: matAlgo03xDSf,\n Ss: matAlgo12xSfs\n }));\n});","import { factory } from '../../utils/factory.js';\nimport { deepMap } from '../../utils/collection.js';\nimport { log1p as _log1p } from '../../utils/number.js';\nvar name = 'log1p';\nvar dependencies = ['typed', 'config', 'divideScalar', 'log', 'Complex'];\nexport var createLog1p = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n config,\n divideScalar,\n log,\n Complex\n } = _ref;\n /**\n * Calculate the logarithm of a `value+1`.\n *\n * For matrices, the function is evaluated element wise.\n *\n * Syntax:\n *\n * math.log1p(x)\n * math.log1p(x, base)\n *\n * Examples:\n *\n * math.log1p(2.5) // returns 1.252762968495368\n * math.exp(math.log1p(1.4)) // returns 2.4\n *\n * math.pow(10, 4) // returns 10000\n * math.log1p(9999, 10) // returns 4\n * math.log1p(9999) / math.log(10) // returns 4\n *\n * See also:\n *\n * exp, log, log2, log10\n *\n * @param {number | BigNumber | Complex | Array | Matrix} x\n * Value for which to calculate the logarithm of `x+1`.\n * @param {number | BigNumber | Complex} [base=e]\n * Optional base for the logarithm. If not provided, the natural\n * logarithm of `x+1` is calculated.\n * @return {number | BigNumber | Complex | Array | Matrix}\n * Returns the logarithm of `x+1`\n */\n return typed(name, {\n number: function number(x) {\n if (x >= -1 || config.predictable) {\n return _log1p(x);\n } else {\n // negative value -> complex value computation\n return _log1pComplex(new Complex(x, 0));\n }\n },\n Complex: _log1pComplex,\n BigNumber: function BigNumber(x) {\n var y = x.plus(1);\n if (!y.isNegative() || config.predictable) {\n return y.ln();\n } else {\n // downgrade to number, return Complex valued result\n return _log1pComplex(new Complex(x.toNumber(), 0));\n }\n },\n 'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self)),\n 'any, any': typed.referToSelf(self => (x, base) => {\n // calculate logarithm for a specified base, log1p(x, base)\n return divideScalar(self(x), log(base));\n })\n });\n\n /**\n * Calculate the natural logarithm of a complex number + 1\n * @param {Complex} x\n * @returns {Complex}\n * @private\n */\n function _log1pComplex(x) {\n var xRe1p = x.re + 1;\n return new Complex(Math.log(Math.sqrt(xRe1p * xRe1p + x.im * x.im)), Math.atan2(x.im, xRe1p));\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 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","import { factory } from '../../utils/factory.js';\nimport { acschNumber } from '../../plain/number/index.js';\nvar name = 'acsch';\nvar dependencies = ['typed', 'BigNumber'];\nexport var createAcsch = /* #__PURE__ */factory(name, dependencies, _ref => {\n var {\n typed,\n BigNumber: _BigNumber\n } = _ref;\n /**\n * Calculate the hyperbolic arccosecant of a value,\n * defined as `acsch(x) = asinh(1/x) = ln(1/x + sqrt(1/x^2 + 1))`.\n *\n * To avoid confusion with the matrix hyperbolic arccosecant, this function\n * does not apply to matrices.\n *\n * Syntax:\n *\n * math.acsch(x)\n *\n * Examples:\n *\n * math.acsch(0.5) // returns 1.4436354751788103\n *\n * See also:\n *\n * asech, acoth\n *\n * @param {number | BigNumber | Complex} x Function input\n * @return {number | BigNumber | Complex} Hyperbolic arccosecant of x\n */\n return typed(name, {\n number: acschNumber,\n Complex: function Complex(x) {\n return x.acsch();\n },\n BigNumber: function BigNumber(x) {\n return new _BigNumber(1).div(x).asinh();\n }\n });\n});","!function(){function n(n,t){var e=n.split(\".\"),l=U;e[0]in l||!l.execScript||l.execScript(\"var \"+e[0]);for(var r;e.length&&(r=e.shift());)e.length||void 0===t?l=l[r]?l[r]:l[r]={}:l[r]=t}function t(n,t){function e(){}e.prototype=t.prototype,n.M=t.prototype,n.prototype=new e,n.prototype.constructor=n,n.N=function(n,e,l){for(var r=Array(arguments.length-2),i=2;it?1:n=a&&a<=u;++a)if(i=parseInt(t.substring(0,a),10),i in nn){r.a(t.substring(a)),t=i;break n}t=0}return 0!=t&&(l(n.a),n.a.a(r.toString()),r=C(t),\"001\"==r?n.g=N(n.G,\"\"+t):r!=n.D&&(n.g=B(n,r)),n.b.a(\"\"+t).a(\" \"),n.h=\"\",!0)}function T(n,t){var e=n.m.toString();if(0<=e.substring(n.s).search(n.H)){var r=e.search(n.H),e=e.replace(n.H,t);return l(n.m),n.m.a(e),n.s=r,e.substring(0,n.s+1)}return 1==n.f.length&&(n.l=!1),n.w=\"\",n.i.toString()}var U=this;e.prototype.b=\"\",e.prototype.set=function(n){this.b=\"\"+n},e.prototype.a=function(n,t,e){if(this.b+=String(n),null!=t)for(var l=1;l